Hasta ahora hemos trabajado en consola, con aplicaciones muy poco agradables a la vista En la actualidad la mayoría de los programas hacen uso del modo grafico, ventanas, uso del mouse, etc. Nosotros revisaremos una librería que nos permitirá construir aplicaciones graficas: GraphApp Trabaja bajo varios sistemas operativos: Windows, Linux, Macintosh Permite dibujar líneas, rectángulos, círculos, etc Nos permitirá crear aplicaciones bajo Windows, con botones, cajas de texto, etc. Librería Gráfica
Antes de empezar a conocer cada una de las funciones de una librería, debemos comprender la "abstraccion" utilizada para crear esta librería Para la librería grafica, las áreas de trabajo se dividen en: Ventana (Window) Área de Dibujo (Drawing) En la pantalla pueden crearse ventanas, y En cada ventana puede crearse una área de dibujo. El Modelo de Graphapp Ventana Área de Dibujo
Todo lo que se desee añadir o dibujar deberá tener: Un punto de inicio Ancho Alto El Modelo de Graphapp El sistema de coordenadas asume que el punto inicial(0,0) esta ubicado en la esquina superior izquierda La unidad de medida de los ejes x y y es el píxel Los valores en x avanza de izq. a der. Los valores en y avanzan de abajo hacia arriba
Un ejemplo sencillo, es escribir Hola Mundo en la ventana grafica Hola Mundo #include < graphapp.h>
void main() { gprintf("Hello worldn"); }
Se usa para imprimir texto en la ventana actual. Tiene la misma forma de uso que printf
Dibujar Líneas #include < graphapp.h>
void main() { point a = pt(10,10); point b = pt(10,40); point c = pt(50,40);
drawline(a, b); drawline(b, c); drawline(c, a); }
void drawline(point p1, int coordy) Permite dibujar una línea entre los puntos p1 y p2 point a; declara un punto(x,y) point pt(int coordx, int coordy)
Las librerías usualmente, contienen funciones, pero también pueden contener nuevos tipos de datos. GraphApp ofrece para dibujar: point, nos permite trabajar un puntos en un area(x,y) point p1; rects, nos permite trabajar con rectángulos. Todos los rectángulos tendrán coordenadas de inicio, ancho y alto rect r; Como le asigno datos? Asignar a p1, las coordenadas 3,4 p1 = pt(3,4); Asignar a r, las coordenadas (10,10), el ancho 80 y el alto 10 rectangle r = rect(10,10,80,10);
Más Sobre Los Dibujos
Entre las funciones mas populares que ofrece GraphApp para dibujar: Mas Sobre Los Dibujos
Ejemplo: Dibujar Un Rectángulo #include < graphapp.h>
void main() { rect r = rect(10,10,80,10);
setcolour(Red); drawrect(r);
setcolour(Blue); fillrect(rect(10,40,80,10)); }
void setcolour(rgb c); Permite cambiar el color actual, por el especificado por c Los colores posibles son: Transparent ,Black ,White ,Blue ,Yellow ,Green ,Magenta ,Red ,Cyan ,Grey ,Gray ,LightGrey ,LightGray ,DarkGrey ,DarkGray ,DarkBlue ,DarkGreen ,DarkRed ,LightBlue ,LightGreen ,LightRed ,Pink ,Brown ,Orange ,Purple ,Lime
Creando Ventanas void main() { window w; w = newwindow("A Window", rect(0,0,170,100),StandardWindow); show(w); mainloop(); } window newwindow(string titulo,rect r,int flag); crea una nueva ventana con un titulo, encerrada en el rectángulo r, con pero no la muestra aun void show(window w); muestra la ventana w en la pantalla void mainloop(); Siempre va al final de un programa que use ventanas
La ventana se va a "redibujar", cuando se maximice, cuando se le cambie de tamaño, etc. Si se desea especificar que alguna "tarea" deba realizarse cuando la ventana se redibuja void setredraw(control c, drawfn fn); donde c, es un control (botón, caja de texto, combo, etc.) y fn es un procedimiento que recibe dos parámetros, la ventana sobre la que se va a trabajar, y el rectángulo de dicha ventana. Este representa a la "tarea" que se va a ejecutar cuando la ventana se "dibuje" Especificando Tareas
Redibujando #include < graphapp.h>
void DibujarEnVentana(window w, rect winrect);
void main(){ window w;
w = newwindow("Rectangles", rect(0,0,170,100), StandardWindow); /* * Cuando se dibuje la ventana, se ejeutara * la tarea Dibujar en Ventana */ setredraw(w, DibujarEnVentana); show(w); mainloop(); }
void DibujarEnVentana(window w, rect winrect){ rect r = rect(10,10,80,10); setcolour(Red); drawrect(r); setcolour(Blue); fillrect(rect(10,40,80,10)); }
Cada vez que la ventana se "redibuje", se ejecutara el procedimiento DibujarEnVentana
Dibujos: Especifique puntos con pt(x,y) Especifique rectángulos con rect(x,y,ancho,alto) Puede dibujar formas geométricas con drawline, drawrect, fillrect etc. Puede cambiar el color de sus dibujo con setcolour(Green) Ventanas: Cree ventanas con newwindow. Ejemplo: newwindow("Name", rect(0,0,400,300), StandardWindow) Asigne una tarea al momento en que se dibuja una ventana usando: setredraw(w, fn) Muestre su ventana con show(w) Termine su programa principal con mainloop() Resumen
Página siguiente |