乌龟看点(两个给定坐标的度数计算)

时间:2014-12-10 18:41:25

标签: python pygame

我有兴趣创建一个新函数,让python乌龟看一个对象。所以我只需要一个公式,计算让乌龟这样做所需的角度。 (0 =向右看)示例:

coords of turtle:  100,0
coords of point to look at: 0,0
result: 180

但是如何计算呢? 谢谢你希望得到答案

1 个答案:

答案 0 :(得分:0)

假设你已经有了一些分数类(我不熟悉Turtle,但我认为你这样做了)就像这样

class pt():
    def __init__(self, x, y):
        self.x = x
        self.y = y

我们可以提出两点

>>> ptA = pt(10, 10)
>>> ptB = pt(0, 0)

然后,您可以简单地使用与某些几何体的反切线来找到这些点之间的角度

def findAngle(pt1, pt2):
    import math
    dy = pt2.y - pt1.y
    dx = pt2.x - pt1.x
    if dx == 0:
        return 180.0
    else:
        return math.atan2(dy, dx) * 180.0 / math.pi

测试

>>> findAngle(ptB, ptA)
45.0
>>> findAngle(ptA, ptB)
-135.0

现在就你的问题而言:乌龟必须取决于他最初面对的方式。上述方法可以找到从第一点到第二点的方向,但是您需要知道龟的当前方向,以了解他们需要转向哪个方向。