6 Pict Finders
If find is a list, then the first element of find must be within pict, the second element of find must be within the first element, and so on. In general, the i+1st element must be within the ith element, so the list can provide a path to some specific pict, in case there is more than one occurrence of the pict that’s being searched for within pict.
If the last pict in find exists multiple times in the enclosing pict (either pict or the next-to-last element of find), then the location for the first found occurrence is returned by default. If nth is a larger number, then then first nth found locations are skipped. If nth is 'unique, then all instances are found, and an error is reported if multiple instances are found at different locations.
> (define p1 (disk 60)) > (define p2 (rectangle 60 60)) > (define p3 (hc-append p1 p2)) > (define p4 (hc-append p3 (arrow 60 0))) > (lt-find p4 p1)
0
0
> (cb-find p4 p2)
90
60
> (rb-find p3 p1)
60
60
> (lt-find p4 (list p1))
0
0
> (lt-find p4 (list p2 p1)) lt-find: sub-pict not found
sub-pict: #<pict>
in: #<pict>
> (lt-find p4 (list p2))
60
0
> (lt-find p4 (list p3 p2))
60
0
> (pin-over p4 p2 lt-find (colorize (text "lt-find") "darkgreen"))
> (panorama (pin-over p4 p2 rb-find (colorize (text "rb-find") "darkgreen")))
Changed in version 1.11 of package pict-lib: Removed implicit truncation of some centered coordinates
to integers.
Changed in version 1.16: Added the nth argument.
procedure
(pict-path? v) → boolean?
v : any/c
> (pict-path? null) #f
> (pict-path? (disk 30)) #t
> (pict-path? (list (disk 30) (rectangle 10 10))) #t
procedure
pict : pict-convertible?