使用给定的结束坐标创建框

时间:2016-11-06 13:02:21

标签: three.js

我无法弄清楚如何连接两个坐标(y轴不会改变)与具有给定宽度和高度的框,深度表示坐标之间的距离。

应该如何做?

1 个答案:

答案 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();

然后,我们必须找到一个点,我们将放置我们的盒子:

  1. 找出我们给定点之间的点(平均值):

    var center = point1.clone().add(point2).divideScalar(2);

  2. 为我们的框中心创建一个新点:

    var pointOfHeight = center.clone();

  3. 通过将height除以2来设置中心的y坐标:

    pointOfHeight.y = height / 2;

  4. 现在我们有了制作这个盒子的所有东西:

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