PICTURETHIS(TM) "SHAREWARE" VERSION RELEASE 4.00 DECEMBER 31, 1991 USER MANUAL, PART 1 OF 7 PARTS Copyright 1988, 1989, 1990, 1991 by Patricia Y. Williams and Gregory Williams, All Rights Reserved. HortIdeas Publishing, 460 Black Lick Road, Gravel Switch, KY 40328 U.S.A. Trademarks/Owners: CaptureThis and PictureThis/Patricia Y. Williams and Gregory Williams; Hercules/Hercules Computer Technology, Inc.; IBM and PC-DOS, International Business Machines Corp.; LaserJet/Hewlett-Packard Co.; MS-DOS/ Microsoft Corp.; PostScript/Adobe Systems Inc.; UltraScript/IMAGEN Corp.; typeface names/their respective owners NOTE: Carefully read all of the terms and conditions of the License Agreement (near the beginning of the READTHIS.1ST file on distribution disk #1) PRIOR to using the PictureThis and/or CaptureThis programs. USE OF THE PROGRAM(S) INDICATES YOUR ACCEPTANCE OF THOSE TERMS AND CONDITIONS. TABLE OF CONTENTS (PART 1) INTRODUCTION ............................................ 5 1. PRELIMINARIES ........................................ 6 2. RUNNING PictureThis .................................. 6 3. EXITING FROM PictureThis ............................. 7 4. ILLEGAL KEYSTROKES, HELP SCREENS, AND STATUS BOX ..... 8 4.1. ILLEGAL KEYSTROKES ................................ 8 4.2. HELP SCREENS ...................................... 8 4.3. STATUS BOX ........................................ 8 5. MOVING THE CURSOR .................................... 9 6. "ZOOMING" AND SCROLLING .............................. 9 6.1. SCREEN MAGNIFICATIONS AND THE FRAME .............. 10 6.2. "ZOOMING" AND CENTERING .......................... 10 6.3. SCROLLING ........................................ 10 7. DRAWING CURVES ...................................... 11 7.1. DRAWING A STRAIGHT LINE .......................... 11 7.2. DRAWING A CURVED LINE ............................ 12 1 8. DRAWING BOXES, SQUARES, CIRCLES, AND OVALS .......... 13 8.1. DRAWING A BOX .................................... 13 8.2. DRAWING A SQUARE ................................. 14 8.3. DRAWING A CIRCLE ................................. 15 8.4. DRAWING AN OVAL (ELLIPSE) ........................ 15 (PART 2) 9. FINDING ENDPOINTS ................................... 17 10. SMOOTHING CURVES ................................... 17 10.1. MANUAL SMOOTHING ................................ 18 10.2. AUTOMATIC SMOOTHING ............................. 19 10.3. REMOVING GUIDELINES ............................. 20 11. CUTTING CURVES ..................................... 20 12. MODIFYING CURVES ................................... 20 12.1. ERASING A CURVE ................................. 21 12.2. CHANGING A CURVE ................................ 21 12.3. CHANGING A CURVE'S LINE PARAMETERS .............. 21 12.3.1. CHANGING LINE WEIGHT ......................... 22 12.3.2. CHANGING LINE GRAY ........................... 22 12.3.3. CHANGING THE LINECAP ......................... 23 12.3.4. CHANGING THE DASH PATTERN .................... 23 12.3.5. SAVING THE LINE PARAMETERS ................... 23 13. QUICKSHOW SCREEN ................................... 24 14. TRAILS, FILLS, AND JOINS ........................... 25 14.1. DEFINING A TRAIL ................................ 25 14.2. ERASING A TRAIL ................................. 27 14.3. FILLING A TRAIL ................................. 27 14.3.1. SPECIFYING A FILL GRAY PERCENTAGE ............ 27 14.3.2. RESULTS OF FILLING A TRAIL ................... 28 14.4. CHANGING THE LINE PARAMETERS OF A TRAIL ......... 29 14.4.1. CHANGING THE LINE WEIGHT, LINE GRAY, LINECAP, OR DASH PATTERN FOR ALL CURVES IN A TRAIL ... 30 14.4.2. CHANGING THE JOIN FOR A TRAIL ................ 30 14.4.3. TRAILS MADE OF CURVES WITH DIFFERENT LINE PARAMETERS .................................. 31 (PART 3) 15. SETTING THE GLOBAL LINE PARAMETERS ................. 33 15.1. SETTING LINE WEIGHT, LINE GRAY, LINECAP, AND LINE JOIN ...................................... 33 15.2. SETTING DASH PATTERN ............................ 33 16. OBJECTS ............................................ 37 16.1. GROUPING AN OBJECT .............................. 38 16.2. UNGROUPING AN OBJECT ............................ 39 16.3. ERASING AN OBJECT ............................... 39 16.4. LAYERING OBJECTS ................................ 40 16.5. CHANGING OBJECT PARAMETERS "GLOBALLY" ........... 41 17. MANIPULATING OBJECTS ............................... 42 17.1. MOVING AN OBJECT ................................ 42 17.2. COPYING AN OBJECT ............................... 43 17.3. SCALING AN OBJECT ............................... 43 2 17.4. ROTATING AN OBJECT .............................. 46 17.5. FLIPPING AN OBJECT .............................. 47 (PART 4) 17.6. INCLINING AN OBJECT ............................. 49 17.7. MULTICOPYING AN OBJECT .......................... 52 18. TEXT ............................................... 53 18.1. FONT FILES ...................................... 54 18.2. FONT ENCODING ................................... 55 18.3. TEXT PARAMETERS ................................. 56 18.4. TEXT BLOCKS AND MARGINS.......................... 57 18.5. EDITING ......................................... 59 18.5.1 EDITOR STATUS LINE ............................ 59 18.5.2 FUNCTION KEY OPERATIONS ....................... 60 18.5.2.1 F1 - HELP SCREENS .......................... 60 18.5.2.2 F2 - DELETING A LINE ....................... 60 18.5.2.3 F3 - COMPOSING TEXT ........................ 61 18.5.2.4 F4 - CLEARING THE EDITOR ................... 61 18.5.2.5 F5 - SETTING THE TEXT BLOCK ................ 61 18.5.2.6 F6 - FINDING ERRORS ........................ 61 18.5.2.7 F7 - PAIR-WISE KERNING ..................... 61 18.5.2.8 F8 - ACCENTED (COMPOSITE) CHARACTERS ....... 62 18.5.2.9 F9 - FINDING/REPLACING TEXT ................ 62 18.5.2.10 F10 - READING/WRITING ASCII FILES IN THE EDITOR ............................. 63 18.5.3 COPYING/MOVING/DELETING BLOCKS ................ 65 18.5.4 HYPHENATION ................................... 65 (PART 5) 18.6. TYPESETTING CODES ............................... 67 18.7. SCREEN FONTS .................................... 71 18.8. CUTTING TEXT BLOCKS FOR RE-EDITING .............. 72 18.9. TRANSFORMING TEXT BLOCKS ........................ 73 18.10. MODIFICATION OF FONTS .......................... 74 19. FILE OPERATIONS AND DOS SHELL ...................... 75 19.1. GETTING A SAVED DRAWING ......................... 75 19.2. SAVING A DRAWING ................................ 75 19.3. IMPORTING CLIP ART .............................. 76 19.4. EXPORTING CLIP ART .............................. 77 19.5. READING A TEMPLATE FILE ......................... 78 19.6. WRITING A POSTSCRIPT FILE ....................... 78 (PART 6) 19.7. SHELLING TO DOS ................................. 83 19.8. PLOTTING DATA POINTS FROM A FILE ................ 83 20. UNITS AND POSITION BOXES ........................... 86 20.1. CHANGING THE CURRENT UNIT ....................... 86 20.2. CURRENT POSITION BOX ............................ 87 20.3. INTERNAL UNITS .................................. 87 20.4. RELATIVE POSITION BOX ........................... 88 21. CURSOR SPEED AND THE GRID .......................... 89 21.1. CHANGING THE SLOW AND FAST CURSOR SPEEDS ........ 89 21.2. SETTING THE GRID ................................ 89 3 21.2.1. CHANGING THE SPACING OF THE GRID ............. 90 21.2.2. CHANGING THE FORM OF THE GRID ................ 90 21.2.3. CHANGING THE COLOR OF THE GRID ............... 90 21.2.4. SAVING THE GRID PARAMETERS ................... 90 21.3. USING THE GRID .................................. 91 22. CHANGING THE FRAME AND SCALING THE DRAWING ......... 91 22.1. CHANGING THE FRAME .............................. 91 22.2. SCALING THE DRAWING ............................. 92 23. NOTING POINTS AND MEASURING DISTANCES .............. 93 23.1. NOTED POINTS .................................... 93 23.2. MEASURING DISTANCES ............................. 94 24. ASPECT RATIO ....................................... 94 25. VIEWSCREEN, PALETTE, AND SCREEN TOGGLES ............ 95 25.1. VIEWSCREEN ...................................... 95 25.2. CHANGING THE PALETTE ............................ 95 25.3. SCREEN TOGGLES .................................. 96 (PART 7) 26. TEMPLATES .......................................... 98 26.1. CAPTURING SCREENS FOR USE AS TEMPLATES .......... 98 26.2. MOVING THE TEMPLATE ............................ 100 27. DRAWING HINTS ..................................... 100 27.1. JOINING CURVES AT ENDPOINTS ONLY ............... 101 27.2. USING THE Del KEY TO MOVE TO ENDPOINTS ......... 101 27.3. SMOOTHER SMOOTHING ............................. 101 27.4. JOINING CURVES WITH DIFFERENT LINE WEIGHTS ..... 101 27.5. DOING DETAILED WORK ON HIGH MAGNIFICATION SCREENS ....................................... 101 27.6. DOING FINE WORK ON A LARGE SCALE AND THEN SCALING DOWN .................................. 102 27.7. DRAWING AN OVAL WITH SIDE ENDPOINTS AT SPECIFIC POSITIONS ..................................... 102 27.8. ROUNDING CORNERS ............................... 102 27.9. CHECKING FOR WIDE SPACING WHEN FULLY JUSTIFYING .................................... 102 27.10. MAKING A TEXT LINE FIT WITH TRACK KERNING ..... 103 27.11. USING PAIRWISE KERNING ........................ 103 28. KARTOONS MODE ..................................... 103 29. CONVERTING A WORD PROCESSOR FILE .................. 104 30. COMMAND LINE PARAMETERS/CONFIGURATION FILE ........ 107 31. MEMORY MANAGEMENT ................................. 108 31.1. MEMORY USAGE ................................... 108 31.2. CURVE SPACE .................................... 109 31.3. TEXT BACKGROUND SAVE ........................... 110 31.4. INSUFFICIENT MEMORY ERROR MESSAGES ............. 110 32. OPTIMIZING OVERLAY SWAPPING ....................... 112 33. INCOMPATIBILITIES AND "BUGS" ...................... 113 4 INTRODUCTION As "desktop publishers" of two newsletters ("HortIdeas," a monthly review of the latest research, ideas, and products for home gardeners, $15.00 per year from the address above, and "Continuing the Conversation," a quarterly exploration of the ideas of cyberneticist Gregory Bateson, $8.00 per year from the address above) and scientific books, we've been appalled by the exorbitant prices and outrageous hardware needs of much publishing software for personal computers. So we decided to write PictureThis -- for ourselves AND for others who want to produce professional- quality drawings and typeset pages using IBM PC compatibles WITHOUT HAVING TO SPEND A FORTUNE ON SOFTWARE AND HARDWARE. PictureThis is inexpensive, you can "try it first" (as "shareware"), and it DOESN'T require a 286 (or 386 or 486!), an EGA or VGA, a (slow!) graphical interface, a mouse, an expanded memory board, or even a hard disk. PictureThis is great for low-bucks DTP, and unsurpassed for LTP ("lap-top publishing") -- it has many features comparable to, or better than, those of memory-hogging PostScript drawing/page-layout programs which creep along like molasses on an 8088 (if they work at all). To quote A.J. Liebling: "Freedom of the press belongs to those who own one." We want to help make "the electronic press" more affordable! With PictureThis, you can quickly and easily produce RESOLUTION-INDEPENDENT EPS files for delivery to PostScript- compatible printers (including dot-matrix printers teamed with low-cost PostScript emulation software, such as "UltraScript," and LaserJets with PostScript compatibility via hardware or software add-ons) and high-resolution imagesetters. YOU DO NOT HAVE TO KNOW HOW TO PROGRAM IN THE PostScript LANGUAGE TO MAKE PROFESSIONAL-LOOKING DRAWINGS/TEXT-PAGES WITH PictureThis! Hardware and software requirements for this "Shareware" Version of PictureThis: an IBM PC, XT, 286, 386, 486 or compatible running MS-DOS or PC-DOS 2.0 or above (not tested with 4.X or 5.X), with at least 640 KB RAM, at least one floppy disk drive (360 KB capacity or greater), and CGA, EGA, or VGA video board compatibility (including Hercules- compatible monochrome graphics boards with hardware or software CGA emulation), plus a PostScript-compatible printer or imagesetter interfaced to your computer (directly, via a cable connection with communications software, or indirectly, via disks sent to a typesetting service). If you don't have direct access to a PostScript- compatible output device, there are many laser typesetting service bureaus which can use PostScript files made with PictureThis (delivered on disks or via modem) to produce prints with 300, 1270, or even 2540 dots-per-inch resolution at surprisingly low cost and quick turnaround. PostScript-language files produced with PictureThis use curves -- with their shapes defined mathematically by just eight numbers per curve -- to construct "vector-mapped" drawings which, unlike "bit-mapped" drawings, can be scaled and rotated without becoming "jaggy." (Also, vector-mapped drawings typically print much faster than bit-mapped drawings on PostScript-compatible laser printers and imagesetters, and vector-mapped drawing files typically are much smaller than bit-mapped drawing files.) PostScript files contain ONLY 5 ASCII characters, so they can be edited with a text editor or word processor, and they can be merged with other PostScript files (for example, to combine drawings with text from page layout programs). For additional information on the PostScript language, see the books about PostScript written by Adobe Systems Inc. and others. These books (and other very useful PostScript information, including tutorials and utility programs) are available from Synergetics, Box 809, Thatcher, AZ 85552 (price list free). 1. PRELIMINARIES In brief, here's how you'll use PictureThis: While viewing their on-screen representations, you make a drawing consisting of cubic "Bezier" curves, defining each curve by the locations of its two endpoints and by the locations of two "control points" (each associated with one of the endpoints) which determine the curve's shape. Text (in any PostScript font) can be added to these drawings and manipulated as part of the drawing, or a drawing can be JUST text. PictureThis produces files written in the PostScript language; these contain all of the information about your drawings needed by PostScript-compatible printers and imagesetters to generate prints AT OUTPUT-DEVICE RESOLUTION. While PostScript files are thus the "ultimate products" of PictureThis, several other kinds of files are involved in the production process, the most important ones being template files, drawing files, clip art files, ASCII text files, and data files for two-dimensional plotting. CGA (320 by 200 and 640 by 200 pixels), EGA (640 by 350 pixels), and VGA (640 by 480 pixels) graphics screens can be captured in template files by using the CaptureThis (or Alternate CaptureThis) program provided with PictureThis; these files can be imported into PictureThis to provide background screens for tracing. Drawing files are used to store and retrieve information about your drawings in a compact format usable by PictureThis; you can save a drawing-in-progress in a drawing file for later recall. Clip art files are used to store and retrieve information about parts of your drawings, allowing these parts to be merged with other drawings. ASCII text files are files prepared in the PictureThis editor or any other word processor that are imported into the PictureThis editor to be used as text on a drawing or text page. Data files contain numbers (typically generated by applications programs) in ASCII format, for two- dimensional plotting on drawings made with PictureThis. 2. RUNNING PictureThis Before running PictureThis, you must install it to either a hard disk or floppy disks, following the instructions in READTHIS.1ST. The PictureThis program is divided into two sections, PICTHIS4.EXE (the root section that is loaded into memory and remains there as long as PictureThis is running), and PICTHIS4.OVL (the overlay section, parts of which are read from disk into memory as needed, and swapped out when another section needs the memory). The disk that contains PICTHIS4.OVL must always remain in the drive while running PictureThis. See Section 32 for details on how to make this swapping most efficient, especially if you are using 6 floppies or have a slow hard disk. To run PictureThis make sure that PICTHIS4.EXE is in the current directory. At the DOS prompt, key in "PICTHIS4" and press Enter. If PICTHIS4.OVL (the overlay file) is not found in the current directory, you will be asked for the path for this file; type the path in followed by Enter. (If you are using two floppy drives, type in "B:"; if you are using a ram disk, type in (probably) "D:"; if you are using a single floppy drive, replace your STARTUP disk with your RUN disk and type in "A:.") If you have a Hercules-compatible monochrome graphics board (720 x 348 resolution) with hardware or software CGA emulation, your computer might "hang up" unless you immediately press Tab. (Tab must be pressed AFTER the path for PICTHIS4.OVL is typed in.) The Tab key (ONLY if pressed while PictureThis is loading) switches from direct to through-the-BIOS writing of text characters in text mode. Some CGA emulators can't handle direct writing of text screens, even though they can handle direct writing of graphics screens (always the case in PictureThis). Direct writing of text is faster than through-the-BIOS writing, and works fine with true CGA, EGA, and VGA boards, so DON'T press Tab if you DON'T have a Hercules-compatible monochrome graphics board with CGA emulation. The title screen appears for a few seconds, allowing you to get a glimpse of PictureThis in action. Then a copyright and ordering information screen appears. Please read it! When you have finished, you can press any key to continue. Then a blank screen with a border and an X-shaped cursor at the center appears. If you have installed PictureThis correctly, a configuration file, PICTHIS.CFG will have been made for you which specifies whether you are running in CGA, EGA, or VGA mode, how many curves can be drawn, and where certain files should be found. If you want to change these parameters, you must include some command-line parameters when you load PICTHIS4. See Section 30 for details. NOTE: PictureThis uses the EGA/VGA memory in a somewhat non-standard way. If you have a memory optimizer which tries to use the "excess" EGA/VGA memory (such as DESQview's QEMM), you might have problems! (Disable the optimizer if necessary.) If you want to make sure that the drawing screen shown on your monitor is properly scaled relative to the printed copy output's default proportions, see Section 24. 3. EXITING FROM PictureThis If you want to return to the operating system, press Esc. A prompt appears: "Quit PictureThis? (Y/N)"; to exit, press Y. To remain in PictureThis and remove the exit prompt from the screen, press a key other than Y. Note: PictureThis usually is INSENSITIVE TO CASE (here, Y is treated the same as y). The Esc key generally is used to "back out" of an operation, that is, to cancel the current operation and return to the previous operation. (A few exceptions to this rule are noted later in this manual.) Press the Esc key enough times from (almost) wherever you are in the program, and you will reach the exit prompt. (More information on "backing out" of particular operations is given throughout 7 this manual.) 4. ILLEGAL KEYSTROKES, HELP SCREENS, AND STATUS BOX 4.1. ILLEGAL KEYSTROKES In general, some keys are NOT valid at particular times in PictureThis. If you press an inappropriate key, you'll hear a beep -- just a warning, no harm done. It means: try again! To turn off the speaker, press H. Invalid keystrokes no longer beep. To turn the speaker back on AND to toggle on error messages and prompts, press H again. Now invalid keystrokes beep a warning, error messages are displayed when SOME illegal keys are pressed, and special prompts appear when some operations are being performed. The prompts appear at the top of the screen and disappear when a key is pressed (the key can continue the operation). A complete list of error messages is given in the file ERRORS.TXT included on one of the distribution disks. It's a good idea to toggle on the error messages and prompts when you're learning how to use PictureThis. To return to the initial state of beeps ONLY, press H one more time. Thus, H is a three-way toggle; its current status is shown in the status box (see Section 4.3). 4.2. HELP SCREENS Press ? and a contextual help screen appears, listing currently valid keys and their effects. A help screen DOESN'T appear if ? is pressed while a menu box appears on the screen. To leave the help screen press any key which is described on the help screen, and the key's normal operation will occur. To leave the help screen without performing any operation, just press Esc. 4.3. STATUS BOX Information about the current status of PictureThis can be obtained by pressing W. A status box appears in the lower left hand corner of the screen. To remove the box, press W again. The status box contains several mnemonic indicators. The first indicator shows whether the cursor will go to the SECOND endpoint of a curve after the curve has been set ("A " with automatic smoothing toggled off; "A+" with automatic smoothing toggled on), or to the FIRST endpoint ("A-"; no automatic smoothing). (See Section 10.) The second indicator shows whether guidelines which appear while smoothing and drawing squares or ovals are erased from view or not ("E+" or "E-"). (See Section 8.) The third indicator shows whether the speaker and/or prompts and error messages are toggled on ("H+" for speaker, prompts, and error messages; "H " for speaker only; and "H-" for no speaker, no prompts, and no error messages). (See Section 4.2.) Next is a mnemonic for the current operation. This mnemonic is "FREE" when no operation is in process. Next, a letter ("E," "I," or "G") indicates the current cursor movement mode (external, internal, or snap-to grid, respectively; see Sections 5 and 21). The following number is the current cursor speed (see 8 sections 5, 20, and 21). The final two letters show the current units: "PX," pixels; "IN," inches; "PT," points; "PP," picas and points; "CM," centimeters; or "MM," millimeters (see Section 20). 5. MOVING THE CURSOR Keys 1 through 9 on the numeric keypad (except the central key 5) each move the cursor vertically, horizontally, or diagonally. The cursor moves in the direction corresponding to the direction of the pressed key from the 5 key. Note: NumLock must be OFF, and the Shift keys must not be pressed. To move the cursor DOWN, press 2; to move the cursor UP, press 8; to move the cursor LEFT, press 4; to move the cursor RIGHT, press 6; to move the cursor DIAGONALLY DOWN AND LEFT, press 1; to move the cursor DIAGONALLY DOWN AND RIGHT, press 3; to move the cursor DIAGONALLY UP AND LEFT, press 7; and to move the cursor DIAGONALLY UP AND RIGHT, press 9. The distance the cursor moves on the screen when one of the above keys is pressed is determined by the Ins key (and also by the I key (see Section 20.3), the current units (see Section 20.1), the snap-to-grid setting (see Section 21.3), and the drawing scale (see Section 22.2)). The Ins key acts as a toggle between "slow" and "fast" cursor speeds. The initial "slow" setting is 1 current unit increment per keystroke, but it can be adjusted between 0.1 and 99.9 current unit increments per keystroke (see Sections 20.1 and 21.1); to "speed up" the cursor to more unit increments per keystroke (the default is 10, but the "fast" speed can be adjusted between 0.1 and 99.9 current unit increments per keystroke (see Section 21.1)), press Ins (with NumLock toggled OFF and no Shift key pressed). To "slow down" the cursor, press Ins again. For diagonal cursor movements (controlled by 1, 3, 7, and 9 on the numeric keypad), each keystroke results in a movement of m unit increments vertically and m unit increments horizontally when the cursor speed is "slow" and set to m, or n unit increments vertically and n unit increments horizontally when the cursor speed is "fast" and set to n. Note that m and n aren't necessarily whole numbers! You can't move the cursor beyond the screen edge -- if you try, the cursor remains stopped at the edge. To save time when moving the cursor over large distances, you can use one of the several "shareware" or "freeware" memory-resident keyboard speedup programs currently available. The source code listing for QUICKEYS.COM (for 8088- and 8086-based computers) originally was published in "PC Magazine", and the source code listing for SETKEY.COM (for 80286-based computers) originally was published in "PC Tech Journal"; these and similar programs are available on computer bulletin boards and/or from "shareware" distributors. A mouse can be used to move the cursor, as described in the file PTMOUSE.TXT. The cursor keys described above remain functional when a mouse is used; the keys allow more precise positioning of the cursor than does a mouse, mainly because you can count key presses. 6. "ZOOMING" AND SCROLLING 9 6.1. SCREEN MAGNIFICATIONS AND THE FRAME There are six different screen magnifications at which you can work in the program: 50%, 100% (which initially appears when PictureThis is run), 300%, 600%, 1200%, and 2400%. A line drawn on the 100% screen appears three times as long on the 300% screen, and half as long on the 50% screen; thus, the percentage of each screen refers to its LINEAR magnification. On the the 50% screen, the full drawing area of the screen is visible; on the 100% screen, one fourth of the drawing area is visible at any time; on the 300% screen, one thirty-sixth of the drawing area is visible at any time, and so forth. Dotted lines show the edge of the drawing frame at all six magnifications. The frame is a rectangular area indicating the portion of the drawing which will be printed. Any portions of curves or text outside of the frame WON'T BE PRINTED in the PostScript hard-copy output. The default frame is set at the edge of the visible 100% screen, in the middle of the full drawing screen. The current frame can be changed at any time (see Section 22.1). You can move the cursor to any of the four corners of the frame, regardless of the current screen magnification. To move the cursor to the upper left corner of the frame press Ctrl Home. To move the cursor to the lower left corner of the frame press Ctrl End. To move the cursor to the upper right corner of the frame press Ctrl PgUp. To move the cursor to the lower right corner of the frame press Ctrl PgDn. Moving to a corner of the frame can be done during most operations (for example, while drawing a curve). However, during an operation, if the desired corner is not on the visible screen, the move is NOT made, and a beep sounds. During the "FREE" state ONLY, a move to a corner off the screen scrolls the screen so that the corner to which the cursor moves is at the edge of the newly visible screen. 6.2. "ZOOMING" AND CENTERING To switch among the different screen magnifications, use the + and - keys on the numeric keypad. Press + to INCREASE the magnification. Press - to DECREASE the magnification. When the magnification is changed to any screen other than the 50% screen, the screen centers on the cursor. When working on the 100%, 300%, 1200%, or 2400% screen, you can center the screen on the cursor without "zooming" by pressing X. You cannot change between magnifications or center the screen in the middle of an operation, such as drawing a curve. Redrawing begins anew when + (except at the highest magnification level) or - (except at the lowest magnification level) is pressed, allowing quick multiple zooms. The current magnification level is indicated on the contextual help screens (see Section 4.2). 6.3. SCROLLING You can scroll the 100%, 300%, 600%, 1200%, and 2400% screens by using the cursor keys (1 to 9, except 5, on the numeric keypad) with Shift pressed (or NumLock toggled on). To see more at the BOTTOM of the screen, press Shift 2. 10 To see more at the TOP of the screen, press Shift 8. To see more at the LEFT side of the screen, press Shift 4. To see more at the RIGHT side of the screen, press Shift 6. To see more at the BOTTOM LEFT corner of the screen, press Shift 1. To see more at the BOTTOM RIGHT corner of the screen, press Shift 3. To see more at the UPPER LEFT corner of the screen, press Shift 7. To see more at the UPPER RIGHT corner of the screen, press Shift 9. As noted above, instead of pressing Shift simultaneously with numeric keypad number keys to scroll, you can toggle on NumLock and press the numeric keypad number keys only; alternatively (but not very easily!), you can use the main keyboard number keys (with Shift NOT pressed). The screen scrolls by increments of approximately one- quarter of the screen width/height in the chosen direction during horizontal/vertical scrolling, and one-quarter of the screen width/height in both horizontal and vertical directions during diagonal scrolling. The screen doesn't scroll beyond the edge of the entire drawing screen. You cannot scroll in the middle of an operation, such as drawing a curve. To center the frame on the 100%, 300%, 600%, 1200%, or 2400% screen, press Shift 5. You can center the frame on the screen and concurrently center the cursor in the frame (called "zeroing" the screen) by pressing Z. Except at 50% magnification, center the screen on the X- shaped cursor by pressing X. Fast multiple scrolls are made possible by immediate redrawing at the new screen position or magnification level when any scrolling or centering key is pressed. Usually when you scroll, the cursor remains at the same position relative to the frame. However, if the cursor would end up off the screen by remaining at the same position, it moves as close as possible to its original position, but still on the screen. 7. DRAWING CURVES In PictureThis, a curve (including a straight line) is drawn by specifying the positions of its two endpoints and the positions of two "control points" (each of which is associated with one of the endpoints) which determine the curve's shape. These four points (eight numbers in all: four coordinate pairs) uniquely specify the position and shape of the curve. Curves drawn with PictureThis are cubic Bezier curves because such curves are defined in the PostScript language. For a mathematical definition of cubic Bezier curves, see the PostScript Reference Manual by Adobe Systems Inc., published by Addison-Wesley. 7.1. DRAWING A STRAIGHT LINE While in the "FREE" state, move the cursor to a position desired for one of the line's endpoints. A. Press the F1 function key to set the first endpoint. A small square appears at the center of the cursor to indicate 11 the first endpoint position, and the state changes to "LINE." B. Move the cursor to a position desired for the second endpoint. (A line "rubberbands" from the first endpoint.) C. To set the line, press the F3 function key. That's all there is to it! A second small square appears at the center of the cursor to indicate the second endpoint position, and the state returns to "FREE." (It's also possible to have the cursor automatically move back to the FIRST endpoint of a line when the line is set; see Section 10.2) Pressing Esc during the line drawing operation erases the line, moves the cursor back to the position of the first endpoint, and returns the state to "FREE." Note: To make a single dot on your drawing, press F1 at the desired position, then press F3 again WITHOUT MOVING THE CURSOR. The dot's size and shape are determined by the current line parameters (see Sections 12 and 15). A straight line can be drawn using a mouse to control cursor movement and setting of points. See the file PTMOUSE.TXT for details. F1, F3, and the cursor keys still remain functional when a mouse is used. 7.2. DRAWING A CURVED LINE While in the "FREE" state, move the cursor to a position desired for an endpoint. A. Press the F1 function key to set the first endpoint. A small square appears at the center of the cursor to indicate the first endpoint position, and the state changes to "LINE." B. Move the cursor to a position desired for a second endpoint. A line "rubberbands" from the first endpoint. C. Press the F1 function key again to set the second endpoint. Another small square appears, indicating the second endpoint's position, and the state changes to "CURVE." At this stage, two control points also are established, one at the position of each endpoint. D. Move the cursor away from the second endpoint. This moves the control point associated with the second endpoint; the curve's shape changes under the influence of the moving control point. Press the F2 function key to switch the cursor position to the first endpoint. Note that the position of the control point associated with the second endpoint is shown by a dot. Move the cursor away from the first endpoint. This moves the control point associated with the first endpoint; the curve's shape changes under the influence of the moving control point. With the F2 function key, toggle the cursor back and forth between the positions of the two control points, and move each of the control points in turn until you are satisfied with the shape of the curve. Note that the position of the control point not currently being moved by the cursor is indicated by a dot. E. To set the curve, press the F3 function key. This automatically moves the cursor to the second endpoint (for easy drawing of continuous curves made up of successively drawn curves) or to the first endpoint (for easy drawing of several curves from one endpoint), depending on the automatic smoothing toggle setting (see Section 10.2), and erases the dots indicating control points (to avoid cluttering the screen). The state returns to "FREE." Pressing Esc during the curve drawing operation BEFORE either control point is moved away from its associated 12 endpoint "backs out" to the line drawing operation. That is, it erases the curve and second endpoint, moves the cursor to the second endpoint's position, draws a straight line from the first endpoint to the cursor, and changes the state from "CURVE" to "LINE." You then can establish a different second endpoint and go on to set a curve, or you can press Esc again to go back to the "FREE" state. Pressing Esc AFTER you have moved either control point from its associated endpoint changes the curve to a straight line, but does not erase the second endpoint. Next you can move the control points, or press Esc one time to allow a new second endpoint to be set, or press Esc twice to return to the "FREE" state. If you imagine a line connecting a curve's endpoint with the control point associated with that endpoint, you will find that the line has the same direction as (is tangent to) the curve at the endpoint. Ditto for the curve's other endpoint and its associated control point. Knowing this makes it easy to guess how you should move control points to make curves shaped as you wish. If one of a curve's control points has NOT been moved away from its associated endpoint, then BOTH ends of that curve will be tangent to imaginary lines connecting the respective endpoints with the control point which HAS BEEN MOVED away from its associated endpoint. You can draw a loop having both endpoints at the same position by pressing F1 and F1 again with no intervening cursor movement. Then move the control points as described above to obtain the desired loop. If you press F1 to set a first endpoint and F1 again to set a second endpoint and move into the "CURVE" state, then press F3 without moving either control point from its associated endpoint (or if you move either control point, but then move it back to its associated endpoint), you will set a straight line equivalent to one drawn by pressing F3 at the second endpoint before pressing the second F1. That is, F1, move, F1, F3 is equivalent to F1, move, F3. The control points for a straight line are at the line's endpoints. Note that on-screen representations of curves are just APPROXIMATIONS to cubic Bezier curves. These approximations are subject to round-off errors, especially at the 50% and 100% screen settings. In particular, if the same curve is drawn twice, with the same endpoints and control points each time, but WITH THE ORDER OF SPECIFYING THE ENDPOINTS REVERSED THE SECOND TIME THE CURVE IS DRAWN, the screen representations for the first and second drawings might be SLIGHTLY DIFFERENT (but the printed output will show only ONE curve). A curve can be drawn using a mouse to control cursor movement and setting of points. See the file PTMOUSE.TXT for details. F1, F2, F3, and the cursor keys still remain functional when a mouse is used. 8. DRAWING BOXES, SQUARES, CIRCLES, AND OVALS By drawing combinations of straight lines and curves, you can draw boxes, squares, circles, and ovals (ellipses). However, PictureThis provides quicker ways to draw these figures. 8.1. DRAWING A BOX 13 A. In the "FREE" state, move the cursor to a position for one corner of the box and press B. An endpoint appears. The state is now "BOX." B. Move the cursor away from the first endpoint, in any direction. A box with diagonally opposite corners at the first endpoint's location and the cursor's location appears. C. When you are satisfied with the box, press F3. Four lines are set, with an endpoint at each corner; your box is complete, and the state returns to "FREE." Pressing Esc at any time during the box drawing operation erases the box, moves the cursor back to the box's first corner, and returns to the "FREE" state. To make a box with rounded corners see Section 27.8. 8.2. DRAWING A SQUARE On typical CGA and EGA graphics screens, there are more pixels a given distance in the horizontal direction than pixels the same distance in the vertical direction. Therefore, if you tried to draw a square using the method in Section 8.1 and moved the cursor up and to the right by the same number of PIXELS, you would not see a square, but a rectangle that is taller than it is wide. If the current unit setting is NOT pixels (the default setting when you run PictureThis is points; see Section 21.1 to learn how to change the unit setting), this isn't a problem, since ONLY pixels have different horizontal and vertical dimensions. That is, if the current units are NOT pixels, simply move the cursor to where you want one corner of the square, press B, move the cursor DIAGONALLY, and press F3. To draw a true square regardless of the current units, you can do the following: A. Move the cursor to where you want one corner of the square. B. Press B. An endpoint appears, and the state is "BOX." C. Press S. Two guidelines through the first corner of your square appear at 45 degree angles (only momentarily if you have the guidelines toggled off (see Section 10.3)). The state is "SQUARE." D. Move the cursor in one of the four diagonal directions using the numeric keypad keys (7, 9, 3, or 1). The cursor moves ONLY along one of the guidelines. A square is drawn, following the cursor. E. If you want to move along the other guideline, press F2. The square is erased and the cursor returns to the first corner. The cursor now can be moved along the other guideline. (Pressing F2 again returns the cursor to the original guideline.) F. When you are satisfied with the square, press F3. The guidelines are erased and four lines are established with endpoints at the corners. Your square is complete, and the state is "FREE." Pressing Esc during the square operation erases the guidelines, leaves the cursor where it is, and returns to the "BOX" state. You now can finish drawing a box with no guideline restraints, or press Esc again to return to the "FREE" state. If squares drawn by this method don't appear as true squares, then you need to adjust your screen's aspect ratio (see Section 24). 14 Note: While drawing a square, the cursor moves along the guideline at 1 or 10 (depending on the speed toggle setting, slow or fast) pixels per key press, REGARDLESS of the current units. 8.3. DRAWING A CIRCLE A. Move the cursor where you want the center of a circle and press O (for "oval"). Two guidelines appear through the cursor, one vertical and one horizontal (only momentarily if you have the guidelines toggled off (see Section 10.3)). The state is "CIRCLE." B. Move the cursor to the left or right along the horizontal guideline (using numeric keypad keys 4 or 6). A circle is drawn through the cursor, centered where the guidelines cross. C. When you are satisfied with the circle, press F3. The guidelines are erased, and four cubic Bezier curves closely approximating a circle are established with their endpoints at the top, bottom, left, and right. These curves can be treated subsequently as if they were drawn independently of each other. The cursor returns to the center of the circle; this facilitates drawing concentric circles. (To locate the center of a circle previously drawn, see Section 23.2.) The state returns to "FREE." Pressing Esc during the circle operation erases the circle and guidelines, returns the cursor to the center of the circle, and returns the state to "FREE." If circles drawn by this method don't look like true circles, then you need to adjust your screen's aspect ratio (see Section 24). To draw a circle with its side or top endpoints at particular locations, see Section 27.7. 8.4. DRAWING AN OVAL (ELLIPSE) A. Start as for drawing a circle, by pressing O when the cursor is where you want the center of an oval (to be precise, an ellipse). Move the cursor to the right or left along the horizontal guideline (invisible if guidelines are toggled off; see Section 10.3) to produce a circle. B. Press F2. The cursor jumps to the vertical guideline, where it intersects the circle (the guideline is invisible if guidelines are toggled off; see Section 10.3). The state is "OVAL". C. Move the cursor up or down (using numeric keypad keys 8 or 2). An oval is drawn through the cursor and the previous position of the cursor on the horizontal guideline, centered where the guidelines cross. Pressing F2 again returns the cursor to its previous position on the other guideline. You can move the cursor on that guideline. D. When you are satisfied with the shape of the oval, press F3. The guidelines are erased and four Bezier curves closely approximating an oval (ellipse) are established, with their endpoints at the top, bottom, left, and right sides of the oval. These Bezier curves can be treated subsequently as if they were drawn independently of each other. The cursor returns to the center of the oval (to facilitate drawing concentric ovals), and the state returns to "FREE." Pressing Esc during the oval operation erases the 15 guidelines and the oval, returns the cursor to the center of the oval, and returns the state to "FREE." If you want an oval oriented other than horizontally and vertically, you can rotate it (see Section 17.4). If you want an oval aligned so that its side endpoints are at particular locations, see Section 27.7. 16