【问题标题】:Positioning of objects taking object's left-top as point instead of object's center in LibGDX在LibGDX中以对象的左上角而不是对象的中心为点定位对象
【发布时间】:2015-05-30 08:47:33
【问题描述】:

请帮助!我太难了。
我有一个 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

谢谢

【问题讨论】:

    标签: 3d libgdx position


    【解决方案1】:

    使用在这个问题中找到的答案会有用吗?

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

    贾库布·库切拉

    1. 平移到旋转点,例如 translate(3, 0, 0)
    2. 围绕中心旋转(现在是旋转点),例如 rotate(0,1,0, 45*delta)
    3. 向后平移(平移与旋转相关),例如 translate(-3, 0, 0);

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

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

    我个人使用 Blender,并移动您的对象,以便您首选的轴心点位于 Blender 中的 0,0,0 世界空间,这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2011-04-19
      相关资源
      最近更新 更多