The drawing area should have the following features: At the top-left, when the window is opened for the first time, you should see a hollow box with a line sticking out to the bottom left. Repainting the canvas should produce instead a solid box and no line. Repainting with Pixmap or Bitmap should always produce the hollow box and line. At the top, "Pen 0 x 0" in a consistent font (i.e., re-painting should not change the font; clicking *2 should make it twice a big, and unclicking should restore it) "Pen 1 x 1" in a possibly different font "Pen 2 x 2" in a bold red font (bold version of 1x1 font) on yellow A line should appear across each of "Pen 0 x 0" and "Pen 1 x 1" (if the line is missing, it was probably erased when the text was repainted, and that is bad) A little bit of a black line should appear before "Pen 2 x 2", but the yellow background should have covered up the rest of the line To the right of the Pen text, a black and red pair of splines should form a squashed "S", twice as wide as high. The "S" is formed by two splines. Under the splines should be two blue polygons, the top with a square hole (odd-even fill) and the bottom all solid (winding fill). The black lines forming the polygon should be the same in each shape (strictly on borders for the top polygon, drawn over blue in the bottom polygon). Toward the right should be three columns of boxes, with a fourth column that starts with a box. All boxes should have a red border. In the first three columns, the boxes should contain lines on a background that matches the normal background (i.e., either white or cyan). The lines should be black for the left column, and green for the second and third columns. In the fourth column, the shapes should be filled with the platform-specific panel background pattern; the third shape should be a semi-circle with no outline on the bottom edge. Further right (to the right of the columns) should appear an X, a cross, and an narrow X tilted NW. Each should be drawn in green (5 pixels wide) with a thin black line centered along each green line. Scaling the picture should make the green line thicker, but not the black line, and the black line should stay centered. Under the columns of boxes, a black box should be filled with an 25% black B&W bitmap, and a red box frame should be draw with a 50% red stipple. To the right of those two boxes should appear two little boxes, black pixels on a tan background, the top one 8x8 and the bottom on 6x10. The black pixels in the top one should form a vertical line right or center with a kind of semi-spring on the left edge. The black pixels in 6x10 should be just a longer semi-spring to the left. At the far right should appear six stars, drawn once as lines (left column) and once as a polygon outline (right column). The first row uses 'projecting cap and 'miter join, the second uses 'round and 'round, and the last uses 'butt and 'bevel. The drawings under "0 x 0" and "1 x 1" should look nearly the same: TopLeft: h-line should be left-aligned with box below it, but extend 1 extra pixel. v-line similarly should be top-aligned and 1 pixel longer. The lines should not touch the box - there should be 2 pixels of space. Top: Lines for the rotated L's should join in a sharp corner Second from Top: like top-left, but lines should touch the box (so only the vertical overhang is visible) Second from top, right: For 0x0, the X should never be more than 1 pixel wide; this is a case where 1x1 may be different (i.e., it may have areas two-pixels wide) Four shape rows: First (solid brush, solid pen) and second (solid brush, solid pen) columns should be the same shape, with the first hollow and the second filled. Third (solid brush, no pen) column should look like the second column. The fourth column should be the xor of the first and third columns. The precise results are ill-defined for the "2 x 2 Pen" shapes. Octagons: two hollow octagons exactly the same shape. Dot (after octagons): a single pixel (uses draw-point) Another Dot (below the first one): a single pixel (created as a 0-length line from draw-line) Line: actually two lines, but they should form a single unbroken line Arcs: The leftmost should be the top half of an ellipse (it's formed via two arcs); the rightmost should be a filled wedge from 90 degrees to 180 degrees. The arcs are part of an ellipse 40 tall and 30 wide (i.e., stretched slightly in the vertical direction from a circle). The drawings under 2x2 should be reasonable extensions of the 0x0 and 1x1 pictures for a double-wide pen. Big octagon: The octagon defines the region for octagon clipping. Also, it's drawn in xor mode, so it should flip black to white wherever the octagon line runs over the shapes of the middle section. The bitmaps of the bottom region are drawn afterwards, and will therefore hide parts of the octagon line, although the MrEd logo is also drawn in XOR mode so it shouldn't obscure the octagon line. Bottom section: Images: MrEd logo (b & w), drawn in XOR mode, so the octagon line should be toggled where the black part of the MrEd logo intersects with the line. This changes with the "MrEd XOR" choice control (see below). BB logo (color) Top subrow: Down-left arrow (with a thin horizontal line), black on background Down-left arrow, red on background Down-left arrow, red on background Bottom subrow, on blue field in black-bordered roundrect: Down-left arrow (with a thin horizontal line), black on blue Down-left arrow, red on blue Down-left arrow, red on background (cyan or white) BB logo, same as before Down-left arrow - red on black Stippled boxes, in a blue box w/black border, four black-outlined shapes: Sqaure - green down-arrows on blue field Circle - green down-arrows on background (cyan or white) field Square - bb logo Square - green cross-hatch on blue Dashed lines: each half green and half black with the background color (white or cyan) between the dots/dashes, two of each: Solid line Dot line Long Dash line Short Dash line Dot Dash line Long line: On the screen in unsmoothed or aligned mode, the line should be 1 pixel wide, except that the last 1/9th should be two pixels wide. In postscript or smooth mode, the line should consist of 9 segments, growing in width from 0.0 to 2.0 (inclusive) in 0.25 increments. When the image is scaled by a factor of 2, the first 1/9th on the screen should still be 1 pixel, the next 7/9ths should be 2 pixels, and the last 1/9 should be 4 pixels wide. Red shapes with black outlines (below long line): square, round square, circle, and triangle without a top line; these are drawn as paths. Four lines (to right of red shapes): in 'unsmoothed or 'aligned mode, the lines should appear equally spaced at scale 1, but scale 2 should show the middle lines closer by two pixels; the 'smoothed mode should approximate this at scale 1. At scale 2, 'unsmoothed and 'aligned should look the same. Thick blue-line round rects with red center: the left one has pen size 7, and the right pen size 8. At scale 1, the two should be separated by a blank column of pixels in 'unsmoothed and 'smoothed mode, but in 'smoothed mode or at scale 2, they should touch. Four squares with overbar (bottom of drawing): the squares, which are stretched bitmaps, should touch, and the four squares should have the same span as the overbar line. The image should look the same regardless of the top radio button setting --- Canvas, Pixmap, or Bitmap --- except that the Bitmap setting must produce a black-and-white image. When you go from Pixmap + *2 ("*2" is described next) back to Pixmap, there may be junk from the *2 drawing left around the right and bottom. That's ok. Same for going from Canvas + Cyan ("Cyan" is described later) to Pixmap + Cyan. Clicking on the "*2" checkbox should double the size of everything, including the pen widths, but not the bitmaps. The 0x0 pen should be the same width as before (1 pixel). Clicking on "+10" should shift everything 10 pixels down and across. (Even when "*2" is checked, it should be a 10 pixel offset). Clicking on "Cyan" should change the background to cyan instead of white. When Pixmap or Bitmap is used, the background will be set in the Pixmap/Bitmap, not the canvas, so a white background should frame the cyan area to the right and bottom (if you make the window big enough). Clipping should slip the drawing to a particular shape: rectangle - a 10-pixel strip 100 pixels from the left octagon - the content of the big outlined octagon; some part of the octagon outline is clipped circle - a circle inscribed in the octagon's bounding box wedge - pi/4 to 3pi/4 of circle round rectangle - a rounded rect inscribed in the blue box for testing stipples unions, intersects, subtracts - hopefully obvious polka - purple field with holes showing the normal drawing lambda - a region in the shape of a lambda When the "Clip Pre-Scale" checkbox is not checked, then when a scale such as "*2" is selected, the clipping region should scale accordingly. "+10" should move the clipping region. (In either the "*2" or "+10" case, the content of the clipped region should be the same.) When the "Clip Pre-Scale" checkbox is checked, then the clipping region should not scale with the rest of the drawing. Be sure to try both scaling modes with smoothing both on and off. The "Clock" button tests a range of wedges. Each wedge has a 1-pixel black background and orange filling. A sequence of wedges is produced. Imagine the following: The two hands of a clock start at 0 radians (i.e., 3:15). For each step, the minute hand is moved back (counter-clockwise) pi/4 radians, while the hour hand moves back pi/8 radians, and everything between the minute hand moving counter-clockwise to the hour hand is filled in. So after drawing the full circle on the 0th step, the wedge includes everything except a small slice on the 1st step. The empty slice grows ever larger while shifting counter-clockwise. By the time the minute hand wraps to 0 radians (at which point the hour hand is a pi radians), the wedge covers only the top half of the clock. It keeps going until the wedge nearly disappears (but instead of disappearing, the whole circle is filled in again). The same pattern is then repeated, but reversing the wedge part and empty part (so the wedge starts small and grows larger this time around). The orange wedge is drawn just before the bitmaps, so they appear on top of the orange wedge, but the wedge paints over other things. If the "Pixmap" box is checked and the "Polka" clipping region is selected, the result is an animation where you can only see the wedge grow and move through the polka-dot holes in the purple field. The "Clip Clock" button is similar to "Clock", except that all drawing is clipped to the area to be painted orange. "Clip Clock" clipping overrides any other clipping setting. Clicking on "PostScript" should produce the image described above in a PostScript file. The "icons" and "stipple" boxes enable those parts of the drawing. These checkboxes are provided because PostScript drawing of icons and stipples can be slow. The "MrEd XOR" menu selects a icon: - "MrEd XOR" : initial icon, as described above - "PLT Middle" : middle area of the PLT logo (used when starting DrRacket), same size as the MrEd icon. Make sure scaling works right (i.e., same section shown and scaled). - "PLT ^ MrEd" : "PLT Middle" masked by the MrEd icon. - "MrEd ^ PLT" : MrEd icon masked by the "PLT Middle" image (so it's translucent). - "MrEd ^ MrEd" : MrEd icon masked by itself... non-black parts should be transparent. - "MrEd~" - Upside-down MrEd icon. Besides PLT Middle, this one should blank out whatever is behind it (using cyan in cyan mode) - "MrEd ^ MrEd~" - MrEd icons masked by upside-down MrEd icon. Note that the parens should be fully intact. - "M^M~ Opaque" - Same as previous; drawn with 'opaque, but that should have no visible effect. - "M^M~ Red" - Same as two previous, but drawn red instead of black. - "PLT^PLT" - The PLT Middle image, but translucent ---------- Finally, print these instructions by hitting the "Print" button at the top of the "What Should I See?" window. The following lines are for the printing test; they should wrap around neatly on the printed page. (Don't add any newlines.) Check to make sure no lines are skipped or duplicated across page breaks. Try different page orientations. 0 1 2 3 4 5 6 7 8 9 X O T T F 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789