Bienvenida

Bienvenidos

Que onda chavos este es un blog para podernos ayudar mutuamente en las materias o diversas cosas esto no quiere decir que les pasaremos toda la tarea echa sino solo ayuda en especificas cosas para ayudarnos mejor Si quieren q agrege una entrada(o tema de conv me dicen). así que esperemos que les ayude :D Juan Manuel Hdz Liñan Gerardo Daniel Mtz A. Cesar Josue Acuña T.

miércoles, 5 de octubre de 2011

Interseccion de una arista con un vertice

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