2014-10-03 74 views
2

我試圖創建一個簡單的矩形,使用形狀的主幾何和路徑孔孔如下:單孔形狀:「可能孔外形!」

var shape = new THREE.Shape(); 
    shape.moveTo(0, -100); 
    shape.lineTo(0, 100); 
    shape.lineTo(400, 100); 
    shape.lineTo(400, -100); 

    var hole = new THREE.Path(); 
    hole.moveTo(25, -75); 
    hole.lineTo(25, 75); 
    hole.lineTo(375, 75); 
    hole.lineTo(375, -75); 

    shape.holes.push(hole); 
    geometry = new THREE.ShapeGeometry(shape); 

從這個代碼中,我得到一個控制檯錯誤像這樣的:

無限循環!左邊的孔:1,可能是孔外形!

我做錯了什麼?就我從硬編碼座標中看到的那個孔來說,它的座標是在大的形狀內部。

我看了一些similaranswersexamples已經但我無法看到差異或缺少的東西。

回答

4

逆時針環繞順序指定您的觀點。

var shape = new THREE.Shape(); 
shape.moveTo(0, -100); 
shape.lineTo(400, -100); 
shape.lineTo(400, 100); 
shape.lineTo(0, 100); 

var hole = new THREE.Path(); 
hole.moveTo(25, -75); 
hole.lineTo(375, -75); 
hole.lineTo(375, 75); 
hole.lineTo(25, 75); 

three.js所r.68

+0

完全正確!令我擔心的是,我沒有在文檔上找到任何關於這方面的信息......所以,感謝@WestLangley – juagicre 2014-10-06 06:57:59

0

我相信你必須關閉路徑。所以加

shape.lineTo(0, -100); 

和孔

hole.lineTo(25, -75); 
+0

此選項是我第一次嘗試之一,但沒有任何效果。 – juagicre 2014-10-06 06:58:54