我正在定义一个锥体,我需要能够绕其顶点旋转(锥体厚度最小的点)。我找不到设置旋转发生点的方法。
var coneGeometry = new THREE.CylinderGeometry(1000, 0, width, 50, 50, false);
var cone = new THREE.Mesh(coneGeometry, material);
cone.position.x = x;
cone.position.y = y + width / 2;
cone.position.z = z;
// I want this rotation to happen around the point given by the (x, y, z) location
cone.rotation.x = dip;
答案 0 :(得分:9)
圆锥几何体以原点为中心。您需要做的是在创建锥形几何体后立即将其转换为圆锥体的尖端位于原点。
coneGeometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, coneHeight/2, 0 ) );
(平移的符号取决于圆锥的哪一端是小端。)
现在,当您旋转圆锥体时,它将围绕尖端旋转。提示也将位于您设置的位置。
编辑:你现在可以这样做,而不是:
coneGeometry.translate( 0, coneHeight/2, 0 ); // three.js r.72