0
例如: 我添加了子矩形(2,3)到主矩形(1)。保存孩子的旋轉Three.js
看起來像3個矩形一個接一個。
parent.add(obj);
但是,如果我改變父矩形旋轉(1)這也會導致孩子的改變與祖先位置和旋轉(!)。
如何改變位置和保存旋轉?
例如: 我添加了子矩形(2,3)到主矩形(1)。保存孩子的旋轉Three.js
看起來像3個矩形一個接一個。
parent.add(obj);
但是,如果我改變父矩形旋轉(1)這也會導致孩子的改變與祖先位置和旋轉(!)。
如何改變位置和保存旋轉?
如果您將對象添加到父項作爲子項,並更改父項的旋轉或位置,它將僅影響父項。
子元素的值未改變,但位置和旋轉是針對父元素計算的。孩子與父母之間的關係從未在任何地方得到保存。這就是爲什麼你無法將孩子輪換保存到父母父母的原因。它只是不存在。
如果你想只能與父母元素移動,你可以計算兒童的位置或旋轉的父母親和存儲在某個地方。在每個動畫幀中,您必須爲每個孩子設置此位置和旋轉角度。 這將是不可行的。
要計算子位置向父場景看how to: get the global/world position of a child object
但更好的方法
是其他元素放到場景分開,而不是作爲一個孩子OD對象。 如果您需要使用一組對象進行一些操作,請將對象標識符保存到外部,並通過標識符將對象作爲參考。
scene.getObjectById(4, true);
將每個平面的軸位置更改爲網格的起點,然後實現您想要的旋轉平面2.平面1將旋轉它的所有子元素。 – Erevald
@Vlad請參閱http://stackoverflow.com/questions/29586422/three-js-ignore-parents-rotation。另見http://stackoverflow.com/questions/15734049/invert-rotation-of-parent-in-the-child-so-the-child-appears-unrotated-in-the-wo/15735090#15735090。 – WestLangley