Un punto dentro de un triangulo

Antes de leer este post, primero intenta resolver este problema.

Si tenemos un triangulo “ABC” determinar si un punto “P” se encuentra adentro del triangulo. suponiendo que el triangulo y el punto se encuentran en el mismo plano.

Bueno seguro ya encontraste la respuesta, bien hecho, ahora te diré como lo hice.
Primero repasemos un poco de matemática y teoria de vectores, si tenemos dos vectores A y B entonces el producto cruz entre ellos nos dará un vector ortogonal al plano en la que se encuentran ademas la dirección de este nuevo vector se determina por la regla de la mano derecha.

imagen1

más información sobre producto vectorial en:
http://es.wikipedia.org/wiki/Producto_vectorial

Si tenemos un triangulo “ABC” y el punto P entonces los triangulos “ABP”, “BCP” y “CAP” ,deberán tener la misma dirección que el triangulo principal “ABC”.
En caso contrario el punto estará fuera del triangulo.

imagen2

Aquí les dejo el ejemplo en AS3, pueden mover los puntos ABC y verificar si el punto P esta adentro o afuera.

(claro que en Flash eso podría hacerce con un simple hiTestPoint pero esta véz solo usamos matemática para obtener el resultado así lo podemos programar en cualquier lenguaje).

Puedes descargarlo el ejemplo aquí “point_in_triangle.rar”

Saludos

8 Responses to “Un punto dentro de un triangulo”

  1. Muy interesante, y muy breve.
    Y que tal si tuvieramos un tetraedro y un punto en el espacio?

  2. me parece bien que habran paginas para poder opinar sobre internet y haci presentar nuestras dudas o propuestas para poder mejorar la informacion .

  3. Creo que llego un poco tarde, pero esta forma de comprobar si un punto esta dentro de un triangulo no funciona para todos los casos. si los 4 puntos pertenecen a la misma recta (ya lo sé, entonces no es un triangulo, pero es que me encontre con el problema XD) todas las configuraciones tendran la misma orientación.

    De todas formas, es una forma elegante si se va a usar en entornos controlados ;)

    Saludos!

  4. The best information i have found exactly here. Keep going Thank you

  5. Hi, interest post. I’ll write you later about few questions!

  6. You know, I don’t read blogs. But yours is really worth beeing read.

  7. Hi! I like your srticle and I would like very much to read some more information on this issue. Will you post some more?

  8. Llego un pelin tarde ;P

    Hay una forma más eficiente, sencilla, intuitiva y por lo tanto elegante, muy utilizada en los trazadores de rayos de conocer si un punto está contenido en un triángulo.

    De hecho, permite incluso saber si el punto está contenido en 3D.

    Teniendo los puntos del triángulo ABC y el punto de posible intersección P definimos:
    A = Area del Triangulo ABC
    A1 = Area del triangulo ABP
    A2 = Area del triangulo APC
    A3 = Area del triangulo PBC

    Matemáticamente, es exacto que, si A1+A2+A3 = A, entonces y sólo entonces P está contenido en ABC.

    Para utilización en programación, debemos admitir cierto margen de tolerancia proporcional a la magnitud de A, de modo que si A1+A2+A3 < A + d, entonces podemos suponer que P pertenece al triangulo ABC

    La misma idea es ampliable a tetraedros y volúmenes.

Discussion Area - Leave a Comment