【问题标题】:calculate absolute position / rotation of Object3d's child计算Object3d的孩子的绝对位置/旋转
【发布时间】:2013-03-10 00:25:55
【问题描述】:

我有一个移动和旋转的网格,我想向父 Object3D 添加一个绝对定位/旋转的子对象,并且当父元素改变位置或旋转时它应该保持其位置。

parent_ = new THREE.Object3D()
parent_.add( new THREE.Mesh(new THREE.CubeGeometry(2, 20, 2), new THREE.MeshNormalMaterial()))
child_ = new THREE.Mesh(new THREE.CubeGeometry(30, 3, 30), new THREE.MeshNormalMaterial())
child_.position.set(1,10,1)
parent_.add(child_)
scene.add(parent_);

fiddle

如何从绝对定位/旋转的对象计算相对于父 object3d 的位置/旋转,使其保持绝对位置?

【问题讨论】:

  • `应该保持它的位置当父...`应该保持它的绝对位置?那为什么要让它成为那个父母的孩子呢?
  • 我知道它是循环的,但我仍然想知道它是如何正确完成的。

标签: rotation position three.js


【解决方案1】:

为了在Object3D的局部坐标系和世界坐标系之间进行转换,有worldToLocallocalToWorld两种方法,源码见:

http://github.com/mrdoob/three.js/blob/master/src/core/Object3D.js

了解详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2017-07-22
    • 2011-07-20
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多