6.9
9 Plot Contracts
9.1 Plot Element Contracts
Returns
#t if
value is a 2D
renderer; that is, if
plot can plot
value.
See
2D Renderers for functions that construct them.
Identifies values that meet the contract elem-contract, lists of such values, lists of lists, and so on.
9.2 Appearance Argument Contracts
A contract for very flexible color arguments.
Functions that accept a
color/c almost always convert it to an RGB triplet using
->color.
The contract for
#:style arguments when they refer to lines, and paramters such as
line-style.
For the meaning of integer pen styles, see
->pen-style.
The contract for
#:style arguments when they refer to fills, and parameters such as
interval-style.
For the meaning of integer brush styles, see
->brush-style.
known-point-symbols : (listof symbol?)
|
= | (list 'dot 'point 'pixel | 'plus 'times 'asterisk | '5asterisk 'odot 'oplus | 'otimes 'oasterisk 'o5asterisk | 'circle 'square 'diamond | 'triangle 'fullcircle 'fullsquare | 'fulldiamond 'fulltriangle 'triangleup | 'triangledown 'triangleleft 'triangleright | 'fulltriangleup 'fulltriangledown 'fulltriangleleft | 'fulltriangleright 'rightarrow 'leftarrow | 'uparrow 'downarrow '4star | '5star '6star '7star | '8star 'full4star 'full5star | 'full6star 'full7star 'full8star | 'circle1 'circle2 'circle3 | 'circle4 'circle5 'circle6 | 'circle7 'circle8 'bullet | 'fullcircle1 'fullcircle2 'fullcircle3 | 'fullcircle4 'fullcircle5 'fullcircle6 | 'fullcircle7 'fullcircle8) |
|
|
A list containing the symbols that are valid
points symbols.
9.3 Appearance Argument List Contracts
Returns a contract that accepts either a function from in-contract to out-contract, or a plain out-contract value.
> (require racket/contract) |
|
> (maybe-function-of-real-consumer 4) |
4 |
> (maybe-function-of-real-consumer (λ (x) x)) |
10 |
Many plot functions, such as contours and isosurfaces3d, optionally take lists of appearance values (such as (listof plot-color/c)) as arguments.
A very flexible argument contract would accept functions that produce lists of appearance values.
For example, contours would accept any f with contract (-> (listof real?) (listof plot-color/c)) for its #:colors argument.
When rendering a contour plot, contours would apply f to a list of the contour z values to get the contour colors.
However, most uses do not need this flexibility.
Therefore, plot’s functions accept either a list of appearance values or a function from a list of appropriate values to a list of appearance values.
The maybe-function/c function constructs contracts for such arguments.
In plot functions, if in-contract is a listof contract, the output list’s length need not be the same as the input list’s length.
If it is shorter, the appearance values will cycle; if longer, the tail will not be used.
If f is a function, applies f to args; otherwise returns f.
This is used inside many renderer-producing plot functions to convert maybe-function/c values to lists of appearance values.
This is equivalent to sending
(λ _ '(1 2)).
The next example is more sophisticated: it sends a
function-valued
(plot-colors/c ivl?) to
contour-intervals.
The function constructs colors from the values of the contour intervals.