[futurebasic] Re: [Q] Graphics Gurus

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : December 1997 : Group Archive : Group : All Groups

From: Rick Brown <rbrown@...>
Date: Wed, 10 Dec 1997 22:05:50 -0600
> So...it is better to draw to a gworld, and copybits to a smaller rect and
> offer magnification/reduction? Or can you build a window, use PICTURE
> ON/OFF to capture the plot and make a picture from it, even if the window
> won't fit on the screen?
> 
> And anyone have any good ways to do enlargments or reductions while still
> maintaining the integrity of the original chart?
> 
> Lastly, I'll probably need to print this chart in reduced to fit mode. If
> its plotted at 72 dpi, can you change that to 144 dpi to print (Canvas used
> to have this capability)?

One nice thing about PICT's is that the Mac has built-in routines to
scale them for display, without losing any of the information that went
into drawing the picture.  Consider this simple demo:

WINDOW 1
DIM rect.8
CALL SETRECT(rect, 0, 0, 1024, 1024)
CALL CLIPRECT(rect)
PICTURE ON (0,0)-(1024,1024)
CIRCLE 500,500,400
TEXT _courier, 24
CALL MOVETO(500,500)
CALL DRAWSTRING( "This is really small text!")
PICTURE OFF, h&
'Now reduce picture to 1/4 size:
PICTURE (0,0)-(256,256), h&
DO
UNTIL MOUSE(_down)
DEF DISPOSEH(h&)
'-----------------------------

This illustrates that you can use a 1024 x 1024 "canvas" to create your
picture (such as the 800-pixel-diameter circle drawn here) and then
easily scale it to whatever size you want.  Furthermore, if you send
this scaled-down picture to a device with higher resolution (like a
printer), then you'll see the text is still tiny but quite legible.

On the other hand, the widths of QuickDraw lines and curves do not seem
able to shrink thinner than 1/72 inch even when you scale the picture
down and send it to a hi-res printer (surround the "PICTURE" statement
with "ROUTE _toPrinter" and "ROUTE _toScreen" statements, to see what I
mean).  One way around this is to use embedded Postscript commands in
the PICT--another might be to create the PICT as a bitmap (i.e., use
gWorlds and COPYBITS) and then shrink that.

- Rick