miércoles, 18 de septiembre de 2013

U2-ACT3-Resumen cap 2-Transformaciones Geometricas

Transformaciones
Geométricas
Transformaciones bidimensionales
Traslación
Se aplica una traslación en un objeto para cambiar su posición a lo largo de la
trayectoria de una línea recta de una dirección de coordenadas a otra. Convertimos un
punto bidimensional al agregar las distancias de traslación, tta la posición de
coordenadas original (xy) para mover el punto a una nueva posición (x’y’).
2.1. x’ = x + tx’ y’ = y + ty
El par de distancia de traslación (txty) se llama vector de traslación o vector de
cambio.


Rotación
Se aplica una rotación bidimensional en un objeto al cambiar su posición a lo largo de la
trayectoria de una circunferencia en el plano de xy. para generar una rotación,
especificamos un ángulo de rotación  y la posición (xr, yr) del punto de rotación (o punto
pivote) en torno al cual se gira el objeto.

Escalación
Una transformación de escalación altera el tamaño de un objeto. Se puede realizar esta
operación para polígonos al multiplicar los valores de coordenadas (x, y) de cada vértice por
los factores de escalación sy spara producir las coordenadas transformadas (x’, y’):

2.10. x·syy·sy


COORDENADAS HOMOGENEAS Y REPRESENTACION MATRICIAL



En las aplicaciones de diseño y de creación de imágenes, realizamos traslaciones, rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones apropiadas. En este tema consideramos cómo se pueden volver a formular las representaciones de la matriz de modo que se pueden procesar de manera eficiente esas secuencias de transformación.
Es posible expresar cada una de las transformaciones básicas en la forma de matriz general con las posiciones de coordenadas P y P’ representadas como columnas de vector.



COMPOCICION DE TRASFORMACIONES BIDIMENSIONALES
Con las representaciones de matriz del tema anterior, podemos establecer una matriz para cualquier secuencia de transformaciones como una matriz de transformación compuesta al calcular el producto de la matriz de las transformaciones individuales. La creación de productos de matrices de transformación a menudo se conoce como concatenación o composición de matrices.

ROTACION PUNTO PIVOTE GENERAL
Con un paquete gráfico que sólo ofrezca una función de rotación para girar objetos con respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote seleccionado (xr, yr) al realizar la siguiente secuencia de operaciones de traslación-rotación-traslación:
1. Traslade el objeto de modo que se mueva la posición del punto pivote al origen de las coordenadas.
2. Gire el objeto con respecto del origen de las coordenadas.
3. Traslade el objeto de manera que se regrese el punto pivote a su posición original.

ESCALACION DEL PUNTO FIJO GENERAL
1. Traslade el objeto de modo que el punto fijo coincida con el origen de lascoordenadas.2.
2. Escale el objeto con respecto del origen de las coordenadas
3. Utilice la traslación inversa del paso 1 para regresar el objeto a su posición original.

TRANSFORMACION VENTANA AEREA DE VISTA
Algunos paquetes gráficos permiten que el programador especifique coordenadas de primitivas de salida en un sistema de coordenadas de mundo de punto flotante, usando las unidades que sean relevantes para el programa de aplicación: angstroms, micras, metros, millas, años luz, etcétera. Se emplea el término de mundo porque el programa de aplicación representa un mundo que se crea o presenta interactivamente para el usuario:
Como las primitivas de salida se expresan en coordenadas de mundo, hay que indicar al paquete de subrutinas gráficas cómo establecer la correspondencia entre las coordenadas de mundo y las coordenadas de pantalla (usaremos el término específico coordenadas de pantalla para relacionar este análisis específicamente con SRGP, pero podrían usarse dispositivos de impresión, en cuyo caso sería más apropiado el término coordenadas de dispositivo).


TRANSFORMACIONES DE COMPOSICION GENERAL Y DE EFICIENCIA COMPUTACIONAL
Una transformación bidimensional general, que representa una combinación de traslaciones, rotaciones y escalaciones se puede expresar como Los cuatro elementos rs ij son los términos multiplicativos de rotación -escalación en la transformación que implican sólo ángulos de rotación y factores de escalación. Los elementos trs x y trs  y son los términos de traslación que contienen combinaciones de distancias de traslación, coordenadas de punto pivote y de punto fijo, así como de ángulos de rotación y parámetros de escalación.
Dado que los cálculos de la rotación requieren evaluaciones trigonométricas y varias multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse una consideración importante en las transformaciones de rotación. En animaciones y otras aplicaciones que implican muchas transformaciones repetidas y ángulos de rotación pequeños, podemos utilizar aproximaciones y cálculos repetitivos para reducir los cálculos en las ecuaciones de transformación compuesta.
Cuando el ángulo de rotación es pequeño, se pueden sustituir las funciones trigonométricas con valores de aproximación con base en los primeros términos de sus expansiones de series de potencia.

REPRESENTACION MATRICIAL DE TRANSFORMACIONESTRIDIMENSIONALES
Así como las transformaciones bidimensionales se pueden representar con matrices de3 X 3 usando coordenadas homogéneas, las transformaciones tridimensionales se pueden representar con matrices de 4 X 4, siempre y cuando usemos representaciones de coordenadas homogéneas de los puntos en el espacio tridimensional.
La transformación de un punto a esta forma se denomina homogeneización, igual que antes. Además los puntos cuya coordenada W es cero se llaman puntos en el infinito. También existe una interpretación geométrica. Cada punto en el espacio tridimensional se representa con una línea que pasa por el origen en el espacio de cuatro dimensiones, y las representaciones homogeneizadas de estos puntos forman un sub-espacio tridimensional de un espacio de cuatro dimensiones definido por la ecuación W = 1.

COMPOCICION DE TRANSFORMACIONES TRIDIMENCIONALES

Las transformaciones geométricas básicas son la traslación, la rotación y la escalación. La traslación mueve un objeto con una trayectoria en línea recta de una posición a otra. La rotación mueve un objeto de una posición a otra a lo largo de una trayectoria circular sobre un eje de rotación específico. Para aplicaciones bidimensionales, la trayectoria de rotación se encuentra en el plano xy sobre un eje que es paralelo al eje z.

Las transformaciones de cambio de escala cambian las dimensiones de un objeto con respecto a una posición fija. Podemos expresar las transformaciones bidimensionales como operadores de matrices de 3 por 3 y las transformaciones tridimensionales como operadores de matrices de 4 por4, de tal forma que esas secuencias de transformaciones pueden concatenarse dentro de una matriz compuesta. En general, podemos representar tanto transformaciones bidimensionales como tridimensionales con matrices de 4 por 4.

U2-ACT2-piramide 3d






codigo(solido)
#include <GL/glut.h>

void display(void)
{

glColor3f (0.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (1.5, 0.0, 0.0);
glVertex3f (0.0, 0.0, 1.5);
glVertex3f (0.0, 5.0, 0.0);
glEnd();

glColor3f(0.60,0.5,0.70);
glBegin(GL_POLYGON);
glVertex3f (0.0, 0.0, 1.5);
glVertex3f (-1.5, 0.0, 0.0);
glVertex3f (0.0, 5.0, 0.0);
glEnd();

 glColor3f(1.0,0.0,0.0);
 glBegin(GL_POLYGON);
 glVertex3f (-1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glVertex3f (0.0, 5.0, 0.0);
 glEnd();

 glColor3f(0.0,1.0,0.0);
 glBegin(GL_POLYGON);
 glVertex3f (1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glVertex3f (0.0, 5.0, 0.0);
 glEnd();

 glColor3f(1.0,0.0,1.0);
 glBegin(GL_POLYGON);
 glVertex3f (1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, 1.5);
 glVertex3f (-1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glEnd();
 glFlush ();
}
void init (void)
{glOrtho(-2.0,2.0,-0.5,5.0,-2.5,5.0);}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize (400, 400);
    glutCreateWindow ("Ruben De La Cruz Venegas");
    init ();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}




codigo(lineas)

#include <GL/glut.h>

void display(void)
{

glColor3f (0.0, 1.0, 1.0);
glBegin(GL_LINE_LOOP);//glBegin(GL_POLYGON);
glVertex3f (1.5, 0.0, 0.0);
glVertex3f (0.0, 0.0, 1.5);
glVertex3f (0.0, 5.0, 0.0);
glEnd();

glColor3f(0.60,0.5,0.70);
glBegin(GL_LINE_LOOP);//glBegin(GL_POLYGON);
glVertex3f (0.0, 0.0, 1.5);
glVertex3f (-1.5, 0.0, 0.0);
glVertex3f (0.0, 5.0, 0.0);
glEnd();

 glColor3f(1.0,0.0,0.0);
 glBegin(GL_LINE_LOOP);//glBegin(GL_POLYGON);
 glVertex3f (-1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glVertex3f (0.0, 5.0, 0.0);
 glEnd();

 glColor3f(0.0,1.0,0.0);
 glBegin(GL_LINE_LOOP);//glBegin(GL_POLYGON);
 glVertex3f (1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glVertex3f (0.0, 5.0, 0.0);
 glEnd();

 glColor3f(1.0,0.0,1.0);
 glBegin(GL_LINE_LOOP);//glBegin(GL_POLYGON);
 glVertex3f (1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, 1.5);
 glVertex3f (-1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glEnd();
 glFlush ();
}
void init (void)
{glOrtho(-2.0,2.0,-0.5,5.0,-2.5,5.0);}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize (400, 400);
    glutCreateWindow ("Ruben De La Cruz Venegas");
    init ();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}

lunes, 9 de septiembre de 2013

U2-ACT1-Transformaciones Geometricas

TRANSFORMACIONES GEOMETRICAS EN 2 DIMENSIONES


Una transformación geométrica 2d  es una aplicación que hace corresponder a cada punto del plano otro punto del plano. Como consecuencia, las figuras se transforman en otras figuras.
Las transformaciones más usuales son las traslaciones, rotaciones, simetrías y las homotecias. Todas ellas mantienen la forma de las figuras, pero pueden disminuir el tamaño y cambiar la figura de posición.


 Traslación
Se aplica una traslación en un objeto para cambiar su posición a lo largo de la trayectoria de una línea recta de una dirección de coordenadas a otra. Convertimos un punto bidimensional al agregar las distancias de traslación, tx y ty a la posición de coordenadas original (x ,y) para mover el punto a una nueva posición (x’, y’).
Los polígonos se trasladan al sumar el vector de traslación a la posición de coordenadas de cada vértice y se vuelve a generar el polígono utilizando un nuevo conjunto de coordenadas y vértices y las especificaciones actuales de los atributos.
Traslación, de vector es una transformación geométrica que hace corresponder a cada punto P otro punto Pð tal que
.
Las traslaciones son movimientos directos, es decir, mantienen la forma y el tamaño de las figuras, a las cuales deslizan según el vector
.

Transformaciones geométricas



Rotación








Se aplica una rotación bidimensional en un objeto al cambiar su posición a lo largo de la trayectoria de una circunferencia en el plano de xy para generar una rotación, especificamos un ángulo de rotación θ y la posición (xr , yr) del punto de rotación (o punto pivote) en torno al cual se gira el objeto


Las Rotaciones son movimientos directos, es decir, mantienen la forma y el tamaño de las figuras.
CENTRO DE ROTACIÓN DE ORDEN N
Se dice que una figura tiene un centro de giro, O, de orden n (número natural mayor que 1) cuando se puede hacer coincidir consigo misma mediante giros de centro O y ángulos á·k/n (= 1, 2,…n). Para n la figura da una vuelta completa y, por tanto, vuelve a la posición inicial.

 ejemplo, el centro de un triángulo equilátero es un centro de giro de orden tres
Transformaciones geométricas

porque se puede hacer coincidir la figura consigo misma haciéndola girar ángulos de 120º, 240º y 360º alrededor de él.


Escalación.- Una transformación de escalación altera el tamaño de un objeto. Se puede realizar esta operación para polígonos al multiplicar los valores de coordenadas (x, y) de cada vértice por los factores de escalación sx y sy para producir las coordenadas transformadas (x’, y’). El factor de escalación sx escala objetos en la dirección de x, mientras que el factor de escalación sy lo hace en la dirección de y. Cuando se asignan el mismo valor a sx y sy’ se general una escala uniforme. Y cuando se asignan valores distintos a sx y sy se obtiene un escala diferencial. Podemos encontrar la localización de un objeto escalonado al seleccionar una posición llamada punto fijo, que debe permanecer sin cambio después de la transformación de escalación.
El escalamiento modifica el tamaño de un polígono. Para obtener este efecto, se multiplica cada par coordenado (x, y) por un factor de escala  en la dirección x y  en la dirección y para obtener el par (x', y').






miércoles, 4 de septiembre de 2013

actividad B

¿Qué son las imágenes rasterizadas?




Una imagen rasterizada esta compuesta de finos puntos llamados pixeles. Cuando estos pixeles son pequeños y puestos muy juntos, estos engañan al ojo y se ven como una imagen completa.
Las imágenes rasterizadas trabajan bien cuando subtle gradations de color son necesarias.
Debido a que continen un número fijo de pixeles, la mayor desventaja de las imagenes rasterizadas es que su calidad se ve afectada cuando se alargan o transforman las imagenes. También es grande su tamaño de archivo.
¿Qué es una imagen vectorial?
Los vectores son la descripción geométrica matemática de una imagen. Por este motivo, las imágenes vectoriales son la representación de uno o varios objetos geométricos, como líneas, polígonos, círculos, estrellas, espirales, etc.
Existen diferentes tipos de vectores o, expresándolo de otro modo, diferentes métodos matemáticos de describir una imagen. Por ejemplo, si se necesita describir la trayectoria de una curva se pueden utilizar uno de estos tres métodos matemáticos:



La principal aplicación de los vectores es el diseño gráfico, en los programas de dibujo técnico, o modelamiento de objetos tridimensionales.
Los formatos de vectores o la extensión del fichero que almacena el vector están muy ligados al tipo de software que se utiliza para crearlos o interpretarlos, y aunque existen maneras de convertir de un formato a otro, siempre existe pérdida de información en dicha conversión, pudiendo llegar a estropear la obra.
Formatos de imagen
Cuando trabajamos con imágenes, es muy importante elegir bien el formato adecuado. Veamos algunos ejemplos:
  • Al publicar fotografías en una página web o al enviarlas por correo electrónico, para que la transferencia no sea excesivamente larga, es muy importante el peso o Kbytes del archivo de imagen. En este caso, es recomendable el uso de formatos que utilicen compresión.
  • Para imprimir fotografías, donde el peso del archivo no tiene tanta importancia, se podrán usar otros formatos que ofrezcan más calidad que los utilizados para web. Lo mismo ocurre al hacer fotografías con las cámaras, la elección del formato se hará en función de lo que se desea obtener y de los procesos que desee realizar a posteriori el fotógrafo.
Para efectuar una elección adecuada de un formato de imagen, conviene valorar previamente:
  • El contenido de la imagen: foto, dibujo, gráfico, logotipo…
  • La calidad que se desea obtener en función de su destino: publicación en la web impresión en impresora doméstica. Impresión profesional,...
  • El tamaño que tendrá el archivo resultante.
A continuación vamos a ver los formatos de imagen más comunes, y al final se indicara cual elegir en función de las valoraciones señaladas.
Algunos formatos de mapa de bits son los siguientes:
  • BMP. Formato introducido por Microsoft y usado originariamente por el sistema operativo Windows para guardar sus imágenes.

  • GIF. Formato bastante antiguo desarrollado por Compuserve con el fin de conseguir archivos de tamaño muy pequeños. Admite solo 256 colores por lo que no es adecuado para imágenes fotográficas pero si es muy apropiado para logotipos, dibujos, etc. Permite crear animaciones (gif animado) y transparencias.


lunes, 2 de septiembre de 2013

3D CUBO

V0= 0,0,0
V1=6,0,0
V2=6,6,0
V3=0,6,0
V4=6,0,6
V5=6,6,6
V6=0,6,6
V7=0,0,6

practica: OpenGl.

Que es OpenGl:

OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 1992 y se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows.

Como instalar las librerías:

Descargar las librerías compiladas de OpenGL (OpenGL Utility Toolkit – GLUT) dehttp://user.xmission.com/~nate/glut.html
Tenemos que descargar el archivo comprimido en formato zip llamado glut-3.7.6-bin.zip. Tal como se indica en la página de descarga, estas librerías son compatibles con Windows 95, 98, Me, NT, 2000 y XP. Me queda comprobar en un futuro las librerías funcionan correctamente en Windows 7.

La librería GLUT fue programada por Mark Kilgard y la versión que descargamos es una portabilidad al sistema Win32 realizada por Nate Robins. Según dicen en la web estas librerías no están actualizadas desde el mes de Noviembre de 2001! Es esto normal?

Bien, como decía, descargamos el archivo comprimido glut-3.7.6-bin.zip y lo abrimos. Veremos que en el interior disponemos de 5 archivos. Podemos borrar los archivos llamados glut.def yREADME-win32.txt. Nos quedarán entonces 3 archivos: glut.h, glut32.dll y glut32.lib.

Recordemos tengo instalada una versión del software CodeBlocks que no incluye MinGW y que por lo tanto, MinGW lo he instalado en una carpeta a parte, en concreto en C:\MinGW. En el caso de que hubiéramos instalado la versión de CodeBlocks que incorpora MinGW tendríamos que acceder al directorio del programa CodeBlocks y localizar dentro de éste las carpetas correspondientes a MinGW, procediendo de igual modo con la instalación de los archivos.

-Copiamos el archivo glut32.lib en C:\MinGW\lib
-Copiamos el archivo glut.h en C:\MinGW\include\GL
-Copiamos el archivo glut32.dll en C:\WINDOWS\system32




CAPTURAS




PIRAMIDES



V0=0,0,0
V1=6,0,0
V2=0,0,6
V3=3,6,3



V0=0,0,0
V1=7,1,0
V2=7,1,2
V3=0,0,2
V4=3,7,0