Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Interseccion de una lineas y un plano.

Iniciado por ZeruGiran, 26 de Diciembre de 2002, 11:28:00 PM

« anterior - próximo »

ZeruGiran

                                Hola:

Tengo un mapa de niveles, el cual esta formado por triangulos, quiero poner unoc bichos que caminen sobre el terreno para que no floten o esten debajo del terreno.

Para ello ya hemos calculado sobre que triengulo esta parado el bicho, pero falta saber la altura esacta de ese punto.

Aqui hay un dibujo del problema.


http://alumnos.cic.ipn.mx/maestria/eric/Te...reno_Altura.png

¿Alguien ha hecho algo similar o sabe de alguna pagina?

De paso aprobecho para invitarlos al proyecto war3d,
http://war3d.sourceforge.net, buscamos modeladores, ya tenemos algunos bocetos de unidades de guerra, estamos en el canal #war3d IRC-Hispano

Saludos                                

BeRSeRKeR

                                Supongo que lo que necesitas es una rutina que calcule el punto de intersección entre una línea y un plano (el que forma el triángulo). Para ello puedes echarle un vistazo a esta page

http://www.acm.org/jgt/papers/MollerTrumbo...ore97/code.html

Ahí encontrarás una rutina que detecta si hay intersección o no, y si la hay, te devuelve la distancia desde el origen del rayo hasta el punto de intersección (lo devuelve en el parámetro t si no me equivoco), con lo cual ya podrás calcular el punto exacto de la intersección y por lo tanto, determinar la coordenada Y.

En tu caso, los parámetros de la función serían, el origen que sería el punto (X0, C, Z0), la dirección, que sería (0, -1, 0) y finalmente los 3 vértices que forman tu triángulo. Los otros 3 parámetros son valores que te devuelve la función. El que te interesa creo que es t, que como he dicho anteriormente es la distancia desde el origen del rayo hasta el punto de intersección, por lo que el punto de intersección lo calcularías de la forma:

Punto_Interseccion = (X0, C, Z0) + (0, -1, 0) * t

Espero no haberme colado  :-?

Saludos                                
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

ZeruGiran

                                Mil gracias, ya esta hecho y funcionado, gracias a K-Ballo.

Si les interesa ver la solucion, el codigo esta en nuestro CVS, compilable para Linux y Windows.

http://cvs.sourceforge.net/cgi-bin/viewcvs...3d/War3DSource/

Saludos.

De nuevo reitero nuestra invitacion a unirse al proyecto War3D.

Canal #war3d irc-hispano.                                






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.