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.

jueves, 6 de octubre de 2011

Instalar OpenGL en C#

Que onda chicos hoy este tutorial es todo el crédito de Eric Rios esperemos les ayude.

Para los alumnos que llevan la  clase de Graficacion con el profesor Adalid, pide como  requisito la utilización de la herramienta OpenGL para la realización del proyecto de esta materia. Se puede utilizar  cualquier  lenguaje. Aquí daremos la explicación de cómo  poder instalarlo en C# Visual Studio, esto porque  haciéndolo en este lenguaje se facilita mucho más.
Usaremos OpenGL por medio de la biblioteca Tao Framework, entonces lo primero que tenemos que hacer es descargar esta biblioteca:

http://sourceforge.net/projects/taoframework/


Una vez ya descargada la biblioteca la descomprimimos y la dejamos  en el escritorio (esto para poder localizarla con facilidad).
Después abrimos el Visual Studio y  creamos un proyecto nuevo (Archivo  Nuevo  Proyecto) y seleccionamos  y seleccionamos en C# aplicación de Windows Forms.

Una vez teniendo el proyecto hecho  es momento de instalar OpenGL.
Esto se hace de la siguiente manera:
Abrimos el Explorador de Soluciones del proyecto, y  damos clic derecho sobre el nombre de la aplicación y elegimos la opción de Agregar Referencia.

Después se abrirá una ventana para poder agregar referencias. Nos vamos a la Opción de Examinar.
En Buscar en: le damos la ruta donde tenemos la biblioteca, que si hicieron caso a la recomendación la biblioteca se encuentra en escritorio.

Llegamos a la carpeta de la biblioteca y abrimos la carpeta bin.  Estando ahí tenemos que agregar dos referencias. Las referencias son las siguientes:

Tao.Platform.Windows.dll
Tao.OpenGl.dll


Veremos que estas fueron agregadas abriendo el explorador de soluciones y en Referencias se verán las  dos que fueron agregadas.

Lo siguiente que se tiene que realizar es agregar el control que nos ayudara  a hacer uso de OpenGL. Esto se hace de la siguiente manera:

Estando en la forma del proyecto, en el cuadro de Herramientas de la forma damos clic derecho y seleccionamos la opción de elegir elementos.

Nos abrirá una ventana donde están agregados todos los controles  de la forma, en la opción Examinar volvemos a  dar la ruta para poder llegar a la carpeta de la biblioteca y abrimos la carpeta bin nuevamente y seleccionamos el archivo Tao.Platform.Windows.dll  y  este nos agregara el control en el explorador de controles. Solo es cuestión de  seleccionarlo el cual lo encontraremos con el nombre de SimpleOpenGlControl  y le damos en Aceptar.

Para ver si nuestro control  se instalo correctamente, lo buscamos en el explorador de herramientas el cual tiene un icono de  engrane. Para poder hacer uso de este es igual que los demás  controles, solo es cuestión de arrastrarlo a la forma. Y de esta forma  se puede utilizar OpengGl en C#.


Espero y les sea ayuda este pequeño tutorial para poder  instalar OpengGl en C#, lo siguiente es la inicialización de esta herramienta. Próximamente un tutorial para poder llevarla a acabo…
Contribución de Eric Ríos.

Linea de Rastreo

El algoritmo presentado a continuación considera polígonos cóncavos al igual que convexos, incluyendo aquellos
que puedan tener huecos internos o intersectados por si mismos.
La siguiente figura ilustra el procedimiento de la línea de rastreo para el llenado  sólido de  polígono.

 Para cada línea de rastreo que cruza un polígono el algoritmo de llenado de áreas debe:

· localizar los puntos de intersección de la línea de rastreo con las aristas del polígono,
· definir los intervalos de llenado (spans) para cada línea de rastreo.
Esto se repetiría para todas las líneas de rastreo que intersectan el polígono.


ejemplo


Para comenzar es necesario obtener los siguientes datos de cada linea :
     1.-la Y máxima de la arista
     2.- la X de la Yminima de la arista
     3.-la inversa de la pendiente (1/m)

para comenzar a obtener los valores de cada arista que compone el polígono comensaremos por obtener la pendiente y su inversa a partir de la formula  m=(y2-y1) / (x2-x1)

1 paso calcular los datos de las aristas:
(en este ejemplo solo se calculara la de b pero es el mismo procedimiento para todas)

para obtener los datos del la arista b [ 1/m , Ymax , X de ymin ]
b [ 1/5 , 13 , 10]

2) la forma mas sencilla es hacer una tabla donde la primera columna sera desde Y menor de la arista hasta la Y max y la segunda columna iniciara en X de ymin e ira incrementando deacuerdo al valor de 1/m

Para cada arista se repiten estos pasos asi que podrian calcularse en una misma tabla tomando de referencia solo la Y min del polígono y la Y max del polígono e ir calculando en la tabla los valores de X de cada arista dependiendo de la Y en la que se encuentre ejemplo

Y
Arista
   a
Arista
    b
3
   -
10
4
4
10(1/5)
5
3(7/8)
10(2/5)
6
3(6/8)
10(3/5)
7
3(5/8)
10(4/5)
8
3(4/8)
11
9
3(3/8)
11(1/5)
10
3(2/8)
11(2/5)
11
3(1/8)
11(3/5)
12
3
11(4/5)
13
-
12


los valores de la arista a para Y=3 y Y=13 no se calculan ya que la arista a va de Ymin= 4 a Ymax =12
este proceso se repite para todas las aristas

después de esto se acomodan los puntos para cada y de menor a mayor y se gráfican en pares tomando en cuenta la restricción de que se eliminan las intersecciones repetidas cuando coinciden con un vértice que no es máximo ni mínimo

Referencia documental:
http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Grafica/Relleno.pdf

Bienvenida

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).

El blog esta dividido en entradas(temas de conv) diferentes dependiendo de la materia para que los temas no se revuelvan

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.



Sugerencias

Que onda chavos aquí pueden solicitar a cualquiera de los administradores que agregue temas o materias en las que quieran aportar algo o tengan dudas solo comenten aquí y alguno de los administradores habilitara la entrada correspondiente

Noticias

Noticias no disponibles

Tips para proyectos

En mi opinión personal es mejor si ustedes dependen mas del sw que del hw es decir pueden hacer proyectos que no lleven mucha parte mecanica y el fuerte sea mas la programación ya que si salen errores es mas facil corregir el programa y volver a grabar la eprom que modificar la circuiteria

Axel decia en uno de las entradas pasadas que era importante cablear plano. Muy importante, para evitar ruidos y que el sistema minimo no genere datos raros
(este sistema minimo es de Seth) muy buen cableado