指定對象旋轉中心
默認情況下,對象的旋轉中心都是自身的中心。對於組對象而言,也是如此。因此,可以利用這個特點,實現對象繞任何點旋轉,也就是指定旋轉中心。比如我們想要下圖的對象繞A點旋轉
我們可以添加我們的對象到一個組對象,然后移動對象,讓A點對准組的中心位置,如下:
此時,如果我們旋轉組對象,整個組里面的對象都繞着組的中心旋轉,那么就實現了對象繞A點旋轉了。
但是,此時我們的對象位置變了,所以,我們再把組對象往回移,讓對象回到原來的位置,如下:
這樣,我們就實現了指定對象旋轉中心的能力了。具體實現如下:
//通過x,y,z指定旋轉中心,obj是要旋轉的對象 function changePivot(x,y,z,obj){ let wrapper = new THREE.Object3D(); wrapper.position.set(x,y,z); wrapper.add(obj); obj.position.set(-x,-y,-z); return wrapper; }