如果我希望旋转后所有气缸的高度都是固定值,我该如何计算原始高度?

时间:2014-11-27 03:30:33

标签: javascript rotation three.js

我是WebGL和Three.js的新手。如果我希望旋转后所有气缸的高度都是固定值,我该如何计算原始高度?

这就是我想要的:我有几个圆柱体,我将每个圆柱体的原点作为底部的中心,圆柱体通过球体连接,圆柱体将根据参数旋转x,y和z。气缸高度为30,但旋转后,y轴的高度小于30.如果我希望y轴的高度在旋转后仍为30,我该怎么办?我需要在旋转前重新计算气缸高度,我可以就如何做到这一点得到一些建议吗?非常感谢您的帮助。有人可以帮忙吗? :)

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 );

1 个答案:

答案 0 :(得分:1)

关于y轴的旋转不重要。您可以在两个不同的步骤中考虑旋转的另外两个组成部分,并将伸长率应用两次。