在three.js所的场景,我有一个绕父对象。 这位家长有应位置上锁定到他们的父母的旋转孩子,但自己的旋转需要是独立的,不从父继承。
一个简单的例子是使孩子们总是面对摄像机。
我的尝试是“反转”,在子女的父或母的旋转。 那是:
# render loop
render = ->
requestAnimationFrame(render)
# Rotate the parent
@parent.rotation.x += 0.01
@parent.rotation.z += 0.02
# Attempt to invert rotation of the parent, and fail :(
for child in @children
child.rotation.x = -@parent.rotation.x
child.rotation.z = -@parent.rotation.z
这个天真的尝试的结果是在这里。 小黄飞机是灰色的立方体的孩子,他们的方式我不希望绕...
http://jsfiddle.net/b6jgS/
我要的是这些飞机是完美的正方形的全部时间,与立方体的旋转移动,但它们的旋转锁定到世界,而不是父母。
所以,我怎么会撤消在孩子家长的旋转? 什么疯狂的数学这里我错过?
我知道我可以使用点精灵在这个例子中,但我心里有更复杂的需求,最终在那里点精灵也做不了。 所以,我需要找出一个真正的3D对象做到这一点。
编辑:这不单单每个轴的工作。 如果父母只在X旋转,我能反转,关于孩子的X轴旋转,它就像我想要的。 同一只Z.但是,如果我开始改变,然后双方反转X和Z它,然后得到所有松鼠。