Proiekzio grafiko

thumb|Hainbat proiekzio grafiko mota, alderatuta.
**Proiekzio grafikoa** hiru dimentsioko (3D) objektu bat bi dimentsioko (2D) azalera batean erakusteko erabiltzen den diseinu teknika bat da. Proiekzio hauek ikusizko perspektiban eta alderdien analisian oinarritzen dira objektu konplexu bat proiektatzeko kapazitatea plano sinpleago batean ikusteko.

3D proiekzioek objektu baten oinarrizko formaren lehen ezaugarriak erabiltzen dituzte puntu mapa bat sortzeko, ondoren elkarri konektatuak daudenak elementu bisual bat sortzeko. Emaitza grafiko bat da, irudia benetan laua ez dela interpretatzeko propietate konstruktiboak dituena, baina, hobeto esanda, azalera lau batean ikusten den objektu solido bat da (3D).

3D objektuak, neurri handi batean, bi dimentsioko gainazalen gainean (hau da, paperaren eta konputagailuen) erakusten dira. Horrela izanik, proiekzio grafikoak ohiko diseinu-elementu bat dira; batez ere, ingeniaritza-marrazketan, marrazketa-teknikoan eta ordenagailu bidezko grafikoetan erabiltzen dira. Proiekzioak analisi eta formula matematikoak erabiliz kalkula daitezke, edo hainbat teknika geometriko eta optiko erabiliz.

## Proiekzio ortografikoa 
Giza begiak eszena bati begiratzen dionean, urrutiko objektuek hurbileko objektuek baino txikiagoak dirudite. Proiekzio ortografikoak ez du efektu hori ezagutzen eraikuntzarako eta ingeniaritzarako eskalako marrazkiak sortzea ahalbidetzeko. 

Proiekzio ortogonalak transformazio-multzo txiki bat dira, askotan hiru dimentsioko objektu baten profila, xehetasuna edo neurri zehatzak erakusteko erabiltzen direnak. Ortografia-proiekzioetarako izen arrunten artean daude: oinplanoa, zeharkako sekzioak, txori-bistako planoak eta bolumena igotzeko sistema desberdinak.

Ikusmen-planoarekiko lerro normala (kamera zuzentzen den norabidea) koordenatu-ardatz nagusietako baten (*x, y* edo *z* ardatza) paraleloa bada, eraldaketa matematikoak forma bereziki sinpleak hartzen ditu. Adibidez, 3D puntua a_x, a_y, a_z 2D puntuan b_x, b_y proiektatzeko ardatzarekiko paraleloa den proiekzio ortografiko bat erabiliz (non *y* positiboak, ikuspegiaren zentzuan, profilaren aurreranzko norabidea adierazten duen), ekuazio hauek erabil daitezke:

: b_x = s_x a_x + c_x
: b_y = s_z a_z + c_z

non *s* bektorea eskala arbitrarioko faktore bat den, eta *c *desplazamendu arbitrario bat. Konstante horiek aukerakoak dira, eta leiho grafikoa behar bezala lerrokatzeko erabil daitezke. Matrizeen biderkatzea erabiliz, ekuazioak honetan bihurtzen dira:
: 
 \begin{bmatrix}
   {b_x }  \\
   {b_y }  \\
\end{bmatrix} = \begin{bmatrix}
   {s_x } & 0 & 0 \\
   0 & 0 & {s_z }  \\
\end{bmatrix}\begin{bmatrix}
   {a_x }  \\
   {a_y }  \\
   {a_z }  \\
\end{bmatrix} + \begin{bmatrix}
   {c_x }  \\
   {c_z }  \\
\end{bmatrix}
.

Ortografikoki proiektatutako irudiek proiektatutako objektuaren hiru dimentsioko izaera irudikatzen dutenean, ez dute objektua argazkiz grabatuko litzatekeen edo zuzenean behatzen duen ikusle batek hautemango lukeen moduan irudikatzen. Bereziki, ortografikoki proiektatutako irudi baten puntu guztietako luzera paraleloak eskala berekoak dira, ikuslearengandik oso urrun edo hurbil dauden alde batera utzita. Ondorioz, luzerak ez dira laburtzen perspektibako proiekzio batean egongo liratekeen moduan.

## Proiekzioa perspektiba *ahulean*
Perspektiba *ahuleko *proiekzio batek proiekzio ortografiko baten printzipio berberak erabiltzen ditu, baina eskala-faktorea zehaztea eskatzen du, horrela objektu hurbilenak proiekzioan handiagoak direla ziurtatuz, eta alderantziz. Proiekzio ortografiko eta perspektiba baten arteko hibrido gisa ikus daiteke, eta puntu indibidualen sakonera duen perspektibako proiekzio gisa deskribatzen da Z_{i} batez besteko sakonera konstante batek ordeztutaZ_{med} edo, besterik gabe, proiekzio ortografiko bat gehi eskala bat gisa.

Beraz, perspektiba *ahularen *ereduak perspektibaren proiekzioa hurbiltzen du, eredu sinpleagoa erabiltzen baitu, perspektiba ortografiko hutsaren antzekoa (eskalarik gabea).

Arrazoizko hurbilketa da: objektuaren sakontasuna ikusmen-lerroan txikia denean kameratik dagoen distantziarekin alderatuta eta ikusmen-eremua txikia denean. Baldintza horiekin, pentsa daiteke 3D objektu bateko puntu guztiak distantzia berera daudelaZ_{med} kameratik, proiekzioan akats esanguratsurik egin gabe (perspektiba osoaren ereduarekin alderatuta).

***Ekuazioa***
: \begin{array}{lcl}
P_x = \frac{X}{Z_{med}} \\
P_y = \frac{Y}{Z_{med}}
\end{array}
foku-luzera bere gain hartuz \mathit{f} = 1.

## Perspektibaren proiekzioa
Giza begiak eszena bat ikusten duenean, urrutiko objektuek hurbileko objektuek baino txikiagoak dirudite. Horri perspektiba esaten zaio. Proiekzio ortografikoak efektu hori ezagutzen ez badu ere, perspektibako proiekzioak urrutiko objektu txikienak erakusten ditu neurketa zehatzak ahalbidetzeko eta sortutako irudiei errealismoa emateko.

Perspektibako proiekzioak definizio konplexuagoa eskatzen du proiekzio ortografikoekin alderatuta. Proiekzio honen mekanika ulertzeko laguntza kontzeptual bat da 2D-ko proiekzioa irudikatzea, objektuak argazki-kamera baten bisorearen bidez ikusten ariko balira bezala. Kameraren posizioak, orientazioak eta ikuseremuak proiekzio-transformazioaren portaera kontrolatzen dute. Honako aldagai hauek definitzen dira eraldaketa hori deskribatzeko:
* \mathbf{a}_{x,y,z}: proiektatu behar den *A* puntu baten 3D posizioa.
* \mathbf{c}_{x,y,z}: kamera irudikatzen duen *C* puntu baten 3D posizioa.
* \mathbf{\theta}_{x,y,z}: kamararen orientazioa (Eulerren angeluak irudikatuta).
* \mathbf{e}_{x,y,z}: irudiaren planoak kameraren diafragmarekiko duen posizioa (*C*-n esan moduan kokatuta). Ekuazioetarako zeinu irizpide gehienek z positiboen balioak erabiltzen dituzte (planoa diafragmaren aurrean dago), baina z negatiboen balioak fisikoki zuzenagoak dira, baina irudia horizontalki zein bertikalki alderantzikatuko da.

Horren ondorioz:

* \mathbf{b}_{x,y}: \mathbf{a}-ren 2D proiekzioa.
\mathbf{c}_{x,y,z}=\langle 0,0,0\rangle, y \mathbf{\theta}_{x,y,z} = \langle 0,0,0\rangle, 3D bektorea \langle 1,2,0 \rangle 2D bektorean proiektatzen denean\langle 1,2 \rangle.

Bestela, \mathbf{b}_{x,y} kalkulatzeko, lehenengo bektore bat \mathbf{d}_{x,y,z}definitzen da kamerak definitutako [koordenatu-sistema] batekiko *A* puntuaren posizio gisa, jatorria *C* duena eta hasierako koordenatu-sistemarekiko \mathbf{\theta} biraketa duena. Hori lortzen da \mathbf{c} bektorea \mathbf{a} bektoreari matrizetik bereiziz eta, ondoren, emaitzaren araberako errotazio bat aplikatuz. Eraldaketa horri ganbera transformazioa esaten zaio askotan, eta honela formulatu daiteke, biraketa *x, y* eta *z *ardatzen gainean eginez (kalkulu horien arabera, ardatzak ezkerrera biratzen duen ardatz-sistema gisa ordenatzen dira):
: 
\begin{bmatrix}
   \mathbf{d}_x \\
   \mathbf{d}_y \\
   \mathbf{d}_z \\
\end{bmatrix}=\begin{bmatrix}
   1 & 0 & 0  \\
   0 & {\cos ( \mathbf{ \theta}_x ) } & {  \sin ( \mathbf{ \theta}_x ) }  \\
   0 & {- \sin ( \mathbf{ \theta}_x ) } & { \cos ( \mathbf{ \theta}_x ) }  \\
\end{bmatrix}\begin{bmatrix}
   { \cos ( \mathbf{ \theta}_y ) } & 0 & {- \sin ( \mathbf{ \theta}_y ) }  \\
   0 & 1 & 0  \\
   { \sin ( \mathbf{ \theta}_y ) } & 0 & { \cos ( \mathbf{ \theta}_y ) }  \\
\end{bmatrix}\begin{bmatrix}
   { \cos ( \mathbf{ \theta}_z ) } & {  \sin ( \mathbf{ \theta}_z ) } & 0  \\
   { -\sin ( \mathbf{ \theta}_z ) } & { \cos ( \mathbf{ \theta}_z ) } & 0  \\
   0 & 0 & 1  \\
\end{bmatrix}\left( {\begin{bmatrix}
   \mathbf{a}_x  \\
   \mathbf{a}_y  \\
   \mathbf{a}_z  \\
\end{bmatrix} - \begin{bmatrix}
   \mathbf{c}_x  \\
   \mathbf{c}_y  \\
   \mathbf{c}_z  \\
\end{bmatrix}} \right)

Irudikapen hori Eulerren hiru angeluen arabera biratzeari dagokio, *xyz* konbentzioa erabiliz. Konbentzio hori honela interpreta daiteke: *z, y, x* ordenan ardatz *estrintsekoen *gainean biratzea (eszenaren ardatzak), edo  ardatz *intrintsekoen *gainean biratzea (irakurketa eskuinetik ezkerrera) *x , y, z* ordenan. Kontuan izan kamara ez bada biratzen (\mathbf{\theta}_{x,y,z} = \langle 0,0,0\rangle), orduan matrizeak identitate bihurtzen dira, eta hau  \mathbf{d} = \mathbf{a} - \mathbf{c}. aldaketara mugatzen da.

Bestela, matrizerik erabili gabe (x-cx *x*-gatik ordeztuz eta, era berean, beste aldagaiak, eta cosθ *c*-ra laburtuz eta sinθ *s*):
: 
\begin{array}{lcl}
	\mathbf{d}_x = c_y (s_z \mathbf{y}+c_z \mathbf{x})-s_y \mathbf{z} \\
	\mathbf{d}_y = s_x (c_y \mathbf{z}+s_y (s_z \mathbf{y}+c_z \mathbf{x}))+c_x (c_z \mathbf{y}-s_z \mathbf{x}) \\
	\mathbf{d}_z = c_x (c_y \mathbf{z}+s_y (s_z \mathbf{y}+c_z \mathbf{x}))-s_x (c_z \mathbf{y}-s_z \mathbf{x}) \\
\end{array}

Eraldatutako puntu hori, gero, 2D planoan proiekta daiteke formula erabiliz (hemen *x/y* proiekzio-plano gisa erabiltzen da, nahiz eta testu batzuek *x/z* ere erabil dezaketen).
: 
\begin{array}{lcl}
 \mathbf{b}_x &= & \frac{\mathbf{e}_z}{\mathbf{d}_z} \mathbf{d}_x - \mathbf{e}_x \\
 \mathbf{b}_y &= & \frac{\mathbf{e}_z}{\mathbf{d}_z} \mathbf{d}_y - \mathbf{e}_y\\
\end{array}.

Edo, matrize moduan, koordenatu homogeneo sistema 
: 
\begin{bmatrix}
   \mathbf{f}_x \\
   \mathbf{f}_y \\
   \mathbf{f}_z \\
   \mathbf{f}_w \\
\end{bmatrix}=\begin{bmatrix}
   1 & 0 & -\frac{\mathbf{e}_x}{\mathbf{e}_z} & 0 \\
   0 & 1 & -\frac{\mathbf{e}_y}{\mathbf{e}_z} & 0 \\
   0 & 0 & 1 & 0 \\
   0 & 0 & -\frac{1}{\mathbf{e}_z} & 1 \\
\end{bmatrix}\begin{bmatrix}
   \mathbf{d}_x  \\
   \mathbf{d}_y  \\
   \mathbf{d}_z  \\
   1 \\
\end{bmatrix}

erabiliz, antzeko triangeluak erabiltzen dituen argumentu batekin batera, koordenatu homogeneoaren araberako zatiketa dakar
: 
\begin{array}{lcl}
 \mathbf{b}_x &= &\mathbf{f}_x / \mathbf{f}_w \\
 \mathbf{b}_y &= &\mathbf{f}_y / \mathbf{f}_w \\
\end{array}.

emaitzarekin.

Aurreko ekuazioak ere honela berridatz daitezke:
: 
\begin{array}{lcl}
 \mathbf{b}_x= (\mathbf{d}_x \mathbf{s}_x ) / (\mathbf{d}_z \mathbf{r}_x) \mathbf{r}_z\\
 \mathbf{b}_y= (\mathbf{d}_y \mathbf{s}_y ) / (\mathbf{d}_z \mathbf{r}_y) \mathbf{r}_z\\
\end{array}.

non \mathbf{s}_{x,y} bistaratze-tamaina den; \mathbf{r}_{x,y} irudiak hartzen duen gainazalaren tamaina (Karga akoplatuko gailua (CCD) edo filma); \mathbf{r}_z filmaren azaleratik diafragmara (kameraren helburuaren zuloa) arteko distantzia, eta \mathbf{d}_z proiektatutako 3D puntutik diafragma horretara dagoen distantzia.

Ondorengo ebakitze- eta eskalatze-eragiketak beharrezkoak izan daitezke 2D planoa edozein bistaratze-bide jakinetan kokatzeko.

## Diagrama
thumb|300px|Perspektibaren eraldaketa baten diagrama
Pantailan A_x,A_z puntu bati zein *x* koordenatu dagokion zehazteko, puntuaren koordenatuak
: B_x = A_x \frac{B_z}{A_z}-etik 
biderkatu behar dira: 
non
: B_x pantailako *x* kordenatua den
: A_x ereduaren *x* kordenatua den
: B_z foku-distantzia den, kameraren erdigunearen eta irudi-planoaren arteko distantzia axiala
: A_z behatzailearen eta behatutako puntuaren arteko distantzia den (irudi-planoarekiko perpendikularki neurtua).
Kamera 3Dn dagoenez, gauza bera egiten du pantailako *y* koordenadarako, ordezkatuz *y x*-rengatik diagraman eta goiko ekuazioan.

## Erreferentziak
## Ikus, gainera
* Hiru dimentsioko infografia
* Ordenagailu bidezko grafiko
* Txartel grafiko
* Perspektiba

## Kanpo estekak