Loading
Note di Apprendimento
Study Reminders
Support
Text Version

Matrice Rappresentazione e Composizione delle trasformazioni

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Ciao e benvenuto a lezione numero 11 nella grafica del corso Computer. Stiamo discutendo diverse fasi della pipeline grafica.
Così, nell'ultima lezione, siamo stati introdotti all'idea di base cosa intendiamo per trasformazione modellistica e abbiamo introdotto anche 4 trasformazioni di base utilizzando le quali eseguiamo qualsiasi tipo di trasformazione modellistica. Ora, oggi, impareremo la rappresentazione. Così, nella lezione precedente abbiamo parlato di come rappresentare le trasformazioni, oggi impareremo un modo alternativo di rappresentare quelle trasformazioni.
Quello che abbiamo visto nella lezione precedente come possiamo rappresentare la trasformazione. Se potete riscuotere, ci sono 4 trasformazioni di base; traduzione, rotazione, scaling e arredamento. Utilizzando queste 4 trasformazioni di base, possiamo eseguire qualsiasi trasformazione geometrica su qualsiasi oggetto, applicando qualsiasi di queste 4 trasformazioni o applicando queste trasformazioni in sequenza una dopo l'altra più volte e così via.
E abbiamo discusso queste trasformazioni in termini di equazioni. Per la traduzione abbiamo discusso il rapporto tra il punto originale e il punto trasformato che è punto dopo la traduzione come mostrato in queste due equazioni. Per la rotazione, analogamente, abbiamo stabilito il rapporto tra il punto originale e il punto trasformato utilizzando queste due equazioni.
Stesso vale per il cuoio capellato, di nuovo due equazioni; una ciascuna per le due coordinate e la guaina. In queste equazioni a partire dalla traduzione abbiamo usato alcuni parametri tx, ty o la quantità di traduzioni lungo x e y direction. Allo stesso modo, il gioco è l'angolo di rotazione in queste equazioni di rotazione, sx, sy sono i fattori di scala lungo rispettivamente le direzioni x e y. E shx, timido sono i fattori di taglio lungo rispettivamente le direzioni x e y.
Così, come abbiamo dimostrato possiamo effettivamente utilizzare queste equazioni per rappresentare le trasformazioni. Ora, come abbiamo discusso nelle lezioni introduttive, ci sono pacchetti grafici, ci sono librerie grafiche sviluppate per rendere più semplice la vita di uno sviluppatore in modo che uno sviluppatore non abbia sempre bisogno di implementare i singoli componenti di una pipeline grafica per sviluppare un prodotto. Per costruire un pacchetto o per sviluppare funzioni di biblioteca, ciò di cui abbiamo bisogno, abbiamo bisogno di modularità; abbiamo bisogno di modalità standard per definire input e output per ogni funzione.
Purtroppo, l'equazione basata rappresentazioni di trasformazioni non supporta tale modularità. Quindi, quando cerchiamo di rappresentare trasformazioni utilizzando equazioni, è difficile modularizzare il gasdotto complessivo in termini di input e output standardizzati e funzioni standardizzate, perché nelle successive fasi della pipeline vedremo altre trasformazioni e ognuna di quelle trasformazioni avrà diverse equazioni rappresentate in forme e formati diversi.
Quindi, allora sarà molto difficile combinare queste diverse fasi e implementare un pacchetto o una libreria, in cui l'utente non si preoccuperà della lavorazione interna del pacchetto. Per mantenere questa modularità, le rappresentazioni a base di equazione non sono adatte. Richiediamo una qualche rappresentazione alternativa e una tale rappresentazione alternativa, che sostiene la nostra necessità di uno sviluppo modulare di sistema basato su modulare è la rappresentazione di matrice. Così, possiamo effettivamente rappresentare le trasformazioni sotto forma di matrici. E più avanti vedremo che anche altre fasi della pipeline possono essere implementate rappresentando le operazioni di base sotto forma di matrici.
Quindi, ci sarà una certa sinergia tra diverse fasi e sarà più facile implementare quelle fasi sotto forma di pacchetti, funzioni o librerie predefinite.
Così, come queste matrici sembrano lasciarci prendere, per esempio, la trasformazione in scala. Ora, se vogliamo rappresentare scaling sotto forma di matrici, cosa faremo? Creeremo una matrice in questo modulo, una matrice 2 × 2 e i fattori di scala saranno posizionati lungo la diagonale come qui mostrato. Ora, come applicare questa trasformazione allora? Supponiamo che ci venga dato un punto P (x, y) e vogliamo trasformarlo per scaling. Quindi, cosa faremo? Possiamo rappresentare questo punto come un vettore di colonna mostrato qui e poi moltiplicare quella matrice di trasformazione con il vettore della colonna. Questo è il prodotto dot delle matrici per ottenere i nuovi punti. Quindi essenzialmente, dobbiamo avere la moltiplicazione di matrice. E questa forma di rappresentare le operazioni di trasformazione in realtà è ciò che rende più facile implementare in modo modulare.
Così, abbiamo rappresentato scaling in termini di matrice 2 × 2. Possiamo fare lo stesso con la rotazione; possiamo avere una matrice da 2 × 2 per rappresentare la trasformazione di rotazione, oltre che lo shearing. Così, poi, possiamo avere 2 × 2 matrici per le 3 operazioni; rotazione, scaling e rasatura. Purtroppo 2 × 2 matrici non servirebbero al nostro scopo. Perché, non importa quanto ci proviamo, non saremo in grado di implementare o rappresentare la trasformazione della traduzione utilizzando una matrice 2 × 2 a differenza delle altre 3 trasformazioni di base che non è possibile. Così, per evitare questo problema, per affrontare questo problema, andiamo per un altro tipo di rappresentazione di matrice, che si chiama rappresentazione in un sistema di coordinate omogenee. Ora, a cosa si riferisce questa rappresentazione delle matrici a base di sistema di coordinate omogenee?
Quindi, essenzialmente si tratta di una tecnica di rappresentazione astratta che significa che questo sistema di coordinate in realtà non esiste nel senso fisico; è puramente matematico, puramente astratto. Quindi, potrebbe esserci fisicamente un punto dimensionale 2 che trasformiamo in un sistema di coordinate astratte dimensionale 3 chiamato sistema di coordinate omogeneo. Così, ogni punto 2D rappresentato da queste 2 coordinate x e y può essere rappresentato con un vettore di 3 elementi come mostrato qui, ognuno di questi elementi corrisponde alle coordinate nel sistema di coordinate omogenee. Così, stiamo trasformando un punto 2D in uno spazio 3D in questo caso, lo spazio 3D è lo spazio di coordinate omogenee astratto e ogni punto è rappresentato con un vettore elemento da 3.
Allora, qual è il rapporto tra queste 2 rappresentazioni? Quindi, abbiamo un punto 2D rappresentato dalle sue 2 coordinate x e y. E ora, l'abbiamo trasformata o presentiamo lo stesso punto in uno spazio dimensionale 3 chiamato sistema di coordinate omogeneo dove rappresentiamo lo stesso punto con 3 coordinate xh, yh e h. Allora, quali sono le relazioni tra queste quantità?
Ora, la coordinata originale x è uguale alla coordinata x nel sistema di coordinate omogenee diviso per h, che è il terzo valore di coordinate e la coordinata originale y è uguale alla y coordinata nel sistema di coordinate omogenee diviso di nuovo l'h, h si chiama fattore omogeneo ed è importante notare che può assumere qualsiasi valore non zero, deve essere valore non zero.
Ci sono alcune cose in più che dovremmo notare qui, visto che, stiamo considerando h per essere un fattore omogeneo. Quindi, se h è 0, allora consideriamo quel punto ad essere all'infinito nel sistema di coordinate omogenee, e non esiste un concetto di origine dal 0 × 0 non è definito così, di solito non consentiamo il punto di origine dove tutto è 0. Quindi, queste due cose che dovremmo ricordare mentre si occupava di sistema di coordinate omogenee, prima cosa è se h diventa 0, poi consideriamo quel punto ad essere all'infinito e non esiste un concetto di origine nel sistema di coordinate omogenee.
Ora, cerchiamo di capire come possiamo convertire queste matrici di trasformazione geometrica nelle matrici nel sistema di coordinate omogenee. Così, prima avevamo questo 2 da 2 matrici che rappresentano le 3 trasformazioni di base su 4; rotazione, scaling e rasatura. Come abbiamo già accennato, quindi questa 2 × 2 matrici trasformerà in 3 × 3 matrici nel sistema di coordinate omogenee. Infatti, in generale se esiste una matrice di trasformazione matrice N × N, viene convertita in matrici (N + 1) × (N + 1).
Ora, se rappresentiamo una matrice di trasformazione, una matrice di trasformazione 2D che utilizza una matrice 3 × 3, allora saremo in grado di rappresentare anche la traduzione così il nostro problema precedente sarà risolto, prima non siamo stati in grado di rappresentare la traduzione usando una matrice 2 × 2, sebbene siate in grado di rappresentare le altre 3 trasformazioni di base. Ora, con rappresentazione omogenea, saremo in grado di evitarlo, saremo in grado di rappresentare tutta la trasformazione base 4 utilizzando 3 × 3 matrici.
Un'altra cosa che dovremmo tenere a mente è che, quando si parla di trasformazioni geometriche, consideriamo sempre h ad essere 1. Quindi, il valore h sarà sempre 1. Ci sono però altre trasformazioni che incontreremo nelle nostre successive lezioni, dove h non è uguale a 1.
Ora, vediamo come le trasformazioni di base sono rappresentate utilizzando matrici di coordinate omogenee. Quindi, la traduzione che possiamo rappresentare usando queste matrici, la rotazione possiamo rappresentare usando queste matrici dove phi è l'angolo di rotazione, la scalatura può essere rappresentata utilizzando queste matrici e infine, la guaina può essere rappresentata utilizzando queste matrici. Ora, in caso di scaling, sx, sy rappresenta i fattori di scala lungo x e y direction, in caso di shx ricercatore e timido rappresentano rispettivamente i fattori di sterzo lungo x e y direction.
Così, qui potete vedere che siamo riusciti a presentare al presente tutte le trasformazioni, tutte le trasformazioni di base sotto forma di matrici, sebbene dobbiamo usare 3 × 3 matrici per rappresentare trasformazioni dimensionali da 2.
Da quando, stiamo utilizzando un sistema di coordinate omogenee, quindi, anche la nostra rappresentazione puntiforme cambia. Così, in precedenza avevamo questa rappresentazione per ogni punto, ora rappresenteremo ogni punto utilizzando un vettore di colonna elemento da 3 e le altre operazioni rimangono le stesse con una modifica minore. Così, prima applichiamo la moltiplicazione della matrice come prima di ottenere il nuovo punto che è P '= S.P. Ma, dopo questo, quello che dobbiamo fare è dividere qualunque cosa abbiamo ottenuto in P', i valori x e y per h per ottenere il valore originale, questa è la regola generale per rifarsi i punti effettivi.
Ma, in caso di trasformazione geometrica come abbiamo già accennato, h è sempre 1. Quindi, davvero non importa. Ma, altre trasformazioni vedranno nelle lezioni successive dove conta molto. Per ora quello che abbiamo discusso è quali sono le trasformazioni di base e come possiamo rappresentare quelle trasformazioni, e anche come possiamo usare quelle per trasformare un punto che sta eseguendo una moltiplicazione di matrice.
Ora, cerchiamo di capire il processo di composizione della Trasformazione. Quando richiediamo la composizione? Se dobbiamo eseguire trasformazioni che coinvolgono più di una trasformazione di base, allora dobbiamo combinarle insieme. Ora, la domanda è come combinarsi e in quale sequenza?
Così, quando stiamo eseguendo molteplici trasformazioni geometriche per costruire la scena del coordinamento mondiale, dobbiamo affrontare le problematiche di come eseguiamo queste molteplici trasformazioni insieme e quale dovrebbe essere la sequenza di trasformazioni da seguire.
Cerchiamo di capirlo in termini di esempio. Qui in questa figura, guarda la figura superiore qui. Vediamo un oggetto denotato dai vertici ABCD con la sua dimensione. Ora, la figura di fondo mostra una scena coordinata a livello mondiale in cui viene inserito qui lo stesso oggetto che viene utilizzato per definire una ciminiera che ci fa assumere la casa. Ora, qui potete vedere che il vertice originale A si è trasformato in A ', B si è trasformato in B', C si è trasformato in C e D si è trasformato a D'. E anche, la dimensione è cambiata.
Quindi, la dimensione precedente si è effettivamente ridotta lungo la direzione x, sebbene la dimensione lungo la direzione y sia rimasta la stessa. Allora, qui sono successe due cose come potete notare in questa figura, prima di tutto la sua dimensione è cambiata e in secondo luogo la sua posizione è cambiata. Così, prima stava avendo un vertice come origine, ora è collocato in un punto diverso. Quindi, sono necessarie due trasformazioni; una si scalda e l'altra è la traduzione, scalando per ridurre le dimensioni, la traduzione per riposizionarla nel mondo coordina la scena. Questo tanto possiamo capire dalla figura, ma come applicare concretamente queste trasformazioni che è la domanda a cui vogliamo rispondere in modo da ottenere i nuovi vertici. Quello che sappiamo? Sappiamo che per ottenere i nuovi vertici dobbiamo moltiplicare i vertici correnti con una matrice di trasformazione. Ma, qui non si tratta di una matrice di trasformazione di base, è una composizione di due matrici di trasformazione di base e dobbiamo esibirsi che come fare, come combinare le due matrici?
Facciamo passo dopo passo. Primo passo, dobbiamo determinare le matrici di base che significa determinare la quantità di traduzione e determinare i fattori di scaling. Da notare che l'oggetto è dimezzato di lunghezza mentre l'altezza è la stessa che significa lungo la direzione x che si è dimezzata ma lungo la direzione y è rimasta la stessa. Quindi, la matrice di scaling sarebbe sx dovrebbe essere la metà e la sy sarà 1 come mostrato in questa matrice di trasformazione per la scalatura.
Ora traduzione, la seconda trasformazione di base che richiediamo. Ora, qui il vertice D era l'origine come potete vedere qui, dove è stato trasferito? A D'. Ora, qual è la posizione vertex del punto trasformato che è (5, 5). Quindi, l'origine è stata riposizionata a (5, 5) che è sostanzialmente 5 unità di spostamento lungo entrambe le direzioni orizzontali e verticali. Quindi, poi tx uguale a 5 e pari a 5, quindi se utilizziamo questi valori nella matrice di trasformazione per la traduzione, allora otterremo questa matrice in questo caso corrente. Allora, prima abbiamo ottenuto la matrice di scaling ora, abbiamo ottenuto la matrice di traduzione ma la nostra domanda rimane come combinarle?
Ovvero la seconda composizione di passo delle matrici o ottenere la matrice composita. Quello che dobbiamo fare è moltiplicare le matrici di base in sequenza e questo sequenziamento è molto importante, seguiamo il diritto alla sequenza di sinistra che è una regola che seguiamo per formare la sequenza. Ora, cosa ci dice questa regola?
La prima trasformazione applicata sull'oggetto è la più giusta nella sequenza, la prossima trasformazione è la lista a sinistra di questa precedente trasformazione e così via, fino a raggiungere l'ultima trasformazione. Quindi, se applichiamo la prima trasformazione diciamo T1 sull'oggetto allora dovrebbe essere posizionato al massimo. Ora, supponiamo di richiedere un'altra trasformazione che sia 2, poi T2 arriverà sul lato sinistro di T1, se c'è un'altra necessità di trasformazione da applicare dicono T3 poi arriva a sinistra di T2 e così via fino a raggiungere la trasformazione finale dire Tn.
Questo è il diritto alla regola di sinistra; la prima trasformazione applicata sull'oggetto è sul lato più alto seguito da altre trasformazioni in sequenza fino al punto di sinistra dove posizioniamo l'ultima trasformazione applicata sull'oggetto.
Così, nel nostro caso, possiamo formarlo in questo modo, la prima trasformazione da applicare è la scalatura seguita dalla traduzione. Quindi, diritto di sinistra significa prima S, e sul suo lato sinistro sarà T così questi due avranno la moltiplicazione come mostrato da queste 2 matrici e il risultato sarà questa matrice. Ecco, questa è la nostra matrice composita per quella particolare trasformazione. Una volta che avremo la matrice composita dopo aver moltiplicato le matrici attuali con la matrice composita, otterremo i nuovi punti.
Così nel nostro caso, questo passo ci condurrà ai punti come qui mostrato, A 'può essere ricavato moltiplicando questa matrice composita con il corrispondente vertice in sistema di coordinate omogenee per ottenere questo vertice finale in sistema di coordinate omogenee e questo vale per B', C e D'.
Ora, l'ultima fase di corso, è quella di trasformarsi dalla rappresentazione omogenea all'effettiva rappresentazione che facciamo dividendo i valori x e y per il fattore omogeneo h. Ora h nel nostro caso, è il caso in cui ci occupiamo di trasformazione geometrica, è il 1. Quindi, i nostri punti di trasformazione finale o vertici dovrebbero essere ottenuti in questo modo, A 'otterremo dividendo i valori x e y per i fattori omogenei, e analogamente per B', C ' e D'.
Allora, cosa abbiamo fatto? Abbiamo individuato per la prima volta le trasformazioni di base. Questo è stato seguito formando la sequenza in modo da destra a sinistra cioè mettiamo la trasformazione che deve essere applicata sull'oggetto in un primo momento come la trasformazione più a destra, poi la trasformazione successiva da applicare sull'oggetto come la trasformazione lasciata alla trasformazione precedente e così via.
Poi moltiplichiamo queste matrici di trasformazione di base per ottenere la matrice di trasformazione composita. Poi, abbiamo moltiplicato i punti con questa matrice di trasformazione composita per ottenere i punti di trasformazione in sistema di coordinate omogenee. Infine, abbiamo diviso i valori x e y di questa rappresentazione omogenea coordinata dal fattore omogeneo per riottenere il punto trasformato originale.
Dobbiamo ricordare qui che la moltiplicazione della matrice non è commutativa. Quindi, la formazione della sequenza è molto importante. Così, prima abbiamo fatto traduzione moltiplicato per scalare seguendo il diritto di sinistra. Ora, se lo abbiamo fatto nell'altro modo che si scalda seguito dalla traduzione, ci porterà ad una matrice diversa mentre questo ci ha dato M, e dato che la moltiplicazione della matrice non è commutativa, quindi non possiamo dire M=M 'così reale Maglia M'. Quindi, se non creiamo correttamente la sequenza, allora il nostro risultato sarà sbagliato, potremmo non ottenere le matrici di trasformazione giuste.
Così, come decidere quale sequenza seguire. Così, prima abbiamo semplicemente detto che prima applichiamo scaling e poi seguiremo la traduzione, sulla base di ciò che abbiamo fatto quella decisione. Proviamo a capire ancora l'esempio dove abbiamo preso la decisione che la scaletta dovesse essere seguita dalla traduzione. Allora, cosa c'era nel Quando abbiamo discusso di scaling, abbiamo accennato una cosa che è durante la scalatura della posizione dell'oggetto cambia. Ora, se traduciamo in fretta e poi scala, allora la posizione vertex potrebbe essere cambiata perché scalare potrebbe portare a cambiare posizione. Tuttavia, se scampiamo in fretta e poi si traduce, poi comunque lo riposiamo nel posto giusto dove vogliamo. Quindi, non c'è alcuna possibilità di ulteriori cambiamenti di posizione. Quindi, chiaramente in questo caso, applichiamo per la prima volta scaling e le modifiche associate che avvengono sono belle che vengono seguite dalla traduzione. Se lo facciamo in quella sequenza, allora non abbiamo alcun problema in modo che sia stata la logica dietro ad andare per questa sequenza.
E in generale seguiamo questa logica in cui se ci richiedono molteplici trasformazioni di base da applicare, quindi teniamo la traduzione alla fine, l'ultima trasformazione perché scaling e shearing rischiano di cambiare la posizione così con la traduzione cerchiamo di compensare con questo tipicamente seguiamo questa regola di pollice. Esempio che indicava che questa sarebbe stata la sequenza?
Ora, una cosa va notata qui, quando abbiamo applicato la scaletta, l'abbiamo applicata davvero rispetto all'origine. Allora, l'origine è il punto fisso nell'esempio. Tuttavia, questo non è necessariamente vero. Possiamo avere qualsiasi punto fisso situato in qualsiasi coordinata in un sistema di coordinate. Quindi, in questi casi, cosa facciamo? Applichiamo l'approccio che abbiamo visto in precedenza nell'esempio, ma con una leggera modifica. Quindi, il nostro approccio quando stiamo considerando il punto fisso che non è l'origine è leggermente diverso, vediamo come è diverso.
Supponga che ci sia un punto fisso F e vogliamo scaldare rispetto a questo punto fisso. Ora, questo non è di origine, questo è situato in qualsiasi luogo arbitrario. Ora, per determinare la sequenza di trasformazione, assumiamo una sequenza di passi. Quindi, se la scaletta era rispetto all'origine allora non richiediamo altro che ci limitiamo, ma se non è rispetto all'origine, se è rispetto ad qualche altro punto fisso che non è l'origine allora cos' è quella sequenza? Così, prima traduciamo il punto fisso in origine che significa, facciamo l'importo della traduzione come tale Tx è -x e Ty è -y; che è la prima trasformazione. Poi eseguiamo scaling rispetto all'origine, questo è importante. Quindi, la nostra matrice di scaling è definita rispetto all'origine. Così, prima abbiamo portato o in modo concettuale portato il punto fisso in origine poi eseguire scaling e poi il punto fisso è tradotto tornando al suo posto originale, ora Tx diventa x e ty diventa y, la traduzione inversa.
Allora, come formare la sequenza? Seguirà lo stesso diritto alla regola di sinistra, la prima traduzione è la più grande trasformazione che sta portando il punto fisso all'origine, questo è seguito scalando così che è la seconda trasformazione che viene seguita da una conversione inversa che sta riportando di nuovo il punto al punto originale che è la trasformazione più a sinistra. Quindi, la nostra matrice composita sarà una moltiplicazione di queste matrici; T, S e T, chiamiamola T1 e T2. Ci moltiplichiamo per ottenere le matrici composite che rappresentano scaling rispetto a qualsiasi punto diverso dall'origine.
E allo stesso modo possiamo effettivamente eseguire altre trasformazioni di base rispetto a qualsiasi punto fisso diverso dall'origine. Questo è un esempio, che mostra la procedura che abbiamo appena accennato che ora supponiamo che questo oggetto originale sia stato definito non con un solo vertice all'origine, ma qui dove abbiamo nuovi vertici e il nuovo punto rispetto al quale avviene la scalatura è a T che è (5, 5) e lo stesso oggetto viene inserito qui dopo scaling e traduzione. Quindi in questo caso la traduzione non è richiesta perché era già a quel punto e si è verificato solo scalpore.
Quindi, se applichiamo l'approccio precedente che abbiamo delineato. Quindi, qui stiamo eseguendo scaling rispetto a questi punti fissi D, e la matrice di trasformazione, la matrice di trasformazione composita può essere trovata moltiplicando queste 3 matrici. Così, prima di tradurre questa origine a punto fisso così Tx sarà -5, Ty sarà -5. Poi eseguiamo scaling rispetto all'origine lungo l'asse x che è sx sarà di 1/2, sy sarà 1. E poi si traduce in questo punto la posizione originale che è Tx= 5, Ty=5 che è la matrice composita. Così, una volta che avremo questa matrice composita per scalare la applichiamo ai punti per ottenere i punti trasformati.
E come ho detto, possiamo seguire un approccio simile rispetto alla rotazione e all'avambracciamento per prima trasformazione del punto fisso rispetto a quale rotazione si deve eseguire lo shearing all'origine poi eseguendo l'operazione corrispondente e poi la trasformandola nella posizione originale. Quindi, per la rotazione, prima avremo una sola traduzione. Questo è seguito da rotazione rispetto all'origine. Questo è seguito da questo sarà seguito traducendo la posizione del punto fisso originale.
Per lo stesso approccio shearing, la traduzione all'origine seguita dall'aratura con rispetto all'origine seguita traducendo la posizione del punto fisso originale. Quindi, questo è il modulo di matrice composita per eseguire qualsiasi operazione di base rispetto ad un punto fisso che non è di origine.
Quindi, per ricapitolarci, se stiamo eseguendo l'operazione di base rispetto all'origine, allora non richiediamo di fare altro, applichiamo semplicemente la matrice di trasformazione di base. Tuttavia, se stiamo eseguendo l'operazione rispetto ad un punto che non è l'origine, allora eseguiamo una trasformazione composita che coinvolge 3 trasformazioni di base; la prima è la traduzione traduce il punto fisso in origine, la seconda è la trasformazione effettiva che sta scalando, rotazione o sfumatura e la terza sta trasformando il punto fisso al suo posto originale.
E lo eseguiamo in questo diritto a sinistra così questo è il più giusto, allora questo sarà uno a sinistra di questo, la seconda trasformazione e la terza sarà a sinistra di questa seconda trasformazione. Quindi se mettiamo la sequenza, per la prima volta arrivano 1, questo sarà seguito entro il 2, questo sarà seguito entro il 3.
Per una migliore comprensione ci facciamo passare un altro esempio, che illustrerà ulteriormente l'idea. Ora, supponiamo di richiedere più di una trasformazione, quindi appliceremo lo stesso processo che abbiamo già delineato.
Considerate questo oggetto, quali sono le trasformazioni necessarie per inserire questo oggetto come ciminiera in proporzione qui, come potete vedere che qui dobbiamo ruotare questo oggetto. Quindi, prima la superficie ora diventa qui quindi è una rotazione in senso antiorario di rotazione positiva di 90 ° grado e la dimensione si riduce anche per metà lungo la direzione x. Quindi sx dovrebbe essere 1/2, ma tutte queste operazioni di base si sono svolte rispetto a questo punto fisso. Quindi, allora come ottenere la matrice composita?
Così, traduciamo per la prima volta il punto fisso in origine in modo che sia T (-5, -5), poi scampiamo per renderla 1/2 così poi S metà 1, lungo asse y non c'è cambiamento quindi, lo terremo 1. Quindi, allora otteniamo oggetti come questo, poi lo ruottiamo per ottenere questo finale. Quindi, ruotate di 90 grado ma queste 2 operazioni che abbiamo eseguito rispetto all'origine dopo aver tradotto il punto fisso all'origine. Quindi, ora dobbiamo tradurlo in un'altra traduzione (5, 5). Quindi il Così, sembrerà una cosa del genere. Quindi, se sostituiamo questa notazione con matrici reali allora otterremo queste quattro matrici e quando ci moltiplichiamo otterremo la matrice composita che sembrerà così. Ecco, questo è il nostro modo di ottenere una matrice composita quando cerchiamo di eseguire più operazioni di base rispetto ad un punto che non è l'origine. le matrici insieme quando moltiplicate ci daranno la matrice composita.
E dopo aver ottenuto la matrice composita seguiremo gli stessi passi che faremo moltiplicare i punti di superficie dicono questi punti supporre o qualsiasi altro punto di superficie con la matrice composita per ottenere il punto trasformato, e questo ci porta alla fine di questa discussione. Quindi, prima di concluderla, cerchiamo di riassumere ciò che abbiamo imparato oggi.
In primo luogo, abbiamo discusso di una rappresentazione alternativa per le trasformazioni di base che sono i sistemi di coordinate omogenei dove rappresentiamo un punto 2D utilizzando un sistema di coordinate 3D. E come abbiamo visto, rende la vita più facile per costruire pacchetti grafici modulari o librerie. Quindi, utilizzando questa forma omogenea, possiamo rappresentare tutte le 4 trasformazioni di base utilizzando 3 da 3 matrici.
Poi quello che abbiamo imparato è formare una matrice composita seguendo il diritto di sinistra così prima matrice che applichiamo sugli oggetti dovrebbe essere la più giusta, la prossima matura che applichiamo dovrebbe essere la sinistra a destra più a matrice e così via fino all'ultima trasformazione. E moltiplichiamo tutte queste matrici insieme per ottenere le matrici composite. Una volta ottenuto la matrice composita, lo moltiplichiamo con i punti per ottenere i punti trasformati in sistema di coordinate omogenee.
Infine, dividiamo questi valori x e y nel sistema omogeneo grazie al fattore omogeneo per riottenere i punti originali. Abbiamo anche imparato su come eseguire le trasformazioni di base rispetto a qualsiasi punto non di origine. Le notazioni precedenti dovevano essere eseguite rispetto all'origine così quando ci viene dato un punto fisso e noi dovremmo eseguire la trasformazione di base rispetto a quel punto fisso, che non è l'origine, poi seguiamo un approccio di matrice composita lì ci traduce per la prima volta il punto fisso all'origine, eseguiamo le trasformazioni di base richieste rispetto all'origine e traduce il punto indietro nella sua posizione originale.
Seguendo lo stesso diritto di sinistra, otteniamo la matrice composita per rappresentare la trasformazione di base rispetto a qualsiasi punto arbitrario. Finora, qualunque cosa abbiamo discusso è legato alle trasformazioni 2D. Nella prossima lezione impareremo le trasformazioni in 3D.