- Cum se pot transforma coordonatele 3D in 2D, pentru a putea fi afisate pe ecran?
Sa presupunem ca vrem sa desenam o linie care are urmatoarele coordonate 3D: (x1, y1, z1, x2, y2, z2). Linia va trebui sa fie desenata de la punctul (x1, y1, z1) la punctul (x2, y2, z2).
Limbajele de programare, in general, nu accepta decat coordonate in x si y. In exemplul nostru va trebui sa transformam (x1, y1, z1) in (rx1, ry1), respectiv (x2, y2, z2) in (rx2, ry2).
Formulele de transformare a coordonatelor 3D in 2D:
rx1 = x1 * cos(alpha) - y1 * sin(alpha);
ry1 = x1 * sin(alpha) + y1 * cos(alpha);
ry1 = ry1 * sin(beta) + z1 * cos(beta);
De asemenea:
rx2 = x2 * cos(alpha) - y2 * sin(alpha);
ry2 = x2 * sin(alpha) + y2 * cos(alpha);
ry2 = ry2 * sin(beta) + z2 * cos(beta);
Unde:
alpha = unghiul din planul XoY;
beta = unghiul din planul ZoY sau ZoX;
Acum linia va putea fi desenata fara - teoretic - nici o problema.
Unghiurile alpha si beta. Un cub construit dupa formulele de mai sus, plus liniile din spate colorate diferit de cele din fata.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.