Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Calcular vector perfendicular a una superficie en un determinado punto

Iniciado por DarkGDK, 09 de Julio de 2012, 12:16:24 AM

« anterior - próximo »

DarkGDK

Hola,

¿Cuál sería la mejor técnica para obtener un vector perpendicular a una superficie en un determinado punto?

Mi idea, es calcular un plano tangente a la superficie dicho punto y luego obtener el vector normal del plano. Lo quiero usar para determinar la dirección del vetor 'up' de un cubo que voy a mover por una superficie irregular y pienso que tal vez esta técnica que he pensado se puede hacer más ligera de cara al rendimiento.

Saludos.

H-K

"It's not who I am underneath, but what I do that defines me"

DarkGDK

Mi idea es hacerlo de manera general para que valga para cualquier superficie.

La superficie está definida de manera que es posible conocer en cada momento las coordenadas x, y, z de esta.

H-K

Es que así a bote pronto creo que no hay generalización que valga, va a depender de cómo esté definida. ¿Es un mapa de alturas, es una malla o está dada por una función?
"It's not who I am underneath, but what I do that defines me"

DarkGDK

No es un mapa de alturas ni una malla, es una superficie sencilla que he generado mediante una función matemática. De hecho, lo que he implementado es mostrar unos cuantos puntos de esa superficie, como si fuera un grid de puntos.

H-K

Entonces calcula el vector gradiente de esa superficie, no vas a necesitar nada más.
"It's not who I am underneath, but what I do that defines me"

DarkGDK

Desconozco el cálculo del vector gradiente para una superficie. ¿Ese cálculo es más liviano que el que he propuesto yo?

H-K

Si la función está dada como z = f(x,y) (o y = f(x,z) como lo tengas definido), el gradiente es el vector cuyas componentes son las derivadas parciales de la función sobre la variable correspondiente. si z = f(x,y) , grad(x, y) = ( fx (x,y) , fy (x,y) )
Otra cosa que puedes hacer es hacer el sacar dos puntos de la superficie (P1 y P2) que estén muy próximos al primero (P), sacar los vectores PP1 y PP2, y hacer el producto vectorial (esto en el fondo es casi lo mismo que lo de arriba)

No sé, es lo único que se me ocurre de momento. ¿Cómo habías pensado tú?
"It's not who I am underneath, but what I do that defines me"

DarkGDK

Vale, probaré con el método que me has indicado. Yo había pensado en calcular un plano tangente a la superficie dicho punto y luego obtener el vector normal del plano.

H-K

Pero es que para calcular el plano tangente necesitas primero el vector normal, así que tendrías que pasar por aquí de todas maneras. O a lo mejor tienes algún método para hacerlo que no me estás contando y yo estoy aquí colándome tres pueblos :P
"It's not who I am underneath, but what I do that defines me"

DarkGDK

Yo creo que hablamos de lo mismo, este es el método que uso: http://www.taringa.net/posts/ciencia-educacion/6628940/Planos-Tangentes-a-un-punto-de-una-superficie_.html

Lo que hace es derivar la función del plano en función de x y luego en función de y.

Saludos.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.