Este es mi primer aportación al blog, que como el titulo menciona vamos a obtener la intersección de una arista con un vértice.
Para comenzar primeramente necesitamos obtener el angulo entre dos puntos, para esto vamos a utilizar una función que esta implementada en la biblioteca de math.h llamada atan2, la cual nos regresa el angulo en radianes entre los dos puntos y necesita 2 parámetros atan2(double y, double x), los cuales son delta X y delta Y de los dos puntos.
Supongamos que tenemos los siguientes puntos y queremos crear la flecha que vaya de P2 a P1,
entonces la obtención del angulo quedaría algo así:
angulo = atan2( (double) P2.y - P1.y, (double) P2.x - P1.x )
Luego que obtuvimos el angulo de la arista, lo que tenemos que hacer es obtener el punto con el que intersecta la arista con el vértice, para esto tenemos que descomponer el angulo en sus componentes(x,y) y multiplicar cada una de estas por el radio del vértice, para obtener la componente X se utiliza el coseno y para la componente Y se utiliza el seno, después de que hayamos obtenido las dos componentes se las tenemos que sumar al punto P1, para obtener la intersección.
La forma en que obtendríamos la intersección seria de la siguiente manera:
x =(int)(cos(angulo)*radio);
y =(int)(sin(angulo)*radio);
P1.Offset(x, y);
Si quisiéramos obtener ahora la intersección con P2 se seguiría el mismo proceso solo que ahora tenemos que invertir los puntos de modo que P1 sea P2 y viceversa.
Espero que ha alguno le sirva y que no se les olvide comentar.

No hay comentarios:
Publicar un comentario