2016-11-06 39 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);