【发布时间】:2020-12-27 17:06:54
【问题描述】:
我有一个sphere,我正在根据从坐标(半径 = 200)转换的点(x、y、z)在表面上添加圆柱体。现在我被困在如何单独计算每个圆柱体从球体面向外所需的旋转。
我正在使用 Matrix4(makeRotationX(); 和 Matrix4(makeRotationZ(); 来旋转几何体。
function drawCylinder(x_values, y_values, z_values, scene) {
var cylinderHeight = 20;
var rotationX = new THREE.Matrix4().makeRotationX(Math.PI/2);
var rotationZ = new THREE.Matrix4().makeRotationZ(Math.PI/2);
var axis = new THREE.Vector3(x_values, y_values, z_values);
var geometry = new THREE.CylinderGeometry(2, 2, cylinderHeight, 32 );
geometry.translate(x_values[0], y_values[0], z_values[0]);
//geometry.applyMatrix4(rotationZ);
var material = new THREE.MeshBasicMaterial({
color: 0x5affb5
});
var mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
clearArrays();
}
示例(x:– 71.2237692444388,y:– 47.741840449353155,z:– 182.89858218456328)
【问题讨论】:
-
你可以简单地使用lookAt threejs.org/docs/#api/en/core/Object3D.lookAt