3d 计算旋转的方法是什么?尤其是这个四面体的例子?
我很难理解不规则物体的旋转,比如三角形和四面体。我试着旋转一个四面体,使两个角沿x轴笔直,它将平放在地面上。下面是我到目前为止所做的-关闭,它在地面上,但我如何向下移动左角(参见图中的箭头),使其与右角对齐 这就是使四面体变平的原因:3d 计算旋转的方法是什么?尤其是这个四面体的例子?,3d,three.js,3d,Three.js,我很难理解不规则物体的旋转,比如三角形和四面体。我试着旋转一个四面体,使两个角沿x轴笔直,它将平放在地面上。下面是我到目前为止所做的-关闭,它在地面上,但我如何向下移动左角(参见图中的箭头),使其与右角对齐 这就是使四面体变平的原因: tetrahedron.applyMatrix( new THREE.Matrix4().makeRotationAxis( new THREE.Vector3( 1, 0, -1 ).normalize(), Math.atan( Math.sqrt(2))
tetrahedron.applyMatrix( new THREE.Matrix4().makeRotationAxis( new THREE.Vector3( 1, 0, -1 ).normalize(), Math.atan( Math.sqrt(2)) ) );
我花了一段时间才明白
Math.atan(Math.sqrt(2))
的温度是54.735610317245346度。我需要应用新的makeRotationAxis
还是只需旋转它?一般来说,像这样计算旋转的方法是什么?4×4变换矩阵是仿射变换,这意味着它不仅可以进行旋转,还可以进行平移、缩放和剪切。在所有可用的操作中,该语句只执行一次旋转。那么现在的问题是什么?“如何向下移动左角(请参见图中的箭头),使其与右角对齐?”“我需要应用新的makeRotationAxis还是只旋转它?一般来说,像这样计算旋转的方法是什么?”这个组合起作用了。//将四面体放在地面上展平。applyMatrix(新的三个。Matrix4()。makeRotationAxis(新的三个。Vector3(1,0,-1)。normalize(),de2ra(54.735610317245346))//固定旋转四面体.applyMatrix(新的三个.Matrix4().makeRotationAxis(新的三个.Vector3(0,1,0).normalize(),de2ra(15))//固定偏移四面体。位置。设置(-141.4,0,-81.8)代码>我知道它在做什么,但得到15度,x和z偏移是反复试验的。如何精确计算?