1

所以这是我的代码,有没有办法编写代码,以便当国际空间站和火箭相遇(在同一位置)破坏窗口并创建一个新的 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

如果您想假装它们是圆并且国际空间站的半径为 r1 而火箭的半径为 r2,那么您可以像这样测量距离:

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

如果这是真的,它们是重叠的圆圈。

于 2013-01-24T23:52:02.873 回答