两只龟在同一个位置,如何确定?

时间:2013-01-24 23:36:46

标签: python turtle-graphics

所以这里是我的代码,是否有一种编码方式,以便当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)

谢谢!!

1 个答案:

答案 0 :(得分: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)

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