Table 128 – Predefined spot functions

Name

Appearance

Definition

SimpleDot

1 (x 2 y 2 )

{ dup mul exch dup mul add 1 exch sub }

InvertedSimpleDot

x 2 y 2 1

{ dup mul exch dup mul add 1 sub }

DoubleDot

360xsin2------------------------------360ysin2------------------------------+

{ 360 mul sin 2 div exch 360 mul sin 2 div add }

InvertedDoubleDot

360xsin2------------------------------360ysin2------------------------------+–

{ 360 mul sin 2 div exch 360 mul sin 2 div add neg }

CosineDot

180xcos2-------------------------------180ycos2-------------------------------+

{ 180 mul cos exch 180 mul cos add 2 div }

Double

360x2---sin2-------------------------------360ysin2------------------------------+

{ 360 mul sin 2 div exch 2 div 360 mul sin 2 div add }

InvertedDouble

360x2---sin2-------------------------------360ysin2------------------------------+–

{ 360 mul sin 2 div exch 2 div 360 mul sin 2 div add neg }

Line

y

{ exch pop abs neg }

LineX

x

{ pop }

LineY

y

{ exch pop }

Round

if x y 1 then 1 (x 2 y 2 ) else ( x 1) 2 ( y 1) 2 1

{ abs exch abs 2 copy add 1 le { dup mul exch dup mul add 1 exch sub } { 1 sub dup mul exch 1 sub dup mul add 1 sub }

ifelse }

Ellipse

let w (3 x ) (4 y ) 3

if w 0 then

1x2y0.75----------2+4------------------------------–

else if w 1 then

1x–21y–0.75---------------2+4------------------------------------------------------1–

else 0.5 w

{ abs exch abs 2 copy 3 mul exch 4 mul add 3 sub dup 0 lt

{ pop dup mul exch 0.75 div dup mul add 4 div 1 exch sub } { dup 1 gt

{ pop 1 exch sub dup mul exch 1 exch sub 0.75 div dup mul add 4 div 1 sub } { 0.5 exch sub exch pop exch pop }

ifelse }

ifelse }

EllipseA

1 (x 2 0.9 y 2 )

{ dup mul 0.9 mul exch dup mul add 1 exch sub }

InvertedEllipseA

x 2 0.9 y 2 1

{ dup mul 0.9 mul exch dup mul add 1 sub }

EllipseB

1x258---y2+–

{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }

EllipseC

1 (0.9 x 2 y 2 )

{ dup mul exch dup mul 0.9 mul add 1 exch sub }

InvertedEllipseC

0.9 x 2 y 2 1

{ dup mul exch dup mul 0.9 mul add 1 sub }

Square

max ( x , y )

{ abs exch abs 2 copy lt { exch } if pop neg }

Cross

min ( x , y )

{ abs exch abs 2 copy gt { exch } if pop neg }

Rhomboid

0.9xy+2---------------------------------

{ abs exch abs 0.9 mul add 2 div }

Diamond

if x y 0.75 then 1 (x 2 y 2 ) else if x y 1.23 then 1 (0.85 | x | + | y | ) else ( | x | 1) 2 ( | y | 1) 2 1

{ abs exch abs 2 copy add 0.75 le

{ dup mul exch dup mul add 1 exch sub } { 2 copy add 1.23 le

{ 0.85 mul add 1 exch sub } { 1 sub dup mul exch 1 sub du mul add 1 sub }

ifelse }

ifelse }