23
Programación Primavera 2010

Programación Primavera 2010 - Facultad de Ciencias de la

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programación Primavera 2010 - Facultad de Ciencias de la

ProgramaciónPrimavera 2010

Page 2: Programación Primavera 2010 - Facultad de Ciencias de la

Librería graphics.h

� La librería nos permite hacer uso de los gráficos en C para el compilador DEVC++

� Esta librería también nos permite tomar datos del ratón, tales como posición, clickdatos del ratón, tales como posición, clickderecho, click izquierdo, etc.

� La librería al igual que el manual se puede obtener de la siguiente dirección � http://usuarios.multimania.es/charlytospage/dev.htm

Page 3: Programación Primavera 2010 - Facultad de Ciencias de la

Proyecto Grafico

� Para hacer uso del ambiente grafico se debe crear un proyecto con este modo de operación

� Selecciona, Nuevo->Proyecto

Page 4: Programación Primavera 2010 - Facultad de Ciencias de la

Proyecto Grafico

� En la siguiente ventana selecciona consola grafica

� Introduce el nombre de tu proyecto

Page 5: Programación Primavera 2010 - Facultad de Ciencias de la

Proyecto Grafico

� En seguida, elige la ruta donde vas a guardar tus archivos.

Page 6: Programación Primavera 2010 - Facultad de Ciencias de la

Proyecto base

� Se crea un proyecto base el cual puedes modificar o sustituir por tu programa

Page 7: Programación Primavera 2010 - Facultad de Ciencias de la

Iniciando gráficos

� Los primero que se debe generar es la ventana de gráficos por medio de la función

� int initwindow(int width, int height)

� Esta función crea una ventana del ancho y alto especificado.

� El ancho y alto se especifica en pixeles

Page 8: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo

int main(void)

{

/* initialize graphics window at 400 x 300 */initwindow(400, 300);

/* draw a line */line(0, 0, getmaxx(), getmaxy());

/* clean up */system("pause");closegraph();return 0;

}

Page 9: Programación Primavera 2010 - Facultad de Ciencias de la

void line(int x1, int y1, int x2, int y2);

� La función line dibuja una línea de la posición (x1,y1) a la posición (x2,y2)

� Para seleccionar las posiciones adecuadas debemos considerar que adecuadas debemos considerar que posiciones crecen hacia la derecha y hacia abajo.

Page 10: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo 2

int main(){

initwindow(400,300); //open a 400x300 graphics wind ow

line(50,80,350,80);line(50,150,350,150);line(50,220,350,220);line(100,50,100,250);line(200,50,200,250);line(300,50,300,250);

waitForLeftMouseClick();

closegraph(); //close graphics windowreturn 0;

}

Page 11: Programación Primavera 2010 - Facultad de Ciencias de la

Cambiando Estilo de Línea

� setlinestyle(linestyle, upattern, thickness);� Esta función nos permite cambiar el estilo de

la línea sus valores son:� linestyle:� linestyle:

� SOLID_LINE 0 Solid line � DOTTED_LINE 1 Dotted line� ENTER_LINE 2 Centered line

� DASHED_LINE 3 Dashed line� USERBIT_LINE 4 User-defined line style

Page 12: Programación Primavera 2010 - Facultad de Ciencias de la

Cambiando Estilo de Línea

� El ancho de la línea se puede seleccionar con estos valores� NORM_WIDTH 1 1 pixel wide� THICK_WIDTH 3 3 pixels wide

� El patrón es la forma en la que se pinta la línea.

� El patrón es la forma en la que se pinta la línea.

� Por ejemplo una línea continua se dibuja con 0xFFFF.

� Este parámetro es para definir tu propio estilo de línea si no lo utilizas entonces pone el valor default 1.

Page 13: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo 3

int main(){

initwindow(400,300); //open a 400x300 graphics wind ow

setlinestyle(SOLID_LINE, 1, THICK_WIDTH);line(50,80,350,80);line(50,150,350,150);line(50,220,350,220);line(100,50,100,250);line(200,50,200,250);line(300,50,300,250);

waitForLeftMouseClick();

closegraph(); //close graphics windowreturn 0;

}

Page 14: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo 4

int main(){

initwindow(400,300); //open a 400x300 graphics wind ow

setlinestyle(CENTER_LINE, 1, NORM_WIDTH);line(50,80,350,80);line(50,150,350,150);line(50,220,350,220);setlinestyle (DASHED_LINE, 1, NORM_WIDTH);setlinestyle (DASHED_LINE, 1, NORM_WIDTH);line(100,50,100,250);line(200,50,200,250);line(300,50,300,250);

waitForLeftMouseClick();

closegraph(); //close graphics windowreturn 0;

}

Page 15: Programación Primavera 2010 - Facultad de Ciencias de la

Cambiando Estilo de Línea

� El color de la línea puede ser cambiado por medio de la siguiente función:� setcolor(color);

� Los posibles colores son:� Los posibles colores son:

Color Color Color

BLACK 0 BROWN 6 LIGHTCYAN 11

BLUE 1 LIGHTGRAY 7 LIGHTRED 12

GREEN 2 DARKGRAY 8 LIGHTMAGENTA 13

CYAN 3 LIGHTBLUE 9 YELLOW 14

RED 4 LIGHTGREEN 10 WHITE 15

MAGENTA 5

Page 16: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo 5

int main(){

initwindow(400,300); //open a 400x300 graphics wind ow

setlinestyle(SOLID_LINE, 1, THICK_WIDTH);setcolor(RED);line(50,80,350,80);line(50,150,350,150);line(50,220,350,220);line(50,220,350,220);setlinestyle(SOLID_LINE, 1, THICK_WIDTH);setcolor(GREEN);line(100,50,100,250);line(200,50,200,250);line(300,50,300,250); waitForLeftMouseClick();

closegraph(); //close graphics windowreturn 0;

}

Page 17: Programación Primavera 2010 - Facultad de Ciencias de la

circle(x, y, radius);

� La función circle dibuja un circulo con centro en (x,y) y radio radius.

� bar(left, top, right, bottom);� bar(left, top, right, bottom);� La función bar dibuja un rectangulo del

punto (left,top) al punto (right, bottom)

(left,top)

(right, bottom)

Page 18: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo 5

int main(){

initwindow(400,300); //open a 400x300 graphics wind ow

setlinestyle(SOLID_LINE, 1, THICK_WIDTH);setcolor(RED);line(50,80,350,80);line(50,150,350,150);line(50,220,350,220);line(50,220,350,220);circle(80,200,10);setlinestyle(SOLID_LINE, 1, THICK_WIDTH);setcolor(GREEN);line(100,50,100,250);line(200,50,200,250);line(300,50,300,250);bar(70,100,90,120); waitForLeftMouseClick();

closegraph(); //close graphics windowreturn 0;

}

Page 19: Programación Primavera 2010 - Facultad de Ciencias de la

putpixel(x, y, color);

� Esta función nos permite dibujar un pixel en la posición (x,y) y del color seleccionado

� getmaxx y getmaxy nos permiten encontrar los máximos valores de (x,y) para la ventana de gráficos.

Page 20: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo 5

#include <graphics.h>#include <stdlib.h>#define PIXEL_COUNT 10000

void waitForLeftMouseClick();

int main(){

int i,x,y,color,maxx,maxy,maxcolor;

initwindow(400,300); //open a 400x300 graphics windowmaxx = getmaxx()+1;maxy = getmaxy()+1;maxcolor = getmaxcolor()+1;for (i=0; i<PIXEL_COUNT; i++) {

x = rand() % maxx;y = rand() % maxy;color = rand() % maxcolor;putpixel(x, y, color);

}waitForLeftMouseClick(); closegraph(); //close graphics windowreturn 0;

}

Page 21: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo: grafica del seno y

cosenofloat seno(float x){

float serie = x, fact = 1, pot = x;int signo = -1;for(float i = 3; i <=40 ; i +=2){

fact *= (i-1)*i;pot *= x*x;serie += signo*pot/fact;signo = -signo;

}}return serie;

}

float coseno(float x){float serie = 1, fact = 1, pot = 1;int signo = -1;for(float i = 2; i <=40 ; i +=2){

fact *= (i-1)*i;pot *= x*x;serie += signo*pot/fact;signo = -signo;

}return serie;

}

Page 22: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo: grafica del seno y

coseno#include <graphics.h>#include <stdlib.h>#include <math.h>

void waitForLeftMouseClick();

float coseno(float);float seno(float);

main(){float x, y1, y2;initwindow(300,310); //ventana grafica de 400x310 p ixeles

for(x=0; x <=300; x+=0.1){y1 = -150*coseno(x*2*M_PI/300)+150;putpixel(x, y1, WHITE); // marca un pixel en blancoy2 = -150*seno(x*2*M_PI/300)+150;putpixel(x, y2, YELLOW); //marca un pixel en amaril lo

}waitForLeftMouseClick();closegraph(); // Cierra la ve ntana gráfica

}

Page 23: Programación Primavera 2010 - Facultad de Ciencias de la

Ejemplo: grafica del seno y

coseno#include <graphics.h>#include <stdlib.h>#include <math.h>

void waitForLeftMouseClick();

float coseno(float);float seno(float);

main(){float x, y1, y2;initwindow(300,310); //ventana grafica de 400x310 p ixeles

for(x=0; x <=300; x++){y1 = -150*coseno(x*2*M_PI/300)+150;putpixel(x, y1, WHITE); // marca un pixel en blancoy2 = -150*seno(x*2*M_PI/300)+150;putpixel(x, y2, YELLOW); //marca un pixel en amaril lo

}waitForLeftMouseClick();closegraph(); // Cierra la ve ntana gráfica

}