Usted puede notar que su dibujo aparece mucho
mayor o más pequeño (generalmente más pequeño) en la página que en la pantalla.
La razón es que fue ploteado en unidades de pixel. Su impresora probablemente
tiene un diferente tamaño de pixel que el de su pantalla. Mientras sea posible
utilizar las funciones CTRL() y FID() para determinar
tamaños de pixeles tanto para impresora como pantalla, es mucho más fácil de
dibujar simplemente de unidades absolutas.
El mnemónico 'DRAWNITS' selecciona unidades de dibujo. 'DRAWUNITS'(0)
selecciona pixeles, que es lo que se asume por omisión. 'DRAWUNITS'(1) selecciona
milésimas de pulgada.
!CAUTELA! Los ítems dibujados en unidades de pixel no aparecerán
del mismo tamaño absoluto cuando se imprimen. Utilice milésimas de pulgada ('DRAWUNITS'(1))
para la mayor parte de aplicaciones impresas.
Vamos a limpiar la ventana al color background actual ('CLEARBG')
y redibujar el círculo utilizando milésimas de pulgada.
0032 PRINT (1)'CLEARBG'
0034 PRINT (1)'DRAWUNITS'(1)
0040 PRINT (1)'ARC'(1000,1000,300)
Esta vez estamos dibujando el círculo con
mayores números, desde unas unidades que ahora son muy pequeñas. Este círculo
tiene un radio de tres décimos de una pulgada, y es ploteado en una pulgada
a lo largo de cada dimensión de la esquina de la superficie de dibujo.
¡CUIDADO! Muchas impresoras no pueden dibujar
la página completa. Así, la superficie dibujada es situada en una dirección
desde de la esquina de la página. Si usted necesitara recuperar estas cantidades
de margen, usted puede utilizar la función CTRL().
Hay muchas, muchas funciones más para dibujo. Los mnemónicos
proveen apoyo para colores variables, modos de relleno, patrones de pluma, y
montones de diferentes formas y modos de dibujo. Quizás el mnemónico para dibujo
más útil es 'IMAGE', el cual permite plotear un bitmap desde un archivo .BMP.
Pruebe el siguiente ejemplo:
0010 REM "Mostrar BMP's
0020 BEGIN
0030 PRINT 'CS',"Este programa muestra los archivos .BMP del directorio
que indique.",'LF',"Dar directorio a revisar:",
0040 LET path$="c:\windows" INPUTE 26,1,30,"_",path$;IF
path$="" THEN GOTO final
0050 LET a=POS(path$(LEN(path$))="/\");IF a THEN LET path$=path$(1,a-1)
0060 OPEN (1,ERR=0030)path$; LET c=UNT
0070 REM
0080 ver_si_es_bmp:
0090 READ RECORD(1,END=final)fil$;IF POS(".BMP"=CVS(fil$,4))=0 THEN
GOTO ver_si_es_bmp
0100 OPEN (c)"X0"; PRINT (c)'WINDOW'(131,69,397,355,fil$,$$)
0110 PRINT (c)'IMAGE'(64,64,64,64,path$+"\"+fil$)
0120 PRINT (c)'SHOW'(0)
0130 WAIT 2; CLOSE (c)
0140 GOTO ver_si_es_bmp
0150 REM
0160 final:
0170 END
Adjunto un ejemplo del uso de 'PSETUP' y 'PWINDOW' para imprimir una ventana GUI.
0010 OPEN (1)"X0"
0020 PRINT (1)'WINDOW'(50,50,300,200,"",$01$)
0030 PRINT (1)'TRACK'(0)
0040 PRINT (1)'DRAWUNITS'(1)
0050 PRINT (1)'WORLD'(0,0,8000,10540)
0060 PRINT (1)'VIRTUAL'(0,0,8000,10540)
0070 PRINT (1)'IMAGE'(0,0,8000,10450,"Logotipo.bmp",1)
0080 PRINT (1)'PSETUP'
0090 PRINT (1)'PWINDOW'
0100 END
|