多边形在时间 T 的位置 x,y 处

Polygon at position x,y at time T

本文关键字:位置 时间 多边形      更新时间:2023-10-16

例如,我试图使多边形 A 在时间 = 1 秒的位置 (x,y) 处。那么当时间 = 2 秒时,它应该处于位置 (x,y+2)。然后我计划制作更多这样的多边形。我还希望这是动画的,并且多边形从第一个位置平滑地移动到第二个位置,而不是多边形跳一轮。

到目前为止,我已经了解了glutTimerFunction,但是,根据我的理解,我不能单独告诉多边形在位置(x,y)和时间T。但相反,似乎我必须制作我想要的每个多边形(大约 500 个),然后让计时器一次循环遍历所有多边形。

有没有办法使用 glutTimerFunc 显式告诉多边形在时间 T 的位置 (x,y)?

OpenGL是一个低级API,而不是引擎或框架。 它没有内置的方法可以随着时间的推移在位置之间自动进行插值,这取决于您作为引擎编写者可以根据需要实现。 随时间推移,两点之间的线性插值相当容易(即,在伪代码position = startPos + ((endPos - startPos) * timeElapsed中)。 沿着更复杂的曲线进行插值本质上是相同的,只是表示所需曲线的数学要多一点。

您是正确的,您必须手动遍历所有多边形并定位它们。 这是使用低级图形 API 而不是预先编写的引擎的另一个功能。

有许多不同复杂度(和价格)的引擎可以为您抽象出这些细节,但是,如果您的目标是学习图形编程,我建议您避开它们并耕耘。