平滑旋转到一个角度

我正在尝试让一个物体每秒旋转160度,并使其在预先指定的角度减速到完全停止。例如,如果选择的角度为30度,它会快速旋转并减速,最终在30度处停止。我在编写算法方面遇到了困难,这就是我要求的内容。

暂时假设设置旋转只需要 object.Rotation = 30 (度)。请随意使用 Java/Lua/C++/JavaScript 编写。

我目前的进展(基本上什么都没有):

//假设 wait(1)等待1秒钟
int angle = 70;//一开始快速旋转,但随着时间的推移减速
for(int i=140; i>.1;i=i-5)//必须适用于每个角度
{
    for(int a=0;a<i;a=a+10)
    {
        object.Rotation = a;
        wait(.05);
    }
}
点赞
用户1847592
用户1847592
代码伪代码:

int max_speed = 10 // 设置最大旋转速度为10
int target_angle = 30 // 设置目标旋转角度为30

while (target_angle != object.Rotation) do // 当目标旋转角度未达到,则执行以下操作
  int delta = target_angle - object.Rotation // 计算角度差
  delta = max(min(delta / 5, max_speed), -max_speed) + max(min(delta, 1), -1) // 计算旋转角度
  object.Rotation = object.Rotation + delta // 执行旋转
  wait(.05) // 等待
end while
2015-10-24 08:50:18