On this page:
2.7.1 Dingbats
cloud
file-icon
standard-fish
jack-o-lantern
angel-wing
2.7.2 Balloon Annotations
wrap-balloon
pip-wrap-balloon
pin-balloon
balloon
balloon?
make-balloon
balloon-pict
balloon-point-x
balloon-point-y
balloon-color
2.7.3 Face
default-face-color
face
face*
2.7.4 Flash
filled-flash
outline-flash
Version: 4.1

2.7 More Pict Constructors

2.7.1 Dingbats

(cloud w h [color])  pict?

  w : real?

  h : real?

  color : (or/c string? (is-a?/c color%)) = "gray"

Creates a fluffy cloud.

(file-icon w h color [shaded?])  pict?

  w : real?

  h : real?

  color : (or/c string? (is-a?/c color%) any/c)

  shaded? : any/c = #f

Creates a Mac-like file icon, optionally shaded. If color is not a string or color% object, it is treated as a boolean, in which case true means "gray" and false means "white".

(standard-fish

 

w

 

 

 

 

 

 

h

 

 

 

 

 

 [

#:direction direction

 

 

 

 

 

 

#:color color

 

 

 

 

 

 

#:eye-color eye-color

 

 

 

 

 

 

#:open-mouth open-mouth])

 

 

pict?

  w : real?

  h : real?

  direction : (one-of/c 'left 'right) = 'left

  color : (or/c string? (is-a?/c color%)) = "blue"

  eye-color : (or/c string? (is-a?/c color%) false/c) = "black"

  open-mouth : (or/c boolean? real?) = #f

Creates a fish swimming either 'left or 'right. If eye-color is #f, no eye is drawn.

The open-mouth argument can be either #f (mouth closed), #t (mouth fully open), or a number: 0.0 is closed, 1.0 is fully open, and numbers in between are partially open.

(jack-o-lantern

 

size

 

 

 

 

 

 [

pumpkin-color

 

 

 

 

 

 

face-color])

 

 

pict?

  size : real?

  pumpkin-color : (or/c string? (is-a?/c color%)) = "orange"

  face-color : (or/c string? (is-a?/c color%)) = "black"

Creates a jack-o-lantern; use the same pumpkin and face color to get a plain pumpkin. The size determines the width.

(angel-wing w h left?)  pict?

  w : real?

  h : real?

  left? : any/c

Creates an angel wing, left or right, or any size. The color and pen width for drawing the wing outline is the current one.

2.7.2 Balloon Annotations

 (require slideshow/balloon)

The slideshow/balloon library provides functions for creating and placing cartoon-speech balloons.

(wrap-balloon

 

pict

 

 

 

 

 

 

spike

 

 

 

 

 

 

dx

 

 

 

 

 

 

dy

 

 

 

 

 

 [

color

 

 

 

 

 

 

corner-radius])

 

 

balloon?

  pict : pict?

  spike : (one-of/c ('n 's 'e 'w 'ne 'se 'sw 'nw))

  dx : real?

  dy : real?

  color : (or/c string? (is-a?/c color%)) = balloon-color

  corner-radius : (and/c real? (not/c negative?)) = 32

Superimposes pict on top of a balloon that wraps it.

The spike argument indicates the corner from which a spike protrudes from the balloon (i.e., the spike that points to whatever the balloon is about). For example, 'n means “north,”, which is a spike in the top middle of the balloon.

The dx and dy arguments specify how far the spike should protrude. For a 'w spike, dx should be negative, etc.

The color argument is the background color for the balloon.

The corner-radius argument determines the radius of the cicle used to roun the balloon’s corners. As usual, if it is less than 1, then it acts as a ratio of the balloon’s width or height.

The result is a balloon, not a pict. The balloon-pict function extracts a pict whose bounding box does not include the spike, but includes the rest of the image, and the balloon-point-x and balloon-point-y functions extract the location of the spike point. More typically, the pin-balloon function is used to add a balloon to a pict.

(pip-wrap-balloon

 

pict

 

 

 

 

 

 

spike

 

 

 

 

 

 

dx

 

 

 

 

 

 

dy

 

 

 

 

 

 [

color

 

 

 

 

 

 

corner-radius])

 

 

pict?

  pict : pict?

  spike : (one-of/c ('n 's 'e 'w 'ne 'se 'sw 'nw))

  dx : real?

  dy : real?

  color : (or/c string? (is-a?/c color%)) = balloon-color

  corner-radius : (and/c real? (not/c negative?)) = 32

Like wrap-balloon, but produces a zero-sized pict suitable for use with pin-over.

(pin-balloon balloon base x y)  pict?

  balloon : balloon?

  base : pict?

  x : real?

  y : real?

(pin-balloon balloon base at-pict find)  pict?

  balloon : balloon?

  base : pict?

  at-pict : pict-path?

  find : (pict? pict-path? . -> . (values real? real?))

Superimposes the pict in balloon onto base to produce a new pict. The balloon is positioned so that its spike points to the location specified by either x and y (numbers) or at the position determined by combining base and at-pict with find. The find function uses its arguments like lt-find.

The resulting pict has the same bounding box, descent, and ascent as base, even if the balloon extends beyond the bounding box.

(balloon w h corner-radius spike dx dy [color])  balloon?

  w : real?

  h : real?

  corner-radius : (and/c real? (not/c negative?))

  spike : (one-of/c ('n 's 'e 'w 'ne 'se 'sw 'nw))

  dx : real?

  dy : real?

  color : (or/c string? (is-a?/c color%)) = balloon-color

Creates a balloon, much like wrap-balloon except that the balloon’s width is w and its height is h.

(balloon? v)  boolean?

  v : any/c

(make-balloon pict x y)  balloon?

  pict : pict?

  x : real?

  y : real?

(balloon-pict balloon)  pict?

  balloon : balloon?

(balloon-point-x balloon)  real?

  balloon : balloon?

(balloon-point-y balloon)  real?

  balloon : balloon?

A balloon encapsulates a pict and the position of the balloon’s spike relative to the balloon’s top-left corner.

balloon-color : (or/c string? (is-a?/c color%))

The default background color for a balloon.

2.7.3 Face

 (require slideshow/face)

The slideshow/face library provides functions for a kind of Mr. Potatohead-style face library.

default-face-color : (or/c string (is-a?/c color%))

Orange.

(face mood [color])  pict?

  mood : symbol?

  color : (or/c string (is-a?/c color%)) = default-face-color

Returns a pict for a pre-configured face with the given base color. The built-in configurations, selected by mood-symbol, are as follows:

(face*

 

eyebrow-kind

 

 

 

 

 

 

mouth-kind

 

 

 

 

 

 

frown?

 

 

 

 

 

 

color

 

 

 

 

 

 

eye-inset

 

 

 

 

 

 

eyebrow-dy

 

 

 

 

 

 

pupil-dx

 

 

 

 

 

 

pupil-dy

 

 

 

 

 

 [

#:eyebrow-shading? eyebrow-on?

 

 

 

 

 

 

#:mouth-shading? mouth-on?

 

 

 

 

 

 

#:eye-shading? eye-on?

 

 

 

 

 

 

#:tongue-shading? tongue-on?

 

 

 

 

 

 

#:face-background-shading? face-bg-on?

 

 

 

 

 

 

#:teeth? teeth-on?])

 

 

pict?

  eyebrow-kind : (one-of/c 'none 'normal 'worried 'angry)

  

mouth-kind

 

:

 

(one-of/c 'plain 'smaller 'narrow 'medium 'large

          'huge 'grimace 'oh 'tongue)

  frown? : any/c

  color : (or/c string (is-a?/c color%))

  eye-inset : real?

  eyebrow-dy : real?

  pupil-dx : real?

  pupil-dy : real?

  eyebrow-on? : any/c = #t

  mouth-on? : any/c = #t

  eye-on? : any/c = #t

  tongue-on? : any/c = #t

  face-bg-on? : any/c = #t

  teeth-on? : any/c = #t

Returns a pict for a face:

The #:eyebrow-shading? through #:face-background-shading? arguments control whether a shading is used for on a particular feature in the face (shading tends to look worse than just anti-aliasing when the face is small). The #:teeth? argument controls the visibility of the teeth for some mouth shapes.

2.7.4 Flash

 (require slideshow/flash)

(filled-flash

 

width

 

 

 

 

 

 

height

 

 

 

 

 

 [

n-points

 

 

 

 

 

 

spike-fraction

 

 

 

 

 

 

rotation])

 

 

pict?

  width : real?

  height : real?

  n-points : exact-positive-integer? = 10

  spike-fraction : (real-in 0 1) = 0.25

  rotation : real? = 0

Returns a pict for a “flash”: a spiky oval, like the yellow background that goes behind a “new!” logo on web pages or a box of cereal.

The height and width arguments determine the size of the oval in which the flash is drawn, prior to rotation. The actual height and width may be smaller if points is not a multiple of 4, and the actual height and width will be different if the flash is rotated.

The n-points argument determines the number of points on the flash.

The spike-fraction argument determines how big the flash spikes are compared to the bounding oval.

The rotation argument specifies an angle in radians for counter-clockwise rotation.

The flash is drawn in the default color.

(outline-flash

 

width

 

 

 

 

 

 

height

 

 

 

 

 

 [

n-points

 

 

 

 

 

 

spike-fraction

 

 

 

 

 

 

rotation])

 

 

pict?

  width : real?

  height : real?

  n-points : exact-positive-integer? = 10

  spike-fraction : (real-in 0 1) = 0.25

  rotation : real? = 0

Like filled-flash, but drawing only the outline.