将对象的左上角作为点而不是对象的中心放置在LibGDX中的对象的定位

时间:2015-05-30 08:47:33

标签: 3d libgdx position

请帮忙!我很沮丧。
我有一个g3db格式的模型。我想在XZ平面的3D空间中正确定位,以左上角为中心。所以当我输入代码时:
MyObject.transform.setTranslation(0, MyObject.getTranslation(new Vector3(0,0,0)).y, 0); 物体放在原点。

我不能用:
MyObject.transform.setTranslation(objectWidth / 2, MyObject.getTranslation(new Vector3(0,0,0)).y, objectLength / 2;
因为g3db对象中可能存在一些初始旋转,这可能会干扰混淆,其中包括宽度和长度。

以下是支持图片:  http://i.stack.imgur.com/VqKfD.png

由于

1 个答案:

答案 0 :(得分:0)

使用此问题中的答案会有用吗?

https://stackoverflow.com/a/26674904/4922000

  

JakubKučera

     
      
  1. 转换为rotationPoint,例如translate(3,0,0)
  2.   
  3. 围绕中心旋转(现在是旋转点),例如旋转(0,1,0,45 * delta)
  4.   
  5. 向后翻译(翻译相对于旋转),例如translate(-3,0,0);
  6.         

    object.transform.translate(3,0,0).rotate(0,1,0,45 * delta).translate(-3,0,0);

如果这与您现有的轮换代码冲突,那么在导出到.fbx然后导出.g3db之前,您可以尝试在3d创作软件(Blender?)中物理移动对象。

我个人使用Blender,移动你的物体,让你的首选枢轴点位于搅拌机的0,0,0世界空间,适合我。