So erhalten Sie den Pfad von Bezier-Kurven mit Koordinaten des Dezimalwerts in CorelDraw

Ich muss den Pfad eines Buchstabens einer Schriftart erhalten, der in Kurven umgewandelt wird. Ich habe eine 512 x 512 px große Leinwand mit einem 350 x 350 px großen Buchstaben, zum Beispiel "R" in der Mitte. Ich muss irgendwie Koordinaten von Punkten von Bezier-Kurven exportieren.

Ich habe also diese Leinwand mit Koordinaten von 0,0 bis 511.511 und einer Form darin. Aber wenn ich es als *.svg speichere stehen im Pfad zB (256.124 373.811 l-85.544 -46.3289 c-21.8516,33.0922 -34.017,54.9238).

Aber ich brauche Pixelkoordinaten im Dezimalformat und im Bereich von 0,0 bis 511.511.

Gibt es eine Möglichkeit, so einen Pfad zu bekommen?

Antworten (1)

Ich habe den Pfad bereits in .svg von CorelDraw dekodiert.

Erstens haben Corel und die meisten Grafikeditoren ein karthesisches Koordinatensystem (Punkt [0,0] befindet sich in der unteren linken Ecke). Auf der anderen Seite hat SVG ein anderes System mit Startpunkt in der oberen linken Ecke. Wenn ich also eine Leinwand mit einer Größe von 512 x 512 px habe und die Maus darauf platziere, sehe ich, dass die Punktkoordinaten zum Beispiel [128.312] im SVG-Pfad sind, es wird Punkt [128.200] sein. Siehe die Bilder unten.

Karthesisches Koordinatensystem SVG

Als nächstes geht der Weg weiter L-89,8385 -46,3289 C-22,9477,33,0922 -35,7249,54,9238 -38,4096,65,4971. Dies bedeutet Linie zu Punkt, die auf der x-Achse um 89,84 px und auf der y-Achse um 46,33 px kleiner ist. Sie ziehen diese Zahlen also im Grunde von den Koordinaten des aktuellen letzten Punkts ab.

Schließlich C mittlere Kurve zu, genau kubische Beziér-Kurve. Das ist ziemlich seltsam. -22,9477,33,0922 bedeutet -22,95 px auf der x-Achse und +33,09 px auf der y-Achse für Kontrollpunkt 1. Wie bereits erwähnt, wird er vom letzten Punkt auf der letzten Kurve berechnet. Weiter -35,7249,54,9238 wird für Kontrollpunkt 2 ebenfalls aus dem letzten Punkt der letzten Kurve berechnet, NICHT aus Kontrollpunkt 1!! Und schließlich gehört -38,4096,65,4971 zum Endpunkt der aktuellen Kurve. Vielleicht ist Ihnen aufgefallen, dass der Startpunkt der Kurve nicht erwähnt wird. Startpunkt ist natürlich Endpunkt der letzten Kurve/Linie/...

Bis zum Ende können Sie so etwas im SVG-Pfad -1,95237,7,5638 -6,18545,13,9241 -12,7772,19,0808 -6,59057,5,07167 -11,3103 sehen ,7,65002. Dies sind die nächsten Kurven. Es gibt keinen Buchstaben wie L, C, M oder einen anderen, aber das sind Kurven, weil es bis zu diesem Punkt kein C und keinen anderen Buchstaben gab. Dann müssen Sie 3 Zahlen wie -1,95237,7,5638 erhalten, um den nächsten Kontrollpunkt 1, Kontrollpunkt 2 und Endpunkt zu erhalten.

Hoffe, das wird jemandem helfen.