fungraph.sslibrary provides the procedures for producing graphical images described in Concrete Abstractions. Because these procedures operate like mathematical functions, we refer to them as functional graphics, hence the name
As of May 2007 (coinciding with the release of DrScheme version 370), this library was redesigned to use DrScheme's (now DrRacket's) built-in notion of what an "image" is. The most significant consequence of this is that DrRacket's "Insert Image..." command can be used to insert an image from a standard graphics file (such as a photograph), which can then be manipulated using the procedures in the functional graphics library.
In addition to the procedures described in the textbook, there are five additional ones:
invert, this takes an image and makes another, related image. In the case of
mirror-image, the new image is the same size as the original, and is formed by flipping the original image around a vertical axis, as though it were viewed in a mirror.
), i.e., the specified size is used as both the width and the height of the new image.
), i.e., the width and height are both default-image-size, which is a parameter that can be inspected or altered using the next two procedures. As described below, this is the same parameter that controls the size of the images created by
The images produced by
filled-triangle are of a size determined by the
default-image-size. Initially this is
100. This is a compromise size, a bit small for the
fractals in chapter 4 and rather large for each basic block of the
quilts in chapters 1-3. You can set it to another value (which
must be an exact, positive integer) to suit your own needs. For
example, when defining the basic blocks for quilting, it may make
sense to first set the default image size to 50.
The images produced by the procedures in this library show up in the
interaction window, the same way any other value would. They can be
copied and pasted within DrRacket. In particular, you can copy them
into the argument position of a call to one of the image-transforming
procedures, just as you might copy a numeric value into the argument
position of an arithmetic procedure.
You can do the same with images inserted into DrRacket using the
Insert Image... menu option.
The first argument to the
overlay procedure should be a
black-and-white image (such as is produced by the
The white areas are treated as transparent, allowing the second image
to show through. (The second image may be any kind of image,
including a color or grayscale one.) If the first image is a color or
grayscale image, even its white areas are treated as opaque,
completely obscuring the second image.