0

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

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

有没有办法使用 glutTimerFunc 明确地告诉多边形在时间 T 处于位置 (x,y)?

4

1 回答 1

0

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

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

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

于 2012-12-02T06:01:35.970 回答