Calcular posiciones (vértices) de un plano

E

Es posible calcular los vértices de un plano a partir de su vector normal y un punto (que sería el medio del plano)? Y si es así, cómo se calcula? :S

Estoy trabajando en 3 dimensiones

B

A que te refieres con vertices?

Si te refieres a las intersecciones del plano con los ejes x,y,z tienes que encontrar la ecuacion normal del plano.

Todos los puntos del plano estan definidos por el hecho de que el vector (x,y,z) menos el punto que tienes del plano (llamemosle p) son vectores que pertenecen al plano y por tanto son ortogonales al vector normal. Escrito en coordenadas
( (x-p_x)v_x + (y-p_y)v_y + (z-p_z)v_z = 0 )

O lo que es lo mismo:
( xv_x + yv_y + zv_z = p_xv_x + p_yv_y + p_zv_z )

Para encontrar los puntos de interseccion con los ejes x,y,z simplemente tienes que poner x=y=0, x=z=0, y=z=0 .

2 respuestas
B

Los planos son infinitos, no tienen vértices. Como te ha explicado #2 los únicos vértices que se podrían calcular son los del triángulo formado por la intersección del plano con los ejes.

Seguramente que te pidan el área de ese triángulo o el volumen del tetraedro, de ahí que necesites los vértices.

1 respuesta
E

#2 #3 con vértice me refiero a donde se juntan dos o más artistas. En el caso del plano 4 vértices.

Explico. Estoy haciendo un videojuego. Necesito hacer 4 planos para limitar la pantalla. En este caso, dos planos X y dos planos Y ( porque aunque esté en 3 dimensiones, la Z no la voy a usar ).

Bien, para construir los planos y optimizar había pensado pasar un parámetro al construir el plano, y sería el punto medio del plano. En el caso del plano X sería (parámetro, 0, 0) y en el del Y (0, parámetro, 0). Supongamos que mi parámetro de un plano X es 5. Entonces mi centro del plano sería (5,0,0). Mi vector normal tiene dirección (1,0,0).

Para renderizado un plano necesito saber 4 vértices para poder triangular y mostrar por pantalla. Y aquí me quedé, no se si es posible o no lo que pido xD

2 respuestas
B

#4 pero eso no son planos... son trapezoides (que pueden incluir rectangulos, rombos o cuadrados). Y no, con el centro y el vector normal no puedes encontrar los 4 vertices del trapezoide, ya que puedes rotarlo por el angulo que quieras y seguira teniendo el mismo centro.

Ahora bien, si tienes los 4 vectores normales + "centros", entonces puedes encontrar por lo menos las rectas donde estan los "vertices", y si tienes alguna regla para los vertices (que vendria dada por la Z que no usas), pues ya esta. Pero no entiendo para que trabajas en 3D si no usas la dimension Z.

Por ejemplo tienes el plano X (que realmente seria el plano YZ) pasando por (5,0,0) y el plano Y que realmente seria el plano XZ pasando por (0,1,0), entiendo que con vector normal (0,1,0)

Su interseccion es la recta (z,1,5) y de ahi puedes sacar 2 vertices si sabes algo sobre la z (los otros dos planos que tienes seran uno paralelo al plano X primero y el otro al plano Y primero, si he entendido bien tu problema).

B

#4 yo creo que si trabajas en un videojuego en 3D necesitas trabajar las 3 variables si o si. Aunque no entiendo mucho de ese tema...

La cosa es que si necesitas vértices que delimiten los planos, necesitas incluir los planos Z, ya que con solo dos pares de planos X-Y vas a conseguir de su intersección solo rectas (aristas) pero no estarán delimitadas en vértices. Para conseguir los vértices de cada plano necesitas 3 planos que se corten en un punto. Por eso creo que necesitas incluir los planos z, además si no me equivoco en función de estos tendrás más o menos profundidad.

Una vez los tengas sacar el punto medio de cada plano por distancias es sencillo. Aunque con el vector normal no se puede hacer mucho.

Ya te digo que no entiendo de diseño de videojuegos pero en 3D creó que como mucho podría sobrarte un plano Y , si no quieres acotar el escenario de juego por encima teniendo una vista desde arriba. Como los juegos de fútbol.

Usuarios habituales