2016-11-06 41 views
0

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

应该怎么做?

+0

你的意思是“坐标”是分? – prisoner849

+0

@ prisoner849是的,抱歉,如果我不清楚 – DevGambit

回答

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;

现在所拥有的一切,使箱:

​​

最后,我们设置框的原点:

box.position.copy(pointOfHeight); 

最后,我们的盒子添加到场景:

scene.add(box);