In den letzten zwei Tagen habe ich effektiv herausgefunden, wie man Raphael Elements nicht dreht.Raphael SVG VML Implementieren Multi Pivot Punkte für Rotation
Grundsätzlich versuche ich, mehrere Drehpunkte auf Element zu implementieren, um es mit der Maus zu drehen.
Wenn ein Benutzer in den Rotationsmodus wechselt, werden 5 Drehpunkte erstellt. Eine für jede Ecke der Bounding Box und eine in der Mitte der Box.
Wenn die Maus gedrückt ist und sich bewegt, ist es einfach genug, sich mit Raphael elements.rotate(degrees, x, y) um den Drehpunkt zu drehen und die Grade basierend auf den Mauspositionen und atan2 zum Drehpunkt zu berechnen.
Das Problem tritt auf, nachdem ich das Element, Bbox und die anderen Pivots gedreht habe. Dort ist x, y-Position im selben nur dort Ansichtsfenster anders. In einem SVG-fähigen Browser kann ich neue Pivot-Punkte basierend auf matrixTransformation and getCTM erstellen. Nach dem Erstellen des ersten Satzes neuer Pivots wird jedoch jede Drehung nach den Pivots aufgrund von Rundungsfehlern weiter von der transformierten Bbox entfernt.
Das ist oben nicht einmal eine Option in IE da ist VML basiert und kann nicht für die Transformation berücksichtigen.
ist die einzig wirksame Weise Element Rotation zu implementieren wird durch Verwendung rotate absolute oder Drehen um die Mittel des Begrenzungskastens?
Ist es möglich, an dem alle Multis erstellen Drehpunkte für ein Objekt und sie nach mouseup aktualisiert in den Ecken und in der Mitte der transformierten bbox zu bleiben?
UPDATE: ich versucht habe jQuery zu verwenden versetzt den Dreh zu finden, nachdem es gedreht wurde, und dass die Verwendung Standort als Drehpunkt versetzt.
Demo site ... http://weather.speedfetishperformance.com/dev/raphael/rotation.html
Das sieht für mich so aus, als könnte es leicht reparierbar sein - das heißt, ich denke, dass Sie näher an einer richtigen Lösung sind als Sie denken ... könnten Sie Ihren Code irgendwo posten oder hochladen? – Zevan
Bearbeitet, um Code zu zeigen ... dieser Weg ist natürlich nicht freundlich IE –