En aquest tema, explorarem tres transformacions lineals fonamentals en l'àmbit de la manipulació de gràfics en 3D: rotacions, translacions i escalats. Aquestes transformacions són essencials per a la creació i manipulació d'objectes en espais tridimensionals.

  1. Rotacions

Definició

La rotació és una transformació que gira un objecte al voltant d'un punt fix, conegut com a centre de rotació. En 3D, les rotacions es poden fer al voltant dels eixos x, y i z.

Matrius de Rotació

Les matrius de rotació per als eixos x, y i z són les següents:

  • Rotació al voltant de l'eix x (angle θ): \[ R_x(\theta) = \begin{bmatrix} 1 & 0 & 0
    0 & \cos(\theta) & -\sin(\theta)
    0 & \sin(\theta) & \cos(\theta) \end{bmatrix} \]

  • Rotació al voltant de l'eix y (angle θ): \[ R_y(\theta) = \begin{bmatrix} \cos(\theta) & 0 & \sin(\theta)
    0 & 1 & 0
    -\sin(\theta) & 0 & \cos(\theta) \end{bmatrix} \]

  • Rotació al voltant de l'eix z (angle θ): \[ R_z(\theta) = \begin{bmatrix} \cos(\theta) & -\cos(\theta) & 0
    \sin(\theta) & \cos(\theta) & 0
    0 & 0 & 1 \end{bmatrix} \]

Exemple Pràctic

Suposem que volem rotar un punt \( P = (1, 0, 0) \) al voltant de l'eix z per un angle de 90 graus (π/2 radians):

\[ R_z\left(\frac{\pi}{2}\right) = \begin{bmatrix} 0 & -1 & 0
1 & 0 & 0
0 & 0 & 1 \end{bmatrix} \]

Multiplicant la matriu de rotació pel vector \( P \):

\[ R_z\left(\frac{\pi}{2}\right) \cdot \begin{bmatrix} 1
0
0 \end{bmatrix} = \begin{bmatrix} 0 & -1 & 0
1 & 0 & 0
0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1
0
0 \end{bmatrix} = \begin{bmatrix} 0
1
0 \end{bmatrix} \]

El punt rotat és \( P' = (0, 1, 0) \).

  1. Translacions

Definició

La translació és una transformació que desplaça un objecte d'un lloc a un altre en l'espai. Es defineix per un vector de translació \( T = (t_x, t_y, t_z) \).

Matriu de Translació

La matriu de translació en 3D és:

\[ T = \begin{bmatrix} 1 & 0 & 0 & t_x
0 & 1 & 0 & t_y
0 & 0 & 1 & t_z
0 & 0 & 0 & 1 \end{bmatrix} \]

Exemple Pràctic

Suposem que volem traslladar un punt \( P = (1, 2, 3) \) per un vector \( T = (4, -2, 1) \):

\[ T \cdot \begin{bmatrix} 1
2
3
1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 4
0 & 1 & 0 & -2
0 & 0 & 1 & 1
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1
2
3
1 \end{bmatrix} = \begin{bmatrix} 5
0
4
1 \end{bmatrix} \]

El punt traslladat és \( P' = (5, 0, 4) \).

  1. Escalats

Definició

L'escalat és una transformació que canvia la mida d'un objecte. Es defineix per factors d'escalat \( S = (s_x, s_y, s_z) \) per cada eix.

Matriu d'Escalat

La matriu d'escalat en 3D és:

\[ S = \begin{bmatrix} s_x & 0 & 0 & 0
0 & s_y & 0 & 0
0 & 0 & s_z & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

Exemple Pràctic

Suposem que volem escalar un punt \( P = (1, 2, 3) \) amb factors d'escalat \( S = (2, 3, 0.5) \):

\[ S \cdot \begin{bmatrix} 1
2
3
1 \end{bmatrix} = \begin{bmatrix} 2 & 0 & 0 & 0
0 & 3 & 0 & 0
0 & 0 & 0.5 & 0
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1
2
3
1 \end{bmatrix} = \begin{bmatrix} 2
6
1.5
1 \end{bmatrix} \]

El punt escalat és \( P' = (2, 6, 1.5) \).

Exercicis Pràctics

Exercici 1: Rotació

Rotar el punt \( P = (2, 1, 3) \) al voltant de l'eix y per un angle de 45 graus (π/4 radians).

Exercici 2: Translació

Traslladar el punt \( P = (3, -1, 2) \) pel vector \( T = (-2, 3, 5) \).

Exercici 3: Escalat

Escalar el punt \( P = (1, 4, -2) \) amb factors d'escalat \( S = (0.5, 2, 3) \).

Solucions

Solució 1: Rotació

\[ R_y\left(\frac{\pi}{4}\right) = \begin{bmatrix} \frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2}
0 & 1 & 0
-\frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2} \end{bmatrix} \]

Multiplicant la matriu de rotació pel vector \( P \):

\[ R_y\left(\frac{\pi}{4}\right) \cdot \begin{bmatrix} 2
1
3 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2}
0 & 1 & 0
-\frac{\sqrt{2}}{2} & 0 & \frac{\sqrt{2}}{2} \end{bmatrix} \cdot \begin{bmatrix} 2
1
3 \end{bmatrix} = \begin{bmatrix} 3.54
1
0.71 \end{bmatrix} \]

El punt rotat és aproximadament \( P' = (3.54, 1, 0.71) \).

Solució 2: Translació

\[ T \cdot \begin{bmatrix} 3
-1
2
1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & -2
0 & 1 & 0 & 3
0 & 0 & 1 & 5
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 3
-1
2
1 \end{bmatrix} = \begin{bmatrix} 1
2
7
1 \end{bmatrix} \]

El punt traslladat és \( P' = (1, 2, 7) \).

Solució 3: Escalat

\[ S \cdot \begin{bmatrix} 1
4
-2
1 \end{bmatrix} = \begin{bmatrix} 0.5 & 0 & 0 & 0
0 & 2 & 0 & 0
0 & 0 & 3 & 0
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1
4
-2
1 \end{bmatrix} = \begin{bmatrix} 0.5
8
-6
1 \end{bmatrix} \]

El punt escalat és \( P' = (0.5, 8, -6) \).

Conclusió

En aquesta secció, hem après sobre tres transformacions lineals fonamentals: rotacions, translacions i escalats. Hem vist com es poden representar aquestes transformacions amb matrius i hem practicat la seva aplicació a punts en l'espai 3D. Aquestes habilitats són essencials per a la manipulació d'objectes en gràfics tridimensionals i seran la base per a temes més avançats en aquest curs.

© Copyright 2024. Tots els drets reservats