Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-01-2012, 14:21   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 29
SVG-Pfad sampeln

Hallo,

Ich habe in meinem Programm einen SVG-Pfad den ich gerne mithilfe von Bitmaps nachzeichnen würde.

Bsp.:

Das Bild im Anhang ist ein SVG-Pfad, bei dem ein StrokeDashArray eingestellt ist. D.h. der wird gepunktelt gezeichnet. Ich würde jetzt gerne die X/Y-Koordinaten von jedem Punkt herauskriegen damit ich an diesen Positionen ein kleines Bild platzieren kann. Der SVG-Pfad liegt als String vor. Gibt es irgendeine Möglichkeit soetwas mit Bordmitteln zu bewerkstelligen oder irgendeine SVG-Bibliothek die dazu in der Lage ist?

Wäre toll wenn mir jemand helfen könnte.
Angehängte Grafiken
Dateityp: png Path Dashing.PNG (12,0 KB, 6x aufgerufen)
Lector ist offline   Mit Zitat antworten
Alt 18-01-2012, 20:13   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
ich bin nicht mehr so ganz in SVG drin, aber imo haben die Punkte keine bestimmte Position, die dürften bei jedem rendern, abhängig vom zoom anders positioniert sein.
eine Möglichkeit wäre es, den Pfad zu parsen, und abzulaufen, und dann alle x-pixel Strecke den Punkt berechnen.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 18-01-2012, 20:34   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 29
Hallo,

Vielleicht habe ich mich etwas falsch ausgedrückt. Was ich möchte ist abhängig von einem bestimmten Abstand (z.B. 10 Pixel) am Pfad entlangwandern und dort dann entsprechend eine Bitmap platzieren, sozusagen den Pfad mit Bildern nachmalen.

Das mit dem selbst parsen wird denke ich nicht so einfach werden da ich die ganzen Pfad-Segmente (Linie, Kreissegment, Bezierkurve) selbst implementieren müsste. Den Abstand in dem ich die Punkte ermittle soll auf jeden fall immer entlang des Pfades gleich sein. Einfach auf die X-Koordinate 10 draufzuzählen wird nicht funktionieren da dies nur bei horizontalen Linien gehen wird.
Lector ist offline   Mit Zitat antworten
Alt 18-01-2012, 21:48   #4 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
Einfach auf die X-Koordinate 10 draufzuzählen wird nicht funktionieren da dies nur bei horizontalen Linien gehen wird.
schon klar, mit x-pixel meinte ich auch eher sowas wie "einen unbestimmten Abstand".

Zitat:
Das mit dem selbst parsen wird denke ich nicht so einfach werden da ich die ganzen Pfad-Segmente (Linie, Kreissegment, Bezierkurve) selbst implementieren müsste
nun ja, du müsstest auf jeden fall erstmal den String zerlegen und interpretieren. (hatte ich hier schonmal gemacht)
und die einzelnen Primitiven zu implementieren sollte auch nicht soo schwer sein.

eine gerade Linie zu unterteilen kannst du !?
für eine Quadratische Bezier-kurve, kannst du hierauf aufbauen. die Funktion length läuft die Kurve im Abstand von 1px ab, und zählt die Schritte. damit kannst du quasi ein "karte" anlegen, bspw 5px vom Start sind bei xy-Position
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 19-01-2012, 08:29   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 29
Eine gerade Linie sollte kein Problem sein. Kreissegmente sollte ich auch noch hinbekommen. Das Problem sind eher die kubischen / quadratischen Bezierkurven. Und was mache ich bei den Übergängen? Angenommen ein Liniensegment endet u. jetzt geht es mit einer Bezierkurve weiter? Dann müsste ich ja die Restlänge der Linie, seit der letzten ermittelten Koordinate noch mitberechnen. Das werde ich zwar auch irgendwie hinkriegen aber um ehrlich zu sein hätte ich mir das etwas weniger aufwändig vorgestellt. Aber wenn es dafür keine fertige Bibliothek gibt wird mir wohl nichts anderes übrig bleiben...
Lector ist offline   Mit Zitat antworten
Alt 19-01-2012, 09:52   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
genau genommen geht es garnicht. ausser gerade und kreis kann man keine länge direkt berechnen (ok parabel == quadratisches bezier geht, aber nicht die umkehrung: wo endet welche länge)
u.a.
H.G.Seib
-> Zeichnen (ZIP laden)
Bezier gleichmässig teilen - in gleichlange Stücke teilen

deshalb:
zeichne den linienzug 'normal' und gib ihm eine füllung.

internetsuche:
AS3 dotted line
AS3 dashed line
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-01-2012 um 10:12 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS3] relativer Pfad vs. absoluter Pfad yuppy Flash Einsteiger 5 20-01-2010 16:16
PS: Importierter Pfad als Pfad? Samuel Bitmap-Programme 8 23-03-2005 20:18
Absoluter Pfad funktioniert aber relativer Pfad nicht?! ramsch_ramona Flash MX 2004 2 31-10-2004 12:16
[snippet] relativer pfad -> absoluter pfad rechtschreibfan PHP und MySQL 1 20-01-2004 12:12


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele