2014-10-03 37 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