为什么这种求两点夹角的方法如此不准确?

2024-10-04 03:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用角度让一个精灵和另一个精灵相交。这是我在网上找到的函数:

def findAngle(x,y,x2,y2):
    deltaX = x2 - x
    deltaY = y2 - y

    return math.atan2(deltaY,deltaX)

然而,这是非常不准确的。当两个精灵在同一个X上时,它们之间的距离通常仍为100-200像素。在

这是我的整个程序让你自己运行。在

^{pr2}$

Tags: 函数程序距离returndefmath像素精灵
2条回答

P1在100100,静止不动 准确地说,你移动的角度是-120度,而不是-br'> 如果你交换罪与罪, 每帧,p2在X方向移动-1.715个单位,在Y方向移动-1.02个单位。当它在Y轴上移动了300个单位(这就完成了),它应该在X轴上移动了500个单位,这就是你要找的。在

把事情简化为玩游戏:

import math

def findAngle(x,y,x2,y2):
    return math.atan2(y2-y,x2-x)

x = 600
y = 400
angle = findAngle(100,100,x,y)
dx = 2 * math.cos(angle)
dy = 2 * math.sin(angle)
while x > 100:
    x -= dx
    y -= dy
print "At end, we were at %f,%f"%(x,y)

结果显示:最后,我们的价格是99.224131,99.534479

您应该使用cos表示x坐标,sin表示y坐标。它在draw函数中向后。在

相关问题 更多 >