我正在使用pygame在两个任意点之间画一条线。我还想在行的行进方向上朝外的行末添加箭头。

将箭头图像粘贴到末尾很简单,但是我不知道如何计算旋转角度以保持箭头指向正确的方向。

有帮助吗?

解决方案

这是完成此操作的完整代码。请注意,在使用pygame时,y坐标是从顶部开始测量的,因此在使用数学函数时我们取负数。 通用标签

其他提示

我们假设0度表示箭头指向右侧,90度表示笔直向上,而180度表示指向左侧。

有几种方法可以做到这一点,最简单的方法可能是使用atan2函数。 如果您的起点是(x1,y1),终点是(x2,y2),则两者之间的直线度数为: 通用标签

这将使您的角度在-180到180之间,因此您需要在0到360之间的角度来照顾自己。

我将必须查找要使用的确切函数,但是如何制作一个直角三角形,其中斜边是所讨论的直线,并且支腿是轴对齐的,并使用一些基本的三角函数来计算直线的角度基于三角形边的长度?当然,您将不得不对已经与轴对齐的特殊情况的线进行处理,但这应该是微不足道的。

此外,这篇有关坡度的维基百科文章可能会给您一些想法。

仅需附加到上面的代码中,您可能想要一个事件循环,这样它就不会立即退出: 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top