[C++]Zamiana wspolrzednych 3D na 2D

0

Mam 3 zmienne reprezentujace punkt w plaszczyznie 3 wymiarowej - int x,y,z. Jak przeksztalcic ten punkt tak, aby byl on punktem w 2d uzywajac rzutu perspektywicznego? (Rzutowanie perspektywiczne na plaszczyzne) Czytalem w necie, ale nie wiem, jakie wzory zastosowac ... Prosze o pomoc :( Ogolnie, ciezko mi idzie myslenie w 3d, stad chyba moje problemy :/

0

Czyli, jesli mam np. punkt (x,y,z) i chce go przesunac o wektor (tx,ty,tz), robie cos takiego:

Mam macierz świata, w tym wypadku moim "światem" jest mój punkt (x,y,z), gdzie macierz swiata wyglada tak: [x,y,z,1] - niech to będzie macierzSwiat.

Następnie muszę ją pomonożyć przez macierz rzutowania - podaną na stronie podanej przez Ciebie z tym 1/D - otrzymuję jakąś macierz, nazwijmy ją macierzTemp. (czyli macierzSwiat * MacierzZD = macierzTemp)

Następnie, robię translację tego punktu o dany wektor, korzystając z macierzy translacji (mnożę macierzTemp przez macierz translacji - to rozumiem - macierzTemp * macierzTranslacji). Otrzymam wtedy przesunięty punkt 3D.

Ostatecznie, muszę zamienić ten punkt 3D na 2D ... i tu kłopot, bo tego nie wiem, jak to zrobić. No i jakby ktos zweryfikował, czy dobrze jest to, co napisałem powyżej ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1