我无法弄清楚如何连接两个坐标(y轴不会改变)与具有给定宽度和高度的框,深度表示坐标之间的距离。
应该如何做?
答案 0 :(得分:1)
让我们说,我们有两点THREE.Vector3()。
要制作一盒它们,我们需要找到它的宽度,高度和深度。 有两点,我们可以找到宽度和深度
var width = Math.abs(point1.x - point2.x);
var depth = Math.abs(point1.z - point2.z);
你说盒子的高度取决于这两点之间的距离,我们可以这样找到它
var height = point1.clone().sub(point2).length();
然后,我们必须找到一个点,我们将放置我们的盒子:
找出我们给定点之间的点(平均值):
var center = point1.clone().add(point2).divideScalar(2);
为我们的框中心创建一个新点:
var pointOfHeight = center.clone();
通过将height
除以2来设置中心的y坐标:
pointOfHeight.y = height / 2;
现在我们有了制作这个盒子的所有东西:
var boxGeom = new THREE.BoxGeometry(width, height, depth);
var boxMat = new THREE.MeshBasicMaterial({color: "red", wireframe: true});
var box = new THREE.Mesh(boxGeom, boxMat);
最后,我们设定了方框的起源点:
box.position.copy(pointOfHeight);
最后,我们将框添加到场景中:
scene.add(box);