1

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

我可以将形状 - 圆柱体、盒子等基元转换为网格。是否可以将 SVGPath 转换为任何特定的 Mesh。

4

1 回答 1

1

开源库FXyz正是您正在寻找的:一个SVG3DMesh给定 2D SVGPath(或带有其内容的字符串)的类将返回一个 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。

于 2016-11-09T11:14:16.630 回答