turtle
には、すべての要素を移動する特別な機能はありません。
しかし、turtle
は、Canvas
オブジェクトを使用して要素を表示するtkinter
を使用します。
Canvas
には、表示されているすべての要素を取得して移動する機能があります。
turtle
はキャンバス(get_canvas()
)にアクセスできますが、後でキャンバスと要素で何かを行うにはtkinter
を知る必要があります。
この例では、要素を描画し、次に(300, 50)
を移動します。
また、カメをクリックしてドラッグすると、すべての要素を移動できます。あなたが非で白塗りの色を使って塗りつぶされていないポリゴンをエミュレートすることができますが、あなたが移動する必要があるすべては(シンプル、満たされたポリゴンの集合体である場合
import turtle
t = turtle.Turtle()
# --- move all elements ---
def move(offset_x, offset_y):
canvas = turtle.getcanvas() # `turtle`, not `t`
for element_id in canvas.find_all():
canvas.move(element_id, offset_x, offset_y)
# --- move all on draging turtle ---
old_x = 0
old_y = 0
# get mouse current position
def on_click(x, y):
global old_x, old_y
old_x = x
old_y = y
# move elements
def on_drag(x, y):
global old_x, old_y
move(x-old_x, old_y-y)
old_x = x
old_y = y
t.onclick(on_click)
t.ondrag(on_drag)
# --- example ---
# draw something
for a in range(8):
for _ in range(8):
t.left(45)
t.fd(20)
t.right(45)
t.up()
t.fd(60)
t.down()
# move
move(300, 50)
# ---
turtle.done() # `turtle`, not `t`
タートルで移動することはできません。それを再描画する必要があります。 'Turtle'はキャンバスにオブジェクトを移動するために' move'関数を持つ 'Canvas'を使う' Tkinter'を使いますが、キャンバスにアクセスしてキャンバス上のオブジェクトにアクセスするのは難しいでしょう。 – furas