Pict Abbrevs (original) (raw)
8.15
Changed in version 0.3 of package pict-abbrevs: The pict-abbrevs module no longer reprovidespict-abbrevs/slideshow, and consequently no longer depends on racket/gui/base.
1 Pict Utilities🔗ℹ
If the name revolution is too long, then do (require (rename-in pict-abbrevs [revolution turn])).
Examples:
Contract for "real percent". Same as (between/c 0 1).
Same as (>=/c 0).
Examples:
> (nonnegative-real? 0) #t > (nonnegative-real? 2.77) #t > (nonnegative-real? 9001) #t > (nonnegative-real? -1) #f > (nonnegative-real? 'X) #f
Flat contract for the kinds of values that pict functions can usually interpret as colors.
Creates a color% object. If pc and default are #false, returns (string->color% "white").
Examples:
> (pict-color->color% "blue") (object:color% ...) > (pict-color->color% #f) (object:color% ...)
Flat contract for an RGB triplet. See also: Plot Utilities.
Converts an RGB triplet to a color object.
Converts a Hex Code RGB to a color object. Expects inputs between #x000000 and #xffffff.
Example:
Returns a list of picts with identical width and height. The new picts may be old picts superimposed upon a blank background.
Example:
Similar to max but expects a list of numbers. Raises an exn:fail:contract? error when given an empty list.
Example:
Similar to min but expects a list of numbers. Raises an exn:fail:contract? error when given an empty list.
Example:
Compute the midpoint of the interval [x0, x1].
Example:
Returns a filled-rectangle with the given width, height, and color.
Examples:
> (rule 20 2) > (rule 1 10) > (rule 8 8)
Converts a string to a color object.
Exports the given pict to the file ps, using kind to determine the output format.
Changed in version 0.8 of package pict-abbrevs: Added support for 'pdf, 'ps, 'eps. Thanks toracket/pict/issues/74.
Added in version 0.8 of package pict-abbrevs.
(add-rectangle-background pp [#:radius radius #:color color #:draw-border? draw-border? #:x-margin x-margin #:y-margin y-margin]) → pict? pp : pict? radius : real? = 10 color : pict-color/c = "white" draw-border? : boolean? = #false x-margin : real? = 0 y-margin : real? = 0
Add a rectangle behind a pict.
Example:
(add-rounded-border pp [#:radius radius #:background-color bg-color #:frame-width frame-width #:frame-color frame-color #:x-margin x-margin #:y-margin y-margin]) → pict? pp : pict? radius : real? = 10 bg-color : pict-color/c = "white" frame-width : real? = 1 frame-color : pict-color/c = "black" x-margin : real? = 0 y-margin : real? = 0
Add a bordered rectangle behind a pict.
Example:
(add-spotlight-background pp [#:blur blur #:border-color border-color #:color color #:border-width border-width #:x-margin x-margin #:y-margin y-margin]) → pict? pp : pict? blur : (or/c #f real?) = 15 border-color : pict-color/c = "plum" color : pict-color/c = border-color border-width : real? = 10 x-margin : real? = 40 y-margin : real? = 40
Superimposes the given pict on a blurred ellipse.
Examples:
(bbox pp [#:color color #:frame-color frame-color #:frame-width frame-width #:x-margin x-margin #:y-margin y-margin]) → pict? pp : pict? color : pict-color/c = "white" frame-color : (or/c #f pict-color/c) = (bbox-frame-color) frame-width : (or/c #f real?) = (bbox-frame-width) x-margin : (or/c #f real?) = (bbox-x-margin) y-margin : (or/c #f real?) = (bbox-y-margin)
A standard big box, or basic box. Most importantly, the name bbox is easy to type.
Comes with reasonable defaults and parameters for fine-tuning.
Example:
Draws a small box around a pict. The name is easy to type.
Example:
Default values for bbox and sbox picts.
Create a new tag (symbol) from a sequence of values. Equivalent to:
Examples:
> (tag-append 'N 'W) 'N-W > (tag-append "-" 1) '--1
Add four blank picts to the sides of the base pict. These blank "hubs" are useful targets for lines and/or arrows; see the examples below.
- Each hub has a tag based on its compass direction:(tag-append tag 'N) for the top hub,(tag-append tag 'E) for the right hub,(tag-append tag 'S) for the bottom hub, and(tag-append tag 'W) for the left hub.
- The hub-len sets the size of each hub. Imagine four invisible lines around the pict, one on each side, each one centered in the middle of the side and hub-len units long.
- The margin sets the distance between a hub and the edge of the base pict. If #f, the default is a small positive distance.
Non-Example:
Clips a pict to a box with the given width and height (positioned at the center of the pict).
Example:
1.1 Pict Constructors🔗ℹ
Draw a blank pict with the same width and height as the given pict.
Example:
The pict function ghost is similar, but preserves tags and other metadata.
Draw a blank pict with the given width and zero height. Same as (blank width 0).
Added in version 0.7 of package pict-abbrevs.
Draw a blank pict with the given height and zero width. Same as (blank 0 height).
Added in version 0.7 of package pict-abbrevs.
Wrapper for the pict table function. Accepts either a flat list of picts or a list of equal-length lists.
Examples:
> (ptable pairs)
Added in version 0.8 of package pict-abbrevs.
(make-envelope-pict w h [#:color color #:line-width line-width #:line-color line-color]) → pict? w : nonnegative-real? h : nonnegative-real? color : pict-color/c = "mint cream" line-width : nonnegative-real? = 2 line-color : pict-color/c = "black"
Draw an envelope.
Examples:
> (make-envelope-pict 28 20) > (make-envelope-pict 50 24 #:color "rosy brown" #:line-color "powder blue" #:line-width 4)
Added in version 0.8 of package pict-abbrevs.
(make-check-pict n [#:color color #:line-width line-width #:line-color line-color]) → pict? n : nonnegative-real? color : pict-color/c = #f line-width : nonnegative-real? = #f line-color : pict-color/c = #f (make-cross-pict n [#:color color #:line-width line-width #:line-color line-color]) → pict? n : nonnegative-real? color : pict-color/c = #f line-width : nonnegative-real? = #f line-color : pict-color/c = #f
Draw a check mark, draw an X mark.
Example:
Added in version 0.8 of package pict-abbrevs.
(make-compass-pict side-len [#:color color]) → pict? side-len : nonnegative-real? color : pict-color/c = "black"
Draw a 4-pointed star that fits in a square with side length side-len.
Examples:
(make-mouse-cursor-pict w h [#:color color]) → pict? w : nonnegative-real? h : nonnegative-real? color : pict-color/c = "black"
Draw a simple mouse cursor.
Example:
(make-simple-flag base [#:flag-background-color flag-background-color #:flag-border-color flag-border-color #:flag-border-width flag-border-width #:flag-brush-style flag-brush-style #:flag-x-margin flag-x-margin #:flag-y-margin flag-y-margin #:pole-width pole-width #:pole-height pole-height #:pole-color pole-color #:pole-border-color pole-border-color]) → pict? base : pict? flag-background-color : (or/c (is-a?/c color%) #f) = #f flag-border-color : (or/c (is-a?/c color%) #f) = #f flag-border-width : (or/c nonnegative-real? #f) = #f flag-brush-style : (or/c brush-style/c #f) = #f flag-x-margin : (or/c nonnegative-real? #f) = #f flag-y-margin : (or/c nonnegative-real? #f) = #f pole-width : (or/c nonnegative-real? #f) = #f pole-height : (or/c nonnegative-real? #f) = #f pole-color : (or/c (is-a?/c color%) #f) = #f pole-border-color : (or/c (is-a?/c color%) #f) = #f
Draw a simple flag with base superimposed on the fabric.
Increase flag-x-margin and flag-y-margin to add space between the base pict and the edge of the flag.
Example:
Standard lightbulb. By Phil McGrath. License Apache-2.0.
Example:
Added in version 0.11 of package pict-abbrevs.
Draw the given string using all fonts returned by (get-face-list), or the first n fonts if a limit is supplied.
Example:
> (make-font-table-pict "Racket" #:limit 6)
2 Slideshow Abbrevs🔗ℹ
(slide-assembler/background base-assembler #:color background-color [#:draw-border? draw-border? #:border-color border-color #:border-width border-width]) → slide-assembler/c base-assembler : slide-assembler/c background-color : pict-color/c draw-border? : boolean? = #false border-color : pict-color/c = #false border-width : (or/c #f real?) = #false
Returns a slide assembler that: (1) uses the given base-assembler to create a pict, and (2) superimposes the pict onto a filled-rectanglethat covers the screen. The optional arguments set the style of the background rectangle.
(pixels->w% x) → real% x : nonnegative-real?
Converts a pixel distance to a percentage of the max screen width, i.e., (+ (* 2 margin) client-w). Raise an exn:fail:contract? exception if the given distance exceeds the max width.
(pixels->h% x) → real% x : nonnegative-real?
Converts a pixel distance to a percentage of the max screen height, i.e., (+ (* 2 margin) client-h). Raise an exn:fail:contract? exception if the given distance exceeds the max height.
(w%->pixels w) → nonnegative-real? w : real%
Converts a percent to the number of pixels required to cover that percent of client-w.
(h%->pixels w) → nonnegative-real? w : real%
Converts a percent to the number of pixels required to cover that percent of client-h.
Draws colored text.
Returns a placer that places picts to a reference point relative to an existing pict within the base. For at-underline the reference point is the bottom-left. For at-leftline the reference point is the top-left. If given, abs-x and abs-y shift the reference point. See also at-find-pict.
Draw a horizontal line wide enough to underline the given pict.
#lang racket/base (require pict-abbrevs/slideshow ppict/2) (let ((word (text "Word"))) (ppict-do (file-icon 50 40 "bisque") #:go (coord 1/2 1/2 'cc) word #:go (at-underline word) (make-underline word)))
Draw a vertical line that is equally high as the given pict.
#lang racket/base (require pict-abbrevs/slideshow ppict/2) (let ((word (text "Word"))) (ppict-do (file-icon 100 80 "bisque") #:go (coord 1/2 1/2 'cc) word #:go (at-leftline word) (make-leftline word #:width 10)))
Add a background of the given color to all picts tagged (in the sense oftag-pict?) with tag in the scene pp.
#lang racket/base (require pict-abbrevs/slideshow ppict/2) (ppict-do (blank 80 40) #:set (for/fold ((acc ppict-do-state)) ((i (in-range 8))) (ppict-do acc #:go (coord (/ (* i 10) 80) 9/10) (if (even? i) (tag-pict (text "X") 'X) (tag-pict (text "O") 'O)))) #:set (make-highlight* ppict-do-state 'X))
highlight-pen-color : pict-color/c
Default color for underlines, etc.
highlight-brush-color : pict-color/c
Default color for highlights.
3 PPict Abbrevs🔗ℹ
Animation helper for ppicts.
(pplay gen [#:steps steps #:delay delay-secs #:skip-first? skip-first? #:title title #:name name #:aspect aspect #:layout layout] #:gap-size real? #:inset slide-inset?) → void? gen : (-> ppict? (real-in 0.0 1.0) pict?) steps : exact-positive-integer? = (current-play-steps) delay-secs : real? = 0.05 skip-first? : any/c = #f title : (or/c string? #f) = #f name : (or/c string? #f) = title aspect : aspect? = #f layout : (or/c 'auto 'center 'top 'tall) = 'auto real? : (current-gap-size) slide-inset? : no-inset
Generates steps+1 pslides by calling gen on a base ppict (created by pslide) and equally-spaced values from 0.0(inclusive) to 1.0 (exclusive). Except for the first slide (which may be skipped), each slide has a timeout ofdelay-secs, so that the next slide appears automatically.
The #:steps, #:delay, and #:skip-first?options are interpreted the same as for the playprocedure. The remaining options are interpreted the same as forpslide.
Example:
Added in version 0.8 of package pict-abbrevs.
4 raco pict🔗ℹ
To vertically append image files and/or Racket modules:
raco pict vl-append ARG ...
If an ARG is an image file, then raco pict parses it via thebitmap function.
If an ARG is a #lang module, then it must contain a submodule named raco-pictthat provides an identifier named raco-pict. For example:
Other pict functions may work.
Other arguments may work as expected. Certainly raco pict vl-append 20 a.png b.png vertically appends two image files with "20 space" in between.