Sí, la fórmula básica es esa, pero se te ha olvidado la distancia. Este es un cuarto valor que indica la distancia a la que se encuentra el punto de vista a la pantalla.
En uno de mis proyectos calculo la distancia así:
DstPant = (cos (FOV / 2) * (ancho_pantalla / 2)) / sin (FOV / 2);
Lo que si he notado es que hay un punto de la figura que siempre se keda en 0,0 de la pantalla, fijo, por lo que se deforma. Que puede pasar?
FOV es "Field Of View", esto es, el ángulo de la "lente". cos es coseno y sin es seno.
Añadiendo esto a lo que ha dicho anibarro, la fórmula quedará así:
x = (x3d / z3d) * DistPant
y = (y3d / z3d) * DistPant
Me parece que el día que dieron eso yo no fui a clase
Las coordenadas 3D funcionan igual que las 2D: incrementas o reduces los valores de los ejes y el punto se mueve en un sentido o en otro.
Por cierto, que girar puntos o vértices es un pelín complicado. Normalmente se utilizan matrices pero yo conocía unas fórmulas para realizar el giro directamente que funciona muy bien con objetos simples y es más rápido. El problema es que no lo tengo a mano y no lo tendré durante una larga temporada
.
Marcadores