我正在编写我的第一个3D libGDX游戏,我坚持以下场景:
我有一个从g3db
文件加载的场景。我试图转换的ModelInstance
由一个单独的类控制。在move()
方法中,我目前正在尝试围绕自己的Y坐标旋转ModelInstance
。代码如下:
Vector3 position = model.calculateBoundingBox(new BoundingBox()).getCenter();
model.transform.translate(-position.x, 0f, -position.z);
model.transform.rotate(Vector3.Y, (float) (Math.toDegrees(Math.acos(adjacent/hypotenuse))));
model.transform.translate(position.x, 0f, position.z);
model.calculateTransforms();
仅供参考,adjacent
和hypotenuse
用于查找屏幕Y中心与屏幕中心与触摸点之间的线之间角度的余弦。
我要对此代码执行的操作是将model
(ModelInstance
)转换为坐标系的中心,将其围绕世界的Y旋转并将其转换回原来的位置。相反,model
围绕世界的Y旋转,原始偏离中心。如何正确应用所需的转换?