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

在javafx中是否可以将SVGPath转换为Mesh,svg,javafx,mesh,.obj,svg-path,Svg,Javafx,Mesh,.obj,Svg Path,我正在尝试使用javafx将.svg文件转换为3d(.obj文件) 我可以将形状-圆柱体、长方体等基本体转换为网格。是否可以将SVGPath转换为任何特定网格。开源库完全符合您的要求:给定2DSVGPath(或包含其内容的字符串)的类将返回3D三角形网格,将2D形状拉伸到特定高度 稍后,可以将该网格导出为obj文件 这是如何使用它的代码片段: SVG3DMesh svg3DMesh = new SVG3DMesh("M40,60 C42,48 44,30 25,32", 10); 可以显示网

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

我可以将形状-圆柱体、长方体等基本体转换为网格。是否可以将SVGPath转换为任何特定网格。

开源库完全符合您的要求:给定2D
SVGPath(或包含其内容的字符串)的类将返回3D三角形网格,将2D形状拉伸到特定高度

稍后,可以将该网格导出为obj文件

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

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

可以显示网格:

svg3DMesh.setDrawMode(DrawMode.LINE);
svg3DMesh.setCullFace(CullFace.NONE);
或使用所需颜色显示三维实体对象:

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。

Pereda,非常感谢您的评论。这将真正帮助我理解转换背后的过程。@José也可以这样创建平面(非拉伸)网格吗?@mipa是的,事实上,这是3D网格生成的第一部分:2D闭合路径使用Poly2Tri生成2D网格。您需要添加一些API以使该网格脱离SVG3DMesh…@José如果您没有明确指定高度,或者如果由于向后兼容性问题无法指定高度,如果您指定负高度,这难道不是合理的默认行为吗?@mipa这是一个3D库。。。因此,它可以生成完整的3D对象。但是它也可以扩展为返回2D网格,只需要API在生成网格后就可以得到它们。