1

ここに私が持っているコードがあります.ISSとロケットが(同じ位置で)会ったときにウィンドウを破壊し、新しいTkinterウィンドウを作成するようにコーディングする方法はありますか?

from turtle import *

def move(thing, distance):
    thing.circle(250, distance)

def main():
    rocket = Turtle()
    ISS = Turtle()
    rocket.speed(10)
    ISS.speed(10)
    counter = 1
    title("ISS")
    screensize(750, 750)
    ISS.hideturtle()
    rocket.hideturtle()
    ISS.penup()
    ISS.left(90)
    ISS.fd(250)
    ISS.left(90)
    ISS.showturtle()
    ISS.pendown()
    rocket.penup()
    rocket.fd(250)
    rocket.left(90)
    rocket.showturtle()
    rocket.pendown()

    while counter == 1:
        move(ISS, 3)
        move(rocket, 4)

ありがとうございました!!

4

1 に答える 1

2

http://docs.python.org/2/library/turtle.html#turtle.position

「タートルの現在位置 (x,y) を (Vec2D ベクトルとして) 返します。」

ただし、浮動小数点エラーのため、それらが非常にわずかに離れていても、重複していると考える必要があります。

epsilon = 0.000001

if abs(ISS.xcor() - rocket.xcor()) < epsilon and abs(ISS.ycor() - rocket.ycor()) < epsilon:
    do stuff

それらが円であり、ISS の半径が r1 でロケットの半径が r2 であると仮定したい場合は、次のように距離を測定できます。

sqrt((ISS.xcor() - rocket.xcor())**2 + (ISS.ycor() - rocket.ycor())**2) < (r1 + r2)

これが当てはまる場合、それらは円を重ねています。

于 2013-01-24T23:52:02.873 に答える