XML / Matzrizenrechnung

creep3007

Mitglied
Hallo zusammen,
ich hoffe ich schreibe im richtigen Forum, wenn nein dann verschiebt es bitte.

Also ich arbeite im Moment viel mit den IDML-XML-Files.
Nun möchte ich ein Bild(100x100) auf der Position 100x 100y Drehen (rotieren).

Das XML Attribut dazu sieht folgendermaßen aus:

HTML:
<Rectangle ItemTransform="1 0 0 1 100 100" />
Das heißt nun, ich habe:
Skallierung X = 1
Scheerung X = 0
Scheerung Y = 0
Skallierung Y = 1
Translation X = 100
Translation Y = 100

nun möchte ich den Vektor folgendermaßen ändern, und somit das Bild rotieren lassen(um 45° mit dem Uhrzeigersinn.

Um dies zu realisieren muss ich folgendes Rechnen:
ItemTransform="cos(alpha) -sin(alpha) sin(alpha) cos(alpha) tx ty"

das ergibt: ItemTransform="0.707106781 -0.707106781 0.707106781 0.707106781 100 100".

Problem an der Sache ist nicht die Rotation des ganzen, sondern, dass er das Bild nicht auf der vorherigen Position belässt, sondern an eine neue Position stellt.
Was mache ich falsch?
Bzw. kann mir jemand erklären ob und ggf. wie ich die Translation diesbezüglich neu berechnen muss bzw. kann.

Edit:
Achso ja, total vergessen.
In dem IDML Guide bekomme ich den ratschlag das ganze via Matrizenrechnung zu realisieren.

Der Vektor:
[a b c d e f] immer!! 6 Stellig
Die Matrizen(3x3) sehen dann folgendermaßen aus:
|a b 0|
|c d 0|
|e f 1|

|cos(a) sin(a) 0|
|-sin(a) cos(a) 0|
|e f 1|
IDML Specification hat gesagt.:
Rotations are produced by the matrix [cos(?) sin(?) -sin(?) cos(?) 0 0], which has the
effect of rotating the object counterclockwise by the angle ?, relative to the pasteboard.
Skewing is specified by the matrix [1 tan(?) tan(?) 1 0 0], which skews the x (horizontal)
axis of the object by the angle ? and the y (vertical) axis of the object by the angle ?, relative to
the x and y axis of the pasteboard.
Transformations are applied in the following order: scale, shear, rotate, translate

Aber wie kann ich denn dort nun die Translation bestimmen berechnen****

Vielen Dank für die Hilfe,

Alex
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück