Cairo Rotate Text: Transformation Matrix

0

link

Ho usato la libreria grafica vettoriale di Cairo per alcuni lavori, e non riesco a capire alcune parti:

Qual è il valore predefinito della matrice di trasformazione?

Quando ho bisogno della matrice di trasformazione comunque?

Supponiamo che non voglia ruotare il testo, avrò ancora bisogno di impostarlo, sarà ancora impostato?

    
posta potato man 18.06.2012 - 16:53
fonte

2 risposte

4

Per prima cosa, guarda la pagina di Wikipedia su matrici di trasformazione . Questo dovrebbe aiutare con la terminologia. Successivamente, capisci che ci sono due matrici coinvolte in un dato momento.

  1. La matrice "primo"
  2. La matrice "elemento"

La matrice primaria di solito inizia come un gruppo di zeri e uno:

[0 0 0]
[0 0 0]
[0 0 1]

Questo significa non fare nulla. Successivamente viene determinata la matrice dell'articolo. Una volta che è il momento di iniziare a posizionare le cose sul dispositivo, allora queste due matrici sono combinate con una trasformazione affine .

Questa trasformazione ti dà un punto fuori dalla posizione di partenza per disegnare il tuo oggetto, con qualsiasi ridimensionamento o rotazione appropriati.

Poiché la matrice primaria viene utilizzata su tutti gli elementi, possiamo regolarla per avere un effetto universale. Diciamo che vogliamo spostare tutto "lasciato" 50 punti. Sei fortunato perché non dovresti impostare manualmente la matrice per farlo, basta chiamare cairo_translate(cr, -50, 0) o qualcosa di simile.

Ora ogni elemento nuovo sarà modificato.

    
risposta data 18.06.2012 - 18:04
fonte
0

Per quanto posso dire dalla documentazione, hai una struttura "Cairo_t", questa "Cairo T" è ciò a cui le trasformazioni vengono inserite. Ogni "Cairo Matrix" è una "Transformation Matrix" indipendentemente dal fatto che "stia facendo" o meno al testo. La struttura iniziale non ha valori, è solo un blocco di memoria assegnato a un dispositivo di rendering.

Per fare in modo che tutto funzioni e quindi passare le modifiche al dispositivo di rendering, devi eseguire azioni sulla struttura assegnandogli delle trasformazioni. Queste trasformazioni includono ottenere e impostare matrici e trasformarle.

Il fatto che sia chiamato "Cairo Transformation Matrix" è dovuto al fatto che può essere trasformato non che lo sarà. Sebbene si possa sostenere che tutte le azioni sulla struttura in questione sono trasformazioni.

    
risposta data 18.06.2012 - 17:14
fonte

Leggi altre domande sui tag