Javascript 如果我想要所有气缸';旋转后高度为固定值,如何计算原始高度?
我是WebGL和Three.js的新手。如果我希望旋转后所有圆柱体的高度都是一个固定值,我将如何计算原始高度 这是我想要的:我有几个圆柱体,我把每个圆柱体的原点作为底部的中心,圆柱体通过球体连接,圆柱体将根据参数旋转x、y和z。圆柱体高度为30,但旋转后y轴上的高度小于30。如果我希望y轴的高度在旋转后仍然是30,我应该怎么做?我需要在旋转前重新计算气缸高度,我能得到一些建议吗?非常感谢你的帮助。有人能帮忙吗?:)Javascript 如果我想要所有气缸';旋转后高度为固定值,如何计算原始高度?,javascript,rotation,three.js,Javascript,Rotation,Three.js,我是WebGL和Three.js的新手。如果我希望旋转后所有圆柱体的高度都是一个固定值,我将如何计算原始高度 这是我想要的:我有几个圆柱体,我把每个圆柱体的原点作为底部的中心,圆柱体通过球体连接,圆柱体将根据参数旋转x、y和z。圆柱体高度为30,但旋转后y轴上的高度小于30。如果我希望y轴的高度在旋转后仍然是30,我应该怎么做?我需要在旋转前重新计算气缸高度,我能得到一些建议吗?非常感谢你的帮助。有人能帮忙吗?:) 绕y轴旋转无关紧要。您可以在两个不同的步骤中考虑旋转的其他两个组件,并将延伸应用
绕y轴旋转无关紧要。您可以在两个不同的步骤中考虑旋转的其他两个组件,并将延伸应用两次 你能用三角函数吗?30=sin(θ)*开始高度高,但高度30是我在x方向旋转,然后在y方向旋转,然后在z方向旋转后想要的固定高度,触发函数会工作吗?该函数中的θ是偏离“高度”法线的角度,我不知道如何设置尺寸,但它应该工作。嗨,谢谢。但是如果圆柱体在x,y,z方向旋转,你知道怎么计算θ吗?有人能帮忙吗?我不知道该怎么解决它。仍在寻找解决方案。。
var cyliderHeight = 30;
var cylinderGeometry = new THREE.CylinderGeometry( topRadius, botRadius, cyliderHeight, 16 );
cylinderGeometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, cyliderHeight/2, 0 ) );
var cylinder = new THREE.Mesh( cylinderGeometry, material );
cylinder.position.set( positionX, positionY, positionZ);
group.add( cylinder );
cylinder.rotation.x = NaturalIncrease / 100000;
cylinder.rotation.y = year * 4 / 10000;
cylinder.rotation.z = NetOverseasMigration / 100000;
var sphere = new THREE.Mesh( new THREE.SphereGeometry(topRadius, 20, 20), material );
var point = new THREE.Vector3( 0, cyliderHeight, 0 );
point.applyEuler( cylinder.rotation );
sphere.position.set( point.x + positionX, point.y + positionY, point.z + positionZ );