我正在开发一个游戏池游戏,使用box2d。
我知道球的移动矢量(vtX,vtY),如何计算球移动时的旋转(x,y)。
球是3D球体,我需要旋转才能在球移动时旋转球。
ps:在我的情况下,我不能使用3d物理引擎。
答案 0 :(得分:0)
您可以将生成的旋转表示为旋转轴和角度的组合。我强烈反对使用欧拉角,因为如果正确完成,这将导致非常复杂的表达。
如果您的球移动距离(dx, dy)
,则旋转轴为normalize(cross(up, (dy, dy)))
,其中up
为向上方向。假设这是z轴,你得到
axis = normalize(-dy, dx, 0)
角度是
angle = length(dx, dy) / r,
其中r
是球的半径和length(dx, dy) = sqrt(dx * dx + dy * dy)
。角度将以弧度为单位。