pattern:circular?
List of: Scheme Extensions
Subjects: Patterns
Contents: Kernel

Action: Determines whether or not a pattern lies on a given circle.

Filename: kern/kern_scm/pattern_scm.cxx

Syntax: (pattern:circular? pat {face | {center axis}})

Arg Types: pat pattern

face face

center position

axis gvector

Returns: boolean

Description: This extension is limited in that the pattern must be defined.


This extension returns #t if a pattern lies on the circular surface associated with the face or, alternately, with the combination of center and axis. Otherwise, it returns #f.


pat specifies a pattern.


face specifies a circular face.


center and axis together specify a circular surface.

Example: ; pattern:circular?

; ; choose an axis and a center defining a circle

(define center (position 5 6 3))

;; center

(define normal (gvector 0 0 1))

;; normal

; make a pattern

(define pat (pattern:cylindrical


center normal 4 10 3))

;; pat

; does the result have circular symmetry about center ; and normal?

(pattern:circular? pat center normal)

;; #f

; what about this pattern?

(set! pat (pattern:elliptical center normal 5))

;; trans-vec: "DOMAIN(VEC(5,6,3)+VEC(0,0,1)

;; *3*X2,0,3,0,9)"

;; x-vec:
"VEC(-1,0,0)*COS

;; (1.570796326794897*X+0)

;; +VEC(0,1,0)*SIN(1.570796326794897*X+0)"

;; y-vec:
"VEC(0,0,1)"

;; z-vec:
"null_law"

;; scale:
"null_law"

;; keep:
"null_law"

;; no list]

(pattern:circular? pat center normal)

;; #t
PDF/KERN/14SCI.PDF
HTM/DATA/KERN/KERN/14SCI/0054.HTM