Ich möchte ein Turtle-gezeichnetes Objekt verschieben, aber ich kann keine heruntergeladenen Module verwenden (aus Gründen, auf die ich nicht eingehen möchte). Wie würde ich das tun?Wie verschiebe ich ein gezeichnetes Turtle-Grafik-Objekt mit nur eingebauten Funktionen?
Antwort
Ich stimme @ Martineaus Kommentar im Allgemeinen:
Wenn Sie die grafische Zeichnung tun richtig nur Befehle, die auf die aktuelle Position relativ sind, Sie alle von ihnen in einer Funktion setzen und einfach Bevor Sie es aufrufen, positionieren Sie die Schildkröte auf die Position , in der sie alle relativ sein sollen.
Aber wenn Ihre Zeichnung ausreichend einfach ist, gibt es einen alternativen Ansatz. Sie können einen Turtle-Cursor setzen, der ist Ihre Zeichnung, schalten Sie die Schildkröte auf diesen Cursor und machen Sie Ihre Zeichnung jede Bewegung, die der Turtle-Cursor selbst tun kann.
Ich werde von dieser An Hour of Code == An Hour of Fun Zeichnung Seite mit diesem Haus zu veranschaulichen:
Der folgende Code zeichnet unsichtbar das Haus und verstaut es als Schildkröte Cursor. Es setzt dann die Schildkrötenform auf die Hauszeichnung und nimmt das Haus für eine Drehung. Buchstäblich. Nach dem Drehen des Hauses in einem Kreis, schert es sie, während sie an der oberen rechten Seite der Zeichnung bewegt:
from turtle import Turtle, Screen, Shape
screen = Screen()
screen.bgcolor('SkyBlue')
shape = Shape('compound')
turtle = Turtle(visible=False)
turtle.speed('fastest')
turtle.penup()
turtle.goto(-100, 0)
turtle.begin_poly()
turtle.goto(-100, 50)
turtle.goto(100, 50)
turtle.goto(100, 0)
turtle.goto(-100, 0)
turtle.end_poly()
shape.addcomponent(turtle.get_poly(), 'red')
turtle.goto(-100, 50)
turtle.begin_poly()
turtle.goto(0, 100)
turtle.goto(100, 50)
turtle.goto(-100, 50)
turtle.end_poly()
shape.addcomponent(turtle.get_poly(), 'brown')
turtle.goto(-40, 0)
turtle.begin_poly()
turtle.goto(-40, 30)
turtle.goto(-20, 30)
turtle.goto(-20, 0)
turtle.goto(-40, 0)
turtle.end_poly()
shape.addcomponent(turtle.get_poly(), 'orange')
turtle.goto(20, 20)
turtle.begin_poly()
turtle.goto(20, 40)
turtle.goto(50, 40)
turtle.goto(50, 20)
turtle.goto(20, 20)
turtle.end_poly()
shape.addcomponent(turtle.get_poly(), 'white')
screen.register_shape('house', shape)
turtle.reset()
turtle.penup()
# Now we can move our house in any manner that we move a turtle:
turtle.shape('house')
for theta in range(0, 360, 10):
turtle.setheading(theta)
turtle.setheading(90)
turtle.shearfactor(0.5)
turtle.goto(300, 300)
turtle.shearfactor(0)
screen.mainloop()
Auch dieser Ansatz funktioniert nur für einfache Zeichnungen von gefüllten Polygonen zusammengesetzt.
- 1. Kollision mit eingebauten Funktionen benennen?
- 2. Wie verschiebe ich ein Hintergrundbild mit CSS
- 3. Wie verschiebe ich ein Spielobjekt mit movetoards
- 4. Wie kann ich ein gezeichnetes Objekt in einem JFrame zentrieren?
- 5. Wie skaliere ich ein gezeichnetes Oval in Java?
- 6. Wie verschiebe ich Google Authenticator auf ein Hardwaregerät?
- 7. Wie entferne ich ein bereits gezeichnetes Bild aus HTML5 Canvas (nur das nicht andere)
- 8. Die Verwendung von eingebauten PHP-Funktionen
- 9. Wie bekomme ich nur Funktionen mit Ctags?
- 10. Wie verschiebe ich ein Oval auf Canvas
- 11. Wie verschiebe ich ein sichtbares Bild diagonal?
- 12. Wie verschiebe ich ein Array in C?
- 13. Warum hat Pylint keine eingebauten Funktionen?
- 14. Wie verschiebe ich QSplitter?
- 15. Wie verschiebe ich ein Objekt in HTML?
- 16. Wie verschiebe ich ein Objekt zwischen Wörterbüchern?
- 17. Wie verschiebe ich ein Double in MIPS?
- 18. Wie verschiebe ich ein Projekt in Eclipse?
- 19. Wie verschiebe ich ein GameObject mit derselben Geschwindigkeit wie onMouseDrag?
- 20. Wie verschiebe ich ein Pivot-Diagramm mit VBA
- 21. Wie verschiebe ich ein Quadrat mit einem Timer
- 22. Wie verschiebe ich ein Bild in div mit CSS?
- 23. Wie verschiebe ich ein Bild in Pygame/Python mit Tastendruck?
- 24. Wie verschiebe ich ein Div nach dem anderen mit Animationen
- 25. Wie finde ich die Länge einer Nummer mit den eingebauten NCalc-Funktionen?
- 26. Array von Objekten mit eingebauten Funktionen hat Typ Probleme
- 27. Wie verschiebe ich Ordner rekursiv?
- 28. Wie aktiviert, verschiebe und skaliere ich ein Fenster in VB.NET
- 29. Löschen zuvor gezeichnetes Fenster in MFC
- 30. Wie verschiebe ich ein Json-Array in ein Json-Objekt?
Muss es Schildkröte verwenden? Weil die anderen eingebauten GUI-Module Objekte millionenfach einfacher bewegen können. – Kevin
Leider ja, es muss Schildkröte sein. (Es ist ein Schulprojekt, und mein Lehrer beschränkt uns auf Schildkröten). –
Wenn Sie die grafische Zeichnung korrekt nur mit Befehlen ausführen, die sich auf die aktuelle Position beziehen, können Sie alle in eine Funktion einfügen und positionieren Sie die Schildkröte unmittelbar vor dem Aufruf an der Stelle, an der sie alle relativ sein sollen. – martineau