Ok, also werde ich versuchen, so beschreibend wie möglich zu sein.Konvertieren von Pixeln in Bezier-Kurven in Actionscript 3
Ich arbeite an einem Projekt für einen Client, der eine Jibjab-Maskierungsfunktion eines hochgeladenen Bildes erfordert.
Ich möchte in der Lage sein, ein Datenbank-speicherbares Objekt zu generieren, das Anker/Steuerpositionen einer Bézier-Form enthält, so dass ich es später herausziehen und das Objekt erneut maskieren kann. Das alles ist ziemlich einfach zu machen, abgesehen von einem Haken: Ich muss das Bezier-Objekt aus einer benutzerdefinierten Zeichnung erstellen.
Bisher ist hier, wie ich denke, der Prozess geht:
auf die Maus nach unten, legen Sie ein neues Sprite, beginFill und moveTo Mausposition.
bei Mausbewegung, Linie zu einer XY-Koordinate.
auf Maus hoch, endFill.
Das alles funktioniert einfach großartig. Ich könnte die Informationen hier einfach speichern, aber ich würde mir ein GIGANTIC-Objekt mit vielen ziemlich nutzlosen x/y-Koordinaten ansehen und keine Möglichkeit, Feinabstimmungen vorzunehmen, ohne die Griffe auf jedem Pixel zu setzen. (Ich auch kann der Benutzer einen Stift-Werkzeug geben ...)
Hier ist, was ich so weit wie Bezierkurve Berechnung Denken geht:
1: Finde heraus, wenn ich eine neue Kurve beginnen müssen , und verfolgen Sie die xy des Pixels in diesem Intervall. Ich stelle mir vor, dass dies nur eine Pixelzahl ist, vielleicht nur eine Zählvariable pro Mausbewegung inkrementieren und eine neue alle x Pixel machen. Das Problem hier ist, einige Kurven wären ungenau, und andere sind unnötig, aber ich brauche wirklich nur einen allgemeinen Bereich, nicht eine exakte Darstellung, so könnte es funktionieren. Ich wäre jedoch glücklicher mit etwas etwas schlauer.
2: nehmen Sie jedes neue x/y, speichern Sie es als Anker, und finden Sie heraus, wohin ein Steuerelement gehen würde, um die Linienkurve zwischen diesem und dem letzten Anker zu machen. Hier werde ich wirklich aufgehängt. Ich bin mir sicher, dass jemand das in Flash gemacht hat, aber keine Menge Googeln kann mir helfen mit dem Weg dies zu erledigen. Ich habe viel skizziert, und mit wenig Mathe kann ich meine Gedanken umhüllen, aber ich finde keine Möglichkeit, Pixel in Beziers umzuwandeln.
Ist das möglich? Alles, was ich wirklich brauche, ist etwas, das der gleichen Form nahe kommt. Ich denke darüber nach, vielleicht nur Anker zu platzieren, wenn der Winkel des nächsten Pixels 180 Grad in Bezug auf die aktuelle Linie oder so ist, und nur die Kante des Bogens zwischen diesen Änderungen zu greifen, aber egal wie sehr ich es versuche, ich kann nicht herausfinden, wie man das funktioniert!
Vielen Dank für Ihre Hilfe, ich werde sicher meine Fortschritte hier posten, wie ich gehen, ich denke, das ist in vielen Anwendungen wirklich nützlich sein könnte, solange es ...
Jesse
tatsächlich machbar ist