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

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

Filename: kern/kern_scm/pattern_scm.cxx

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

Arg Types: pat pattern

face face

center position

axis gvector

Returns: boolean

Description: This extension returns #t if a pattern lies on the cylindrical surface. Otherwise, it returns #f.


pat specifies a pattern.


face specifies a cylindrical face.


center and axis together specify a cylindrical surface.

Example: ; pattern:cylindrical?

; Choose an axis and a center defining a cylinder.

(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 cylindrical symmetry about

; the center and normal?

(pattern:cylindrical? pat center normal)

;; #t

; Try another pattern.

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

;; #[pattern

;; 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"

;; sale: "null_law"

;; keep: "null_law"

;; no list]

(pattern:cylindrical? pat center normal)

;; #t

; Try yet another pattern.

(set! pat (pattern:elliptical center


(gvector 1 0 0) 5))

;; #[pattern

;; trans-vec: "VEC(5,6,3)"

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

;; *COS(1.256637061435917*X)

;; +VEC(0,-1,0)*SIN

;; (1.256637061435917*X),0,4)"

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

;; z-vec: "null_law"

;; scale: "null_law"

;; keep: "null_law"

;; no list]

(pattern:cylindrical? pat center normal)

;; #f
PDF/KERN/14SCI.PDF
HTM/DATA/KERN/KERN/14SCI/0060.HTM