SVG hatte ich als Grundidee auch schon, TPath soll ja da schon ein bischen was können, eine meiner Konturen konnte ich damit anzeigen, nur das mit dem Nullpunkt war noch nicht so doll.
Was genau meinst du mit Nullpunkt?
Dann habe ich mal ein anderes Werkzeug nach SVG konvertiert, das kann TPath aber wohl nicht ab:
Code:
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<polygon class="fil0 str0" points="1.6,309.5 1.6,284.5 -1.6,284.5 -1.6,309.5 "/>
<polygon class="fil0 str0" points="-8.8,284.5 -5.6,284.5 -5.6,309.5 -8.8,309.5 "/>
<polygon class="fil0 str0" points="5.6,309.5 5.6,284.5 8.8,284.5 8.8,309.5 "/>
</g>
Was genau scheitert da denn? Bei einem
<polygon>
-Tag kannst du einfach den Inhalt von
points
nehmen, ein
M
davor setzen und ein
z
ans Ende und dann so tun, als wäre das das
d
-Attribut eines
<path>
-Tags.
Delphi-Quellcode:
if XML.CurrentTag = '
polygon'
then
begin
if XML.GetAttribute('
points', d)
then
DrawPoly(Context, '
M' + d + '
Z');
end
Bei Polyline dasselbe nur ohne
z
.
Ich hab mal 2017 einen
relativ kompletten SVG-Renderer geschrieben, der SVG Tiny in
GDI-Calls umsetzt. Bringt dir also erstmal nichts. Wenn ich mir den im vorherigen Thread verlinkten
DP-EN-Thread ansehe, ist mein Path-Dekoder (
DrawPoly
im vorherigen Code-Block) dem von TPath zwar überlegen, aber sehr ähnlich. Fehlende Features könnte man also auch ergänzen. Dein obiger Code ist übrigens nicht SVG Tiny, dessen größter Unterschied zu SVG ist, dass es kein
id
und
class
kennt.