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