首页 > 解决方案 > ThreeJS ExtrudeGeometry HOLE 从点

问题描述

古腾塔格,伙计们!

我试图在我的 ExtrudeGeometry 上打一个洞,但它不起作用。

我的代码如下所示:

        var shape = new THREE.Mesh(new THREE.ExtrudeGeometry(drawShape(), options), new THREE.MeshLambertMaterial({color: 0x593788}))

        function drawShape() {

        // create a basic shape
            var shape = new THREE.Shape();

            shape.moveTo(10, 10);
            shape.lineTo(10, 40);
            shape.lineTo(30, 40);
            shape.lineTo(30, 10);
            shape.lineTo(10, 10);

            var hole1 = new THREE.Path();
            hole1.moveTo(12,15);
            hole1.lineTo(15,16);
            hole1.lineTo(16,16);
            hole1.lineTo(16,15);
            hole1.lineTo(12,15);
            shape.holes.push(hole1);

            return shape;
        }

我得到的是一个没有洞的素色人物

(用剪切工具画了一个白洞来显示它应该在哪里)---> 没有孔的拉伸几何图形

请问为什么会这样?

因为当我添加 absellipse 或 absarc - 孔工作正常。

        var hole2 = new THREE.Path();
        hole2.absellipse(23, 24, 2, 3, 0, Math.PI * 2, true);
        shape.holes.push(hole2);

洞

是否不可能推由线点而不是椭圆或圆弧制成的孔?

如果您知道为什么这不起作用或如何解决它,请提供帮助。

标签: javascriptthree.js

解决方案


推荐阅读