Post on 14-Jul-2022
ProgramaciónPrimavera 2010
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
Proyecto Grafico
� Para hacer uso del ambiente grafico se debe crear un proyecto con este modo de operación
� Selecciona, Nuevo->Proyecto
Proyecto Grafico
� En la siguiente ventana selecciona consola grafica
� Introduce el nombre de tu proyecto
Proyecto Grafico
� En seguida, elige la ruta donde vas a guardar tus archivos.
Proyecto base
� Se crea un proyecto base el cual puedes modificar o sustituir por tu programa
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
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;
}
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.
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;
}
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
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.
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;
}
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;
}
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
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;
}
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)
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;
}
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.
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;
}
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;
}
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
}
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
}