2017-06-07 16 views
0

Ich versuche, eine Schleife zu erstellen, die 6 parallele Linien horizontal ausdruckt.Wenn ich jedoch den Code unten verwende, kann ich nur eine Linie sehen, die sich nur kontinuierlich bewegt. Irgendwelche Tipps würden geschätzt. Hier ist der Code:Python Turtle Grafiken und Loops

count = 0; 
while(count < 6): 
    actor.penup() 
    actor.backward(100) 
    actor.pendown() 
    actor.forward(150) 
    count = count + 1 
+0

Wenn Sie nur rückwärts und vorwärts bewegen, wie könnten Sie möglicherweise parallele Linien bekommen? Sie müssen eine Seitwärtsbewegung in Ihre Schleife einfügen. – jasonharper

+0

Sieh dir den Code an, den du geschrieben hast - nimm den Stift, gehe rückwärts 100, dann hängst du und geh vorwärts 150. Das gibt dir eine 150er Länge. Dann geh zurück 100, d. H. 2/3 in die Linie, die du gerade gezeichnet hast, und zeichne eine weitere 150 Linie, so dass du jetzt eine Linie mit 200 Länge hast. Nach der ersten Zeile fügen Sie bei jeder Iteration nur 50 zur gleichen Zeile hinzu. – OldGeeksGuide

+0

Der pythonische Weg, eine Schleife wie diese zu machen, wäre '' _ im Bereich (6): 'anstatt eine 'while'-Schleife zu verwenden. – OldGeeksGuide

Antwort

0

Sie können Ihre Vertrautheit mit kartesischen Koordinaten verwenden. Bewegen Sie den Stift an ein Ende jeder Linie, ziehen Sie den Stift nach unten, und bewegen Sie den Stift zum anderen Ende der Linie.

>>> from turtle import * 
>>> for _ in range(6): 
...  up() 
...  goto(0, 10*_) 
...  down() 
...  goto(50, 10*_) 
...  
>>> up() 
>>> home() 

Es müssen andere Wege geben, aber ich bin nicht vertraut mit turtle. turtle graphics

0

Es müssen andere Wege geben, aber ich bin nicht vertraut mit Schildkröte. - @BillBell

Ja, es gibt, können wir eine linienförmige Ausstechform und Stempel machen sie aus:

import turtle 

STAMP_SIZE = 20 

actor = turtle.Turtle('square', visible=False) 
actor.shapesize(0.5/STAMP_SIZE, 200/STAMP_SIZE, 0) 
actor.penup() 

for y in range(-3, 3): 
    actor.sety(10 * y) 
    actor.stamp() 

turtle.exitonclick() 

(Wenn die Linien auf Ihrem System nicht angezeigt werden, ändern die 0,5 oben auf 1,0)

Dieser Ansatz verwendet nur .circle() Verfahren Schildkröte die parallelen Linien zu zeichnen:

import tkinter as tk 
import turtle 

WIDTH = 300 

root = tk.Tk() # extra work up front to make canvas smaller than window 
root.title('Python Turtle Graphics') 
root.geometry('{}x{}'.format(WIDTH, WIDTH * 2)) 

canvas = tk.Canvas(root, width=5 * WIDTH/6, height=WIDTH * 2) 
canvas.pack() 
screen = turtle.TurtleScreen(canvas) 

actor = turtle.RawTurtle(screen, shape='turtle') 
actor.penup() 
actor.right(45) 
actor.goto(-WIDTH/2, -5 * WIDTH/6) 
actor.pendown() 

for y in range(3): 
    actor.circle(WIDTH/2**0.5, steps=4) 
    actor.sety(actor.ycor() + WIDTH/3) 

root.mainloop()