三:如何获取对象,它几乎是圆柱体测定法,但顶部不是圆圈



我想问三个。如何获取对象,它几乎是气缸测量学,但一侧(顶部或底部)而不是圆圈。它可以是一个elip,矩形,任何封闭形状...

这是SolidWork Soft中的类似阁楼命令。

任何人如何帮助我。

谢谢悬挂

创建一个"棱镜"的形状,该形状在两个任意形状之间顺利移到另一端并不是一个简单的操作。

three.js有一些原始词(例如您提到的圆柱体测量值),但是没有什么能为您本身做到这一点。鉴于此任务的复杂性,最好在实际的3D建模软件(即Blender3D)中生成形状,然后将其导入您的场景。

应该有可能创建一个2D形状,然后使用Trix.js将其挤压到3D对象。例如,请参见下面的代码以创建一个圆形的框几何形状。以类似的方式,您可以创建椭圆并挤出。

// create a square box
const l = 100, w = 100, h = 100, roundRadius = 5, bevelRadius = 10;
var shape = new THREE.Shape();
shape.moveTo( -l/2 + roundRadius, -w/2 );
shape.lineTo( l/2 - roundRadius, -w/2 );
shape.absarc ( l/2 - roundRadius, -w/2 + roundRadius, roundRadius, -Math.PI/2, 0, false );
shape.lineTo( l/2, w/2 - roundRadius );
shape.absarc ( l/2 - roundRadius, w/2 - roundRadius, roundRadius, 0, Math.PI/2, false );
shape.lineTo( -l/2 + roundRadius, w/2 );
shape.absarc ( -l/2 + roundRadius, w/2 - roundRadius, roundRadius, Math.PI/2, Math.PI, false );
shape.lineTo( -l/2, -w/2 + roundRadius );
shape.absarc ( -l/2 + roundRadius, -w/2 + roundRadius, roundRadius, Math.PI, -Math.PI/2, false );
// extrude it 
var extrudeSettings = { amount: h, bevelEnabled: true, bevelThickness: bevelRadius, bevelSize: bevelRadius, bevelSegments: 20 };
const geo = new THREE.ExtrudeGeometry( shape, extrudeSettings );

最新更新