draw()

draw(<tipo>, <color>, <opacidad>, <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:

  1 - Línea recta.
  2 - Rectángulo.
  3 - Rectángulo relleno.
  4 - Elipse.
  5 - Elipse rellena.

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

<opacidad> - Nivel de opacidad de la primitiva, de 0 a 15 (para permitir efectos de transparencia).

<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.


Programa ejemplo:
PROGRAM ejemplo_draw;

GLOBAL
    contador;
    tipo;
    color;
    opacidad;
    x0,y0;
    x1,y1;

BEGIN
    write(0,0,0,0,"Pulse ESC para terminar ...");
    REPEAT
        FROM contador=1 TO 10;
            tipo=rand(1,5);
            color=rand(0,255);
            opacidad=rand(0,15);
            x0=rand(0,319);
            y0=rand(0,199);
            x1=rand(0,319);
            y1=rand(0,199);

            // Pinta una primitiva gráfica

            draw(tipo,color,opacidad,0,x0,y0,x1,y1);

        END
        FRAME;
        delete_draw(all_drawing);
    UNTIL (key(_esc));
END


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.


Nota: Pueden representarse en pantalla un máximo de 256 primitivas gráficas simultáneamente.


Ver: move_draw() - delete_draw() - draw_z