Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 单孔形状:“;可能是洞的外型&引用;_Three.js - Fatal编程技术网

Three.js 单孔形状:“;可能是洞的外型&引用;

Three.js 单孔形状:“;可能是洞的外型&引用;,three.js,Three.js,我尝试使用主几何图形的形状和孔的路径创建一个带有孔的简单矩形,如下所示: 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

我尝试使用主几何图形的形状和孔的路径创建一个带有孔的简单矩形,如下所示:

    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个,可能是洞外形状

我做错什么了吗?据我所见,从硬编码的坐标来看,这个洞的坐标在这个大形状的内部


我已经看了一些,但我看不出它们之间的区别或缺少什么。

我相信你必须关闭这条路。所以加上

shape.lineTo(0, -100);
到洞里去

hole.lineTo(25, -75);

按逆时针缠绕顺序指定点

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

完全正确!让我担心的是,我没有在文档中找到任何与此相关的内容。。。所以,非常感谢@WestLangley这个选项是我第一次尝试,但没有任何效果。