将网格转换为三角形网格,将原始形状转换为网格

使用顶点的自定义内存布局将网格转换为三角形网格

Aspose。3D for Java API 支持使用顶点的自定义内存布局将网格转换为三角形网格。顶点的自定义内存布局由代码示例中的 VertexDeclaration 类动态定义。

开发人员可能会将网格转换为三角形网格,因为任何复杂 (表面) 结构都可以表示为一堆三角形。三角形是最原子的几何形状。因此,它几乎被用作任何东西的基础。此代码示例使用自定义内存布局将框转换为三角形网格。

// Initialize scene object
Scene scene = new Scene();
// Initialize Node class object
Node cubeNode = new Node("box");
// Get mesh of the Box
Mesh box = (new Box()).toMesh();
// Create a customized vertex layout
VertexDeclaration vd = new VertexDeclaration();
VertexField position = vd.addField(VertexFieldDataType.F_VECTOR4, VertexFieldSemantic.POSITION);
vd.addField(VertexFieldDataType.F_VECTOR3, VertexFieldSemantic.NORMAL);
// Get a triangle mesh
TriMesh triMesh = TriMesh.fromMesh(box);
// ExEnd:ConvertBoxMeshtoTriangleMeshCustomMemoryLayout
// Point node to the Mesh geometry
cubeNode.setEntity(box);
// Add Node to a scene
scene.getRootNode().getChildNodes().add(cubeNode);
// The path to the documents directory.
String MyDir = RunExamples.getDataDir() + RunExamples.getOutputFilePath("BoxToTriangleMeshCustomMemoryLayoutScene.fbx");
// Save 3D scene in the supported file formats
scene.save(MyDir, FileFormat.FBX7400ASCII);

将原始形状转换为网格

Aspose.3D for Java API 支持将任何基本形状转换为网格。原始形状包括最基本的和使用过的对象,如长方体、球体、平面、圆柱体和圆环。

将球体原语转换为网格

球体是三维空间中完美的圆形几何物体,从运动球到太空中的行星无处不在。让我们使用球体原语来创建网格。 下面的代码示例将球体转换为网格。

// Initialize object by Sphere class
IMeshConvertible convertible = new Sphere();
// Convert a Sphere to Mesh
Mesh mesh = convertible.toMesh();

将框转换为网格

盒子描述了各种容器和容器,这些容器和容器永久用作存储或临时使用,通常用于运输内容物。让我们使用框原语来创建网格。下面的代码示例将框转换为网格。

// Initialize object by Box class
IMeshConvertible convertible = new Box();
// Convert a Box to Mesh
Mesh mesh = convertible.toMesh();

将平面转换为网格

平面无限延伸而没有厚度。一个平面的例子是坐标平面。让我们使用平面原语创建网格。下面的代码示例将平面转换为网格。

// Initialize object by Plane class
IMeshConvertible convertible = new Plane();
// Convert a Plane to Mesh
Mesh mesh = convertible.toMesh();

将圆柱体转换为网格

圆柱体是最基本的曲线几何形状之一,由与给定直线 (圆柱体的轴) 相距固定距离的点形成的表面。它可以在许多地方使用,例如作为房屋前面的支柱或汽车驱动轴。让我们使用圆柱原语创建网格。下面的代码示例将圆柱体转换为网格。

// Initialize object by Cylinder class
IMeshConvertible convertible = new Cylinder();
// Convert a Cylinder to Mesh
Mesh mesh = convertible.toMesh();

将圆环转换为网格

圆环是通过在三维空间中绕与圆共面的轴旋转圆而产生的旋转表面。如果旋转轴不接触圆,则表面呈环形,称为圆环。让我们使用圆环原语来创建网格。下面的代码示例将圆环转换为网格。

// Initialize object by Torus class
IMeshConvertible convertible = new Torus();
// Convert a Torus to Mesh
Mesh mesh = convertible.toMesh();