tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1454
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    creep3007 creep3007 ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Ort
    Saarbruecken, Germany
    Beiträge
    26
    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-Code:
    <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|
    Zitat Zitat von IDML Specification
    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
    Geändert von creep3007 (21.09.11 um 11:17 Uhr) Grund: Matrizen eingefügt
     

  2. #2
    creep3007 creep3007 ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Ort
    Saarbruecken, Germany
    Beiträge
    26
    Hab ich meine Frage zu undeutlich geschrieben?
    Sind noch Fragen offen?
    Weiß überhaupt niemand eine Lösung?