是否可以在 javafx 中将 SVGPath 转换为 Mesh
is it possible to convert SVGPath to Mesh in javafx
我正在尝试使用 javafx 将 .svg 文件转换为 3d(.obj 文件)。
我可以将 Shape - Cylinder、Box 等图元转换为 Mesh。是否可以转换 SVGPath 以转换为任何特定的网格。
开源库 FXyz has exactly what you are looking for: a SVG3DMesh
class 给定 2D SVGPath
(或包含其内容的字符串)将 return 3D TriangleMesh,挤压 2D 形状到一定高度。
稍后您可以将该网格导出到 obj 文件。
这是一段说明如何使用它的代码片段:
SVG3DMesh svg3DMesh = new SVG3DMesh("M40,60 C42,48 44,30 25,32", 10);
您可以显示网格:
svg3DMesh.setDrawMode(DrawMode.LINE);
svg3DMesh.setCullFace(CullFace.NONE);
或者用你想要的颜色显示一个实体 3D 对象:
svg3DMesh.setTextureModeNone(Color.RED);
用于将网格导出到 obj:
OBJWriter writer=new OBJWriter((TriangleMesh) ((TexturedMesh) svg3DMesh.getMeshFromLetter("")).getMesh(), "svg");
writer.setMaterialColor(Color.RED);
writer.exportMesh();
它将生成 svg.obj 和 svg.mtl。
我正在尝试使用 javafx 将 .svg 文件转换为 3d(.obj 文件)。
我可以将 Shape - Cylinder、Box 等图元转换为 Mesh。是否可以转换 SVGPath 以转换为任何特定的网格。
开源库 FXyz has exactly what you are looking for: a SVG3DMesh
class 给定 2D SVGPath
(或包含其内容的字符串)将 return 3D TriangleMesh,挤压 2D 形状到一定高度。
稍后您可以将该网格导出到 obj 文件。
这是一段说明如何使用它的代码片段:
SVG3DMesh svg3DMesh = new SVG3DMesh("M40,60 C42,48 44,30 25,32", 10);
您可以显示网格:
svg3DMesh.setDrawMode(DrawMode.LINE);
svg3DMesh.setCullFace(CullFace.NONE);
或者用你想要的颜色显示一个实体 3D 对象:
svg3DMesh.setTextureModeNone(Color.RED);
用于将网格导出到 obj:
OBJWriter writer=new OBJWriter((TriangleMesh) ((TexturedMesh) svg3DMesh.getMeshFromLetter("")).getMesh(), "svg");
writer.setMaterialColor(Color.RED);
writer.exportMesh();
它将生成 svg.obj 和 svg.mtl。