tierisches XML Problem, mit späterer PHP Fragestellung.

creep3007

Mitglied
Hallo Saftmeister und alle anderen SuperBrains hier,
Hallo zusammen,
ich Poste das auch mal hier, weil ich höchstwahrscheinlich daraufhin, PHP-bezogene Fragen habe!

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 das Bild rotieren lassen(um 45° gegen den Uhrzeigersinn).

Um dies zu realisieren muss ich folgendes Rechnen:
ItemTransform="cos(?) sin(?) -sin(?) cos(?) 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
 
Zurück