我正在使用
pygame.draw.line
在两个像素坐标之间画一条线,该函数所需的格式是 (begin_x,begin_y),(end_x, end_y)
。
这条线的起始坐标可以是(0,0),并且该线的总长度必须为100px。但是,如果起点和终点之间的航向是 060°,那么该线的终点坐标是哪一个?
这条线是屏幕上飞机的合成矢量。
例如。如果飞机航向为 090°,则结束坐标为 (0,100),如果为 0°,则为 (-100, 0),依此类推。
我知道我必须使用带有 sin、cos 和 tan 函数的数学库,但我不知道从哪里开始。
我建议先学习三角学的基础知识,例如https://www.mathsisfun.com/algebra/trigonometry.html.
这里我画了一个有两个点的图表,
A
和B
。 A
是中心/起点,B
是您要计算的坐标。这些点之间的距离标记为 L
。我还绘制了代表点 a
和 A
之间航向的角度 B
。
通过使用此图并应用基本三角学,您可以得出便利贴中的方程。点
A
和B
之间的垂直差为h
,可以通过L * sin(a)
计算出来。同样,点 w
之间的水平差可以用 L * cos(a)
计算。
要小心,因为根据角度
a
,坐标很可能不是整数值,因此您可能需要进行一些舍入或近似。