Página 1 de 1

SEGMENTO DE UN PLANO

Publicado: Jue, 02 Abr 2009, 18:40
por robert_ng
Gráficamente se puede ver en la figura 1 que el punto p4 esta fuera del triangulo formado por los puntos p1,p2,p3 y que el punto p5 esta dentro del triangulo. Pero existe alguna propiedad ,identidad o algortimo matemático que me ayude a identificar cuando el punto(p4 o p5) esta fuera o dentro del triangulo. En este problema conocemos las coordenadas de los puntos p1,p2,p3,p4 y p5. Ya tengo una solución pero son muchos los pasos que se tienen que hacer y el algoritmo no es muy ortodoxo. Quisiera saber si alguien ya se ha topado con este problema y cual ha sido su forma de atacarlo.

Imagen

Publicado: Vie, 03 Abr 2009, 09:18
por fernandore
Si un punto Pj tiene por cordemadas (xj,yj).

La ecuacion de la recta q pasa por P1 y P2 sera
Y=(y1-y2)/(x1-x2)X+y2-x2(y1-y2)/(x1-x2)

La condicion para q un punto P4 este por encima de la recta anterior (la q pasa por p1 y p2) será:

y4>Y=(y1-y2)/(x1-x2)x4+y2-x2(y1-y2)/(x1-x2)

La condicion para q P4 este dentro del triangulo será q este por encima de la recta P1P2 y por debajo de P1P3 y P2P3.

y4<(y1-y3)/(x1-x3)x4+y3-x3(y1-y3)/(x1-x3) condicion para q este por debajo de P1P3

y4<(y3-y2)/(x3-x2)x4+y2-x2(y3-y2)/(x3-x2) condicion para q este por debajo de P2P3

Si y4 cumple las tres condiciones estara dentro del triangulo.
Si cumple 2 condiciones y en la otra condicion se produce una igualdad entonces P4 estara justo en el contorno del triangulo.

Salu2

Creo que no es correcta tu respuesta fernandore

Publicado: Vie, 03 Abr 2009, 21:21
por robert_ng
Gracias por tu respuesta, pero me parece que esta mal. Sin tomar en cuenta que las ecuaciones para calcular las rectas del triangulo estaban erroneas ( Y=(y1-y2)/(x1-x2)X+y2-x2(y1-y2)/(x1-x2) en todas las ecuaciones tienes el mismo error). Pero bueno, aun con las ecuaciones de las rectas correctas. Evaluemos el punto P5 (4,4)

En la primera condición que propones
y4>Y=(y1-y2)/(x1-x2)x4+y2-x2(y1-y2)/(x1-x2)
tenemos que Y=7
y4 < Y es decir 4 < 7
En ese caso no se cumple tu algoritmo.

Gracias

Publicado: Sab, 04 Abr 2009, 08:38
por fernandore
Es cierto q estaban erroneas,fue un error al transcribirlas del papel,ya las he editado.

Pero el algoritmo si q funciona,lo q ha ocurrido es q he permutado la nomenclatura de los puntos y he llamado P2 a P3 y viceversa,sorry.

Evaluemos el punto (4,4) p1(2,2) ,p2(6,3) y p3(4,7)

Condicion 1 y4>(y1-y2)/(x1-x2)x4+y2-x2(y1-y2)/(x1-x2) sustituyendo 4>(2-3)/(2-6)4+3-6(2-3)/(2-6)=5/2 CUMPLE

Condicion 2 y4<(y1-y3)/(x1-x3)x4+y3-x3(y1-y3)/(x1-x3) sustituyendo 4<(2-7)/(2-4)4+7-4(2-7)/(2-4)=7 CUMPLE

Condicion 3 y4<(y3-y2)/(x3-x2)x4+y2-x2(y3-y2)/(x3-x2) sustituyendo 4<(7-3)/(4-6)4+3-6(7-3)/(4-6)=7 CUMPLE

Salu2

Publicado: Mié, 08 Abr 2009, 10:13
por fernandore
Si todavia sigues interesado se me ha ocurrido otro algoritmo mas sencillo

Salu2

Sigue con problemas fernandore

Publicado: Mar, 14 Abr 2009, 20:18
por robert_ng
Recuerda que lo que intento es no basarme en un gráfico. Tu algoritmo funciona en este ejemplo porque en la primera condición estas evaluando con la recta correcta (P1P2), pero que tal si hubieras tomado la recta P1P3 para evaluar la primera condición. Quien me dice cual recta es la correcta?. Mi principal problema es que este algoritmo es para desarrollar un programa computacional y como tu sabes la PC no puede tomar esas decisiones hay que ser bien claros con ella. Por eso lo mejor es pensar en un algoritmo general (que funcione para todos los casos) que no le cause confución y que no necesite de orden de los puntos o saber en que parte del plano cartesiano se encuentran.

Publicado: Dom, 19 Abr 2009, 06:04
por fernandore
Para discrimnar q condicion tienes q poner,bastaria con realizar una comparacion inicial de las pendientes de dichos segmentos.
Tambien podrias implementar un algoritmo utilizando el producto escalar entre vectores.


Salu2