【问题标题】:How to rotate an object along a circular path?如何沿圆形路径旋转对象?
【发布时间】:2016-09-22 05:12:01
【问题描述】:
我正在尝试使用 webGL 编程语言实现沿圆形路径移动的自行车。我的问题与自行车本身的旋转有关,它在圆周运动期间不会自行旋转,但它仍保持其初始角度,尽管物体沿轨道以圆形方式正确平移。
为了给自行车提供圆周运动,我使用余弦和正弦函数,并且每次都改变角度。我必须考虑的轴是 x 轴和 z 轴,而 y 轴是固定的。
有什么建议吗?
【问题讨论】:
标签:
javascript
rotation
webgl
translate-animation
【解决方案1】:
如果我理解正确的话,你想要的基本上是调整自行车的方向,使其面向运动方向?
这通常通过计算模型(自行车)的 modelToWorld 矩阵来完成。您的矩阵库可能有一个 .lookAt 函数,您应该使用它来计算 modelToWorld 矩阵。
您应该能够计算出自行车的前进方向。如果它在一个圆圈中移动,那么它是normalize(cross(normalize(bikePos-circleCenter), UP_VECTOR))。