是否可以在javafx中将SVGPath转换为Mesh

时间:2016-11-09 08:54:36

标签: svg javafx mesh .obj svg-path

我正在尝试使用javafx将.svg文件转换为3d(.obj文件)。

我能够将Shape - Cylinder,Box等原语转换为Mesh。是否可以转换SVGPath以转换为任何特定的网格。

1 个答案:

答案 0 :(得分:0)

开源库FXyz正是您所寻找的:给定2D SVGPath(或带有内容的字符串)的SVG3DMesh类将返回3D TriangleMesh,将2D形状挤压到一定高度。

稍后您可以将该网格导出到obj文件。

这是一个如何使用它的代码片段:

SVG3DMesh svg3DMesh = new SVG3DMesh("M40,60 C42,48 44,30 25,32", 10);

SVG3DMesh

您可以显示网格:

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。