Ver Mensaje Individual
  #2  
Antiguo 22-05-2017
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Si no recuerdo mal, da igual que sea 2D que 3D siempre que se usen vectores. Es decir, las operaciones con vectores 2D son las mismas y dan los mismos resultados que con vectores 3D (cada uno dentro de su propio sistema de coordenadas, claro).

Ahora no tengo acceso a mi documentación, pero existe un algoritmo que consiste (si no recuerdo mal) en:
  1. Calcular (o determinar) la ecuación del plano del triángulo. Esto debería ser fácil.
  2. Determinar si el punto está en el mismo plano que el triángulo. Esto también debería ser fácil.
  3. A partir de ahí, si el triángulo original es ABC y el punto es P, comprobar si la suma del área de los triángulos ABP y ACP es menor o igual que el área de ABC, lo que querrá decir que el punto está dentro; si fuera mayor entonces estaría fuera. Si haces unos pocos dibujos de triángulos lo veras. Este punto es más complejo.
Este no es el único método, pero es el único cuya teoría me sé de memoria. En el artículo de Flipcode Building a 3D Portal Engine - Issue 12 - Collision Detection se discute la deteción de colisiones esfera-triángulo, de la que seguro podrás extraer un algoritmo para saber si un punto (o esfera de radio 0) está "dentro" del triángulo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 22-05-2017 a las 09:42:49.
Responder Con Cita