Graficacion en 3d

14
a) Definiciones previas. Pixel.- Unidad gráfica . Representa un punto en la pantalla. Un pixel se define a traves de un par (x,y). El tamaño de la pantalla depende de la resolución que hallamos seleccionado para trabajar. Funciones BGI.- Funciones capaces de dibujar figuras en la pantalla gráfica estan contenidas en la libreria graphics.h. Notación cast.- Sirve para la conversión de tipos de datos se emplea para expresar el uso de un determinado valor al inicio de una expresión. Puertos.-Son los puntos de interacción con el medio. Fisicamente son circuitos electrónicos a los cuales podemos colocar valores. Los puertos en general son de líneas empleadas para controlar periféricos. Por ejemplo el puerto paralelo sirve para controlar la impresora. Todo puerto siempre tiene un valor único llamado identificador o dirección. Si conocemos la dirección de un puerto es posible realizar en el operaciones de escritura y/o lectura. Desde luego que debemos verificar si las líneas del puerto permiten operaciones de lectura o escritura. b) Pasos a ejecutar en BORLANDC 3.1 1. Inicializando el modo gráfico Cada programa que maneje graficos debe seguir ciertos pasos. Lo primero es setear el modo gráfico en el monitor que tenemos. Al terminar el programa debemos restituir el modo texto. La función que permite inicializar el modo gráfico se llama initgraph: initgraph(int far *gdriver, int far *gmode, char far *drive_path); La función initgraph esta contenida en el archivo graphics.h que debe estar incluida al inicio del programa. Los dos primeros valores son apuntadores a valores enteros y continen valores lógicos para el adaptador de video y para el modo. El tercer parámetro especifica el archivo gráfico a usar (los archivos gráficos están contenidos en la carpeta C:\BC31\BGI . Antes de terminar el programa es necesario cerrar el modo gráfico eso se hace a través de la instrucción: closegraph();

Transcript of Graficacion en 3d

a) Definiciones previas.

Pixel.-Unidad grfica . Representa un punto en la pantalla. Un pixel se define a traves de un par (x,y). El tamao de la pantalla depende de la resolucin que hallamos seleccionado para trabajar.Funciones BGI.-Funciones capaces de dibujar figuras en la pantalla grfica estan contenidas en la libreria graphics.h.Notacin cast.-Sirve para la conversin de tipos de datos se emplea para expresar el uso de un determinado valor al inicio de una expresin.Puertos.-Son los puntos de interaccin con el medio. Fisicamente son circuitos electrnicos a los cuales podemos colocar valores. Los puertos en general son de lneas empleadas para controlar perifricos. Por ejemplo el puerto paralelo sirve para controlar la impresora.Todo puerto siempre tiene un valor nico llamado identificador o direccin. Si conocemos la direccin de un puerto es posible realizar en el operaciones de escritura y/o lectura. Desde luego que debemos verificar si las lneas del puerto permiten operaciones de lectura o escritura.

b) Pasos a ejecutar en BORLANDC 3.1

1. Inicializando el modo grficoCada programa que maneje graficos debe seguir ciertos pasos. Lo primero es setear el modo grfico en el monitor que tenemos. Al terminar el programa debemos restituir el modo texto. La funcin que permite inicializar el modo grfico se llama initgraph:

initgraph(int far *gdriver, int far *gmode, char far *drive_path);

La funcin initgraph esta contenida en el archivo graphics.h que debe estar incluida al inicio del programa. Los dos primeros valores son apuntadores a valores enteros y continen valores lgicos para el adaptador de video y para el modo. El tercer parmetro especifica el archivo grfico a usar (los archivos grficos estn contenidos en la carpetaC:\BC31\BGI. Antes de terminar el programa es necesario cerrar el modo grfico eso se hace a travs de la instruccin:closegraph();

2. Algunas funciones para el trazado de curvasa) Dibujo de lneas .-Una vez inicializado el modo grfico, contamos con un espacio en el cual podemos graficar cualquier curva. La coordenada inicial esta en la esquina superior izquierda del monitor y vale (0,0) en tanto que la inferior derecha depender de la tarjeta de video que tenga nuestro computador. En el caso de una VGA es (650,480). A estas se les llama coordenadas absolutas.Tambien existe un cursor que al inicio esta en la posicin (0,0) y que se mueve aplicamos las funciones que terminan en to (ejemplo moveto).

putpixel(x1,y1);Coloca un punto en la pantalla indicado por el par (x1,y1). El color por defecto es blanco. La funcin no afecta el cursor

line(x1,y1,x2,y2);Grafica una lnea recta desde el punto (x1,y1) hasta (x2,y2). La funcin no afecta el cursor.

lineto(x1,y1)Dibuja una lnea desde la actual posicin hasta (x1,y1) y mueve el cursor a la posicin (x1,y1).

setlinestyle(estilo, patron, ancho)Permite variar el tipo de lnea. El parmetro estilo puede ser SOLID_LINE, DOTTED_LINE,CENTER_LINE, DASHED_LINE. El segundo parmetro es el patrn a usar, puede ser: EMPTY_FILL, SOLID_FILL, LINE_FILL, .... etc. Estos estan definidos en el archivo graphics.h. EL tercer parmetro determina el grosor de la lnea puede ser NORM_WIDTH (1 pixel) o THICK_WIDTH (3 pixels).

rectangle(x1,y1,x2,y2)Traza un rectangulo definido por 2 de sus vrtices

arc(x1, y1, ang_ini, ang_fin, r)Dibuja un arco cuyo centro es x1,y1, y va desde el ngulo ang_ini hasta ngulo ang_fin, con un radio determinado por r.

circle(x1,y1,r)Dibuja un crculo con centro en (x1,y1) con radio r.

ellipse(x,y,ang_ini,ang_fin,rx,ry)Traza una ellipse con centro en x,y, desde el ngulo ang_ini hasta el ngulo ang_fin con los radios rx (para el eje x) y ry (para el eje y).

setfillstyle(patron color)Permite cambiar el tipo de llenado en un patron y color determinado

outtextxy(x,y,cadena)Escribe la cadena en la posicion (x,y). La funcin no afecta el cursor.

getmaxx()Obtiene la cantidad maxima de pixels en x del actual modo grafico que se esta trabajando

getmaxy()Regresa la cantidad mxima de pixel en el eje y

Existe una gran variedad de funciones que para el manejo de grficos que estn contenidas en graphics.h. Cada una de ellas puede ser hallada en el help con un ejemplo. Sugerimos la lectura de las mismas y la prueba de los ejemplos all contenidos.

Ejemplo:Disee un programa que imprima un crculo en la pantalla y en el centro escriba Ingeniera Mecanica

#include #include #include #include

int main(void){int gdriver = DETECT, gmode;int x,y;

initgraph(&gdriver, &gmode, "c:\\bc31\\bgi");x=getmaxx()/2;y=getmaxy()/2;circle(x,y,100);outtextxy(x-80,y,"Ingenieria Mecanica");getch();closegraph();return 0;}

Ejemplo:Escriba un programa que grafique el seno. Considere grados hexadecimales no radianes (2*Pi rad= 360 hex). La grafica barrera desde 0 hasta getmaxx(). Luego varie para que vaya de 0 a 360.

#include #include #include #include

int main(void){int gdriver = DETECT, gmode;int i,x,y;float angulo,p,u;

initgraph(&gdriver, &gmode, "c:\\bc31\\bgi");x=getmaxx();y=getmaxy()/2;u=y/2;moveto(0,y);for(i=0;i