Die Open-Source-Bibliothek FXyz hat genau das, was Sie suchen,: eine SVG3DMesh
Klasse, die einen 2D-SVGPath
(oder einen String mit seinem Inhalt) gegeben werden einen 3D-TriangleMesh, Extrudieren die 2D-Form zu einer bestimmten Höhe zurück.
Später können Sie dieses Netz in eine obj-Datei exportieren.
Dies ist ein Code-Schnipsel, wie Sie es verwenden können:
SVG3DMesh svg3DMesh = new SVG3DMesh("M40,60 C42,48 44,30 25,32", 10);
Sie das Netz zeigen:
svg3DMesh.setDrawMode(DrawMode.LINE);
svg3DMesh.setCullFace(CullFace.NONE);
oder zeigen ein solides 3D-Objekt mit der Farbe Sie möchten:
svg3DMesh.setTextureModeNone(Color.RED);
Für das Netz zu obj exportieren:
OBJWriter writer=new OBJWriter((TriangleMesh) ((TexturedMesh) svg3DMesh.getMeshFromLetter("")).getMesh(), "svg");
writer.setMaterialColor(Color.RED);
writer.exportMesh();
wird es svg.obj und svg.mtl erzeugen.
Pereda, Vielen Dank für Ihre Kommentare. Dies wird mir wirklich helfen, den Prozess hinter der Konvertierung zu verstehen. – Sharan
@ José Ist es auch möglich, ein flaches (nicht extrudiertes) Netz auf diese Weise zu erstellen? – mipa
@mipa Ja, das ist der erste Teil davon, wie das 3D-Netz erzeugt wird: Der 2D-geschlossene Pfad verwendet Poly2Tri, um ein 2D-Netz zu erzeugen. Sie müssen eine API hinzufügen, um das Mesh aus SVG3DMesh zu entfernen ... –