Programación Primavera 2010

Anuncio
Programación
Primavera 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, click
derecho, 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
posiciones crecen hacia la derecha y
hacia abajo.
Ejemplo 2
int main()
{
initwindow(400,300); //open a 400x300 graphics window
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();
return 0;
}
//close graphics window
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:
SOLID_LINE
DOTTED_LINE
ENTER_LINE
DASHED_LINE
USERBIT_LINE
0
1
2
3
4
Solid line
Dotted line
Centered line
Dashed line
User-defined line style
Cambiando Estilo de Línea
El ancho de la línea se puede seleccionar
con estos valores
NORM_WIDTH
THICK_WIDTH
1
3
1 pixel wide
3 pixels wide
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 window
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();
return 0;
}
//close graphics window
Ejemplo 4
int main()
{
initwindow(400,300); //open a 400x300 graphics window
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);
line(100,50,100,250);
line(200,50,200,250);
line(300,50,300,250);
waitForLeftMouseClick();
closegraph();
return 0;
}
//close graphics window
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:
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 window
setlinestyle(SOLID_LINE, 1, THICK_WIDTH);
setcolor(RED);
line(50,80,350,80);
line(50,150,350,150);
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();
return 0;
}
//close graphics window
circle(x, y, radius);
La función circle dibuja un circulo con
centro en (x,y) y radio radius.
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 window
setlinestyle(SOLID_LINE, 1, THICK_WIDTH);
setcolor(RED);
line(50,80,350,80);
line(50,150,350,150);
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();
return 0;
}
//close graphics window
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 window
maxx = 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 window
return 0;
}
Ejemplo: grafica del seno y
coseno
float 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 pixeles
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 blanco
y2 = -150*seno(x*2*M_PI/300)+150;
putpixel(x, y2, YELLOW); //marca un pixel en amarillo
}
waitForLeftMouseClick();
closegraph();
// Cierra la ventana 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 pixeles
for(x=0; x <=300; x++){
y1 = -150*coseno(x*2*M_PI/300)+150;
putpixel(x, y1, WHITE); // marca un pixel en blanco
y2 = -150*seno(x*2*M_PI/300)+150;
putpixel(x, y2, YELLOW); //marca un pixel en amarillo
}
waitForLeftMouseClick();
closegraph();
// Cierra la ventana gráfica
}
Descargar