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

时间:2012-12-01 19:55:58

标签: c++ opengl glut

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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