PyGame - 根据标题画线

问题描述 投票:0回答:1

我正在使用

pygame.draw.line
在两个像素坐标之间画一条线,该函数所需的格式是
(begin_x,begin_y),(end_x, end_y)

这条线的起始坐标可以是(0,0),并且该线的总长度必须为100px。但是,如果起点和终点之间的航向是 060°,那么该线的终点坐标是哪一个?

这条线是屏幕上飞机的合成矢量。

例如。如果飞机航向为 090°,则结束坐标为 (0,100),如果为 0°,则为 (-100, 0),依此类推。

我知道我必须使用带有 sin、cos 和 tan 函数的数学库,但我不知道从哪里开始。

python math pygame trigonometry
1个回答
0
投票

我建议先学习三角学的基础知识,例如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
,坐标很可能不是整数值,因此您可能需要进行一些舍入或近似。

© www.soinside.com 2019 - 2024. All rights reserved.