Path 使用three.js挤出

Path 使用three.js挤出,path,geometry,three.js,Path,Geometry,Three.js,我想沿着一个圆挤出一个矩形来制作一个3d圆环 我已经看过webgl_geometry_extrude_shapes.html示例,但我无法使用圆更改示例路径。 有人能举个例子吗? 提前谢谢 我认为你在寻找一种不同的“挤压”,称为挤压。 您需要创建一条路径,其中包含描述偏移矩形的点,然后将其传递到LatherGeometry并插入网格实例: e、 g 在LatherGeometry构造函数中,第一个参数是要车削为点阵列的路径,第二个参数是步数(步数越多,细节/径向迭代次数越多),第三个参数(我

我想沿着一个圆挤出一个矩形来制作一个3d圆环 我已经看过webgl_geometry_extrude_shapes.html示例,但我无法使用圆更改示例路径。 有人能举个例子吗?
提前谢谢

我认为你在寻找一种不同的“挤压”,称为挤压。 您需要创建一条路径,其中包含描述偏移矩形的点,然后将其传递到LatherGeometry并插入网格实例:

e、 g

在LatherGeometry构造函数中,第一个参数是要车削为点阵列的路径,第二个参数是步数(步数越多,细节/径向迭代次数越多),第三个参数(我在示例中没有使用)是角度-默认情况下,它为360,但您也可以控制它

关于这些点,请注意它们在x轴上偏移了一点。定位点不仅会影响要车削的正方形的大小,还会影响车削偏移量(偏移量为0时,应得到完整的圆柱体)。此外,这些点还会影响车床轴(请注意,我使用了XZ)


如果您不熟悉车床的概念,您可能应该在3D编辑器中玩一玩,因为大多数车床都支持该功能。(有点离题,但Illustrator under Effects>3D>Revolve支持此操作)

使用拉伸创建环的替代方法是创建一个4边环面,如下所示:
geometry=new THREE.TorusGeometry(50、10、4、64)谢谢,但这样平面就不在圆环的外部/内部。
var pts = [
            new THREE.Vector3(150,0,50),//top left
            new THREE.Vector3(200,0,50),//top right
            new THREE.Vector3(200,0,-50),//bottom right
            new THREE.Vector3(150,0,-50),//bottom left
            new THREE.Vector3(150,0,50)//back to top left - close square path
           ];
var mesh = new THREE.Mesh( new THREE.LatheGeometry( pts, 12 ), new THREE.MeshLambertMaterial( { color: 0x2D303D, wireframe: true, shading: THREE.FlatShading } ));
mesh.position.y = 150;
mesh.overdraw = true;
mesh.doubleSided = true;

scene.add( mesh );