Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Librería gráfica




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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)

    Monografias.com

    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

    Monografias.com

    Entre las funciones mas populares que ofrece GraphApp para dibujar:
    Mas Sobre Los Dibujos

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Monografias.com

    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

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter