1# Circle objects
2
3A is defined by one of:
4
5   *  `radius`
6   *  `diameter`
7   *  `width`
8   *  `height`
9
10Only one of these values can set for any particular circle.  The others
11are determined automatically by the first.
12The default radius is value of the "`circlerad`" variable.
13
14
15~~~~ pikchr indent
16A: circle thick rad 120%
17line thin color gray left 70% from 2mm left of (A.w,A.n)
18line same from 2mm left of (A.w,A.s)
19text "height" at (7/8<previous.start,previous.end>,1/2<1st line,2ndline>)
20line thin color gray from previous text.n up until even with 1st line ->
21line thin color gray from previous text.s down until even with 2nd line ->
22X1: line thin color gray down 50% from 2mm below (A.w,A.s)
23X2: line thin color gray down 50% from 2mm below (A.e,A.s)
24text "width" at (1/2<X1,X2>,6/8<X1.start,X1.end>)
25line thin color gray from previous text.w left until even with X1 ->
26line thin color gray from previous text.e right until even with X2 ->
27X3: line thin color gray right 70% from 2mm right of (A.e,A.s)
28X4: line thin color gray right 70% from A.rad above start of X3
29text "radius" at (6/8<X4.start,X4.end>,1/2<X3,X4>)
30line thin color gray from (previous,X3) down 30% <-
31line thin color gray from (previous text,X4) up 30% <-
32line thin color gray <-> from A.sw to A.ne
33line thin color gray from A.ne go 0.5*A.rad ne then 0.25*A.rad east
34text " diameter" ljust at end of previous line
35~~~~
36
37## Boundary points:
38
39~~~~ pikchr indent
40A: circle thin
41dot ".c" above at A
42dot ".n" above at A.n
43dot " .ne" ljust above at A.ne
44dot " .e" ljust at A.e
45dot " .se" ljust below at A.se
46dot ".s" below at A.s
47dot ".sw " rjust below at A.sw
48dot ".w " rjust at A.w
49dot ".nw " rjust above at A.nw
50~~~~
51