bubu ([info]bubu) rakstīja [info]koderi kopienā,
Ar transformācijas matricu transformē vektoru. Tavā gadījumā vektors (x,y,z,h) izmantojot to tavu abc.. matricu transformēsies par vektoru (X,Y,Z,H), kur:
X = a*x + b*y + c*z + p*h
Y = e*x + f*y + g*z + q*h
Z = i*x + j*y + k*z + r*h
H = l*x + m*y + n*z + s*h
Kā redzi šeit ir izmantoti visi abc..mns "burti".

Tas, ko tu uzrakstīji sapin vienā putrā divas lietas - 3d transformāciju (rotāciju + translāciju) un projekcijas matricu.

3d transformāciju matricām vienmēr p=q=r=0 un h=s=1. Tāpēc, lai "nesačakarētu" 4d vektoru būtību 3d telpā.
Vēl jo vairāk - 3d rotācijas matricām l=m=n=p=q=r=0. Un tikai translācijai l=m=n var nebūt 0.
Vēl svarīga lieta ir h vērtība. Ja tā ir 0, tad (x,y,z) nozīmē vektoru 3d telpā (virzienu). Ja tā ir 1, tad (x,y,z) nozīmē punktu 3d telpā. Palasi par homogēnām koordinātēm. Citām h vērtībām īsti lielas jēgas nav.
Paskaties pats uz augstāk esošajiem vienādojumiem. Ja h=0, tad l/m/n neietekmēs X/Y/Z vērtības - visai loģiski, jo pārbīdod vektoru tā virziens nemainās. Savukārt, ja h=1, ta l/m/n vērtības ir vienkārši piessumētas X/Y/Z formulās - arī visai loģiski. Parbīdot punktu, tā koordinātēm vienkārši ir jāpieskaita izmaināmās vērtības (l/m/n).
Var ari domāt, ka 3d punktu (h!=0) no (x,y,z,h) koordinātēm dabū pēc formulas (x/h,y/h,z/h). Kā redzams, šis nemaina parasta punkta pirmos trīs komponentus (jo h=1).

projekcijas matricām, savukārt, p/q/r/s elementi var nebūt 0 vai 1 (atkarībā no izmantotās projekcijas veida -dimetrija, perspektīva, ...). Tie ir atšķirīgi no tāpēc, lai h vērtība ietekmētu X/Y/Z vērtības (skat izteiksmes augstāk).

Un nevajag uz a,b,c,e,f,g,i,j,k vērtībām skatīties kā uz brīnumu skaitļiem kā rotācijas matricā. Uz tiem vajag skatīties kā jaunās koordināšu sistēmas (pagrieztās) bāzēm izteiktiem ar veco koordināšu sistēmas (nepagrieztās) bāzēm.


(Lasīt komentārus)

Nopūsties:

No:
Lietotājvārds:
Parole:
Ievadi te 'qws' (liidzeklis pret spambotiem):
Temats:
Tematā HTML ir aizliegts
  
Ziņa:

Gandrīz jau aizmirsu pateikt – šis lietotājs ir ieslēdzis IP adrešu noglabāšanu. Operatore Nr. 65.
Neesi iežurnalējies. Iežurnalēties?