int draw( int tipo_grafico, color, modo_dibujado, región, x0, y0, x1, y1 )


Retorna:

 El identificador de la primitiva gráfica pintada.

Descripción:

Se trata de una función genérica capaz de representar varias primitivas gráficas en pantalla (como líneas, cajas y círculos). Se deben indicar los siguientes parámetros:

tipo - Tipo de primitiva, dentro de los siguientes:

 d_line           // Línea recta su valor es 1
 d_rectangle      // Rectángulo su valor es 2
 d_fill_rectangle // Rectángulo relleno su valor es 3
 d_ellipse        // Elipse su valor es 4
 d_fill_ellipse   // Elipse rellena es 5

color - Color de tinta para la primitiva (de 0 a 255, como un color de la paleta).

modo - Modo de dibujado: 0 opaco y 1 transparente.

región - Número de región (ventana dentro de la pantalla) en la que se debe pintar la primitiva; normalmente este valor será 0 para poder imprimir la primitiva en cualquier posición de la pantalla. Para definir una región se debe utilizar la función define_region().

x0, y0 - Punto inicial de la recta, o la esquina superior izquierda de la caja que contiene al rectángulo o elipse.

x1, y1 - Punto final de la recta, o la esquina inferior derecha de la caja que contiene al rectángulo o elipse.

Cuando se pinta una primitiva con draw() esta permanecerá fija en pantalla hasta que se mueva con move_draw(), o se elimine con delete_draw().

El identificador de la primitiva devuelto por la función draw() será necesario para mover o borrar dicha primitiva.

El sistema de representación de estas primitivas gráficas es muy similar al sistema de textos; se pintan con write() y permanecen hasta que se muevan con move_text() o se eliminen con delete_text().

Nota: Se puede controlar la prioridad de impresión de las primitivas gráficas mediante la variable global predefinida draw_z.


int contador,
    tipo,
    color,
    opacidad, x, y, x2, y2;

MAIN_PROGRAM_CDIV
BEGIN_PROGRAM 

    //Definimos el modo grafico
    set_gfx(GFX_AUTODETECT_WINDOWED);

    //Definimos la resolución
    set_mode(m320x200);

    write(0,0,0,0,"Pulse ESC para terminar ...");

    do{
        for( contador = 0; contador < 10; contador++){
            tipo = rand(1,5);
            color = rand(0,255);
            opacidad = rand(0,1);
            x = rand(0,319);
            y = rand(0,199);
            x2 = rand(0,319);
            y2 = rand(0,199);

            // Pinta una primitiva gráfica

            draw(tipo, color, opacidad, 0, x, y, x2, y2);
        }

        FRAME;
        delete_draw(all_drawing);
    }LOOP;

END_PROGRAM

Este programa ejemplo representa en pantalla 10 primitivas gráficas cuyas características son seleccionadas al azar mediante la función rand(), y tras dar una imagen con FRAME, las borra con la función delete_draw().

El proceso se repite hasta que se detecta la tecla ESC.


Ver: move_draw() - delete_draw() - draw_z