1# place 2 3A *place* is a specific point on an object. 4A *[position](./position.md)* is a more general concept that means 5any X,Y coordinate on the drawing. This page is about *place*. 6 7 * *object* 8 * *object* *dot-edgename* 9 * *edgename* **of** *object* 10 * ORDINAL **vertex of** *object* 11 12Every object has at least 9 places. Line objects have additional 13places for each internal vertex. Most places are on the boundary 14of the object, though ".center" or ".c" is in the middle. The 15".start" and ".end" places might be in the interior of the object 16for the case of lines. 17Some places may overlap. 18Places usually have multiple names. 19There are 22 different place names to refer to the 9 potentially 20distinct places. 21 22For a block object, when the layout direction is "right", we have: 23 24~~~ pikchr 25B: box thick thick color blue 26 27circle ".n" fit at 1.5cm heading 0 from B.n 28 arrow thin from previous to B.n chop 29circle ".north" fit at 3cm heading 15 from B.north 30 arrow thin from previous to B.north chop 31circle ".t" fit at 1.5cm heading 30 from B.t 32 arrow thin from previous to B.t chop 33circle ".top" fit at 3cm heading -15 from B.top 34 arrow thin from previous to B.top chop 35circle ".ne" fit at 1cm ne of B.ne; arrow thin from previous to B.ne chop 36circle ".e" fit at 2cm heading 50 from B.e; arrow thin from previous to B.e chop 37circle ".right" fit at 3cm heading 75 from B.right 38 arrow thin from previous to B.right chop 39circle ".end¹" fit at 3cm heading 100 from B.end 40 arrow thin from previous to B.end chop 41circle ".se" fit at 1cm heading 110 from B.se 42 arrow thin from previous to B.se chop 43circle ".s" fit at 1.5cm heading 180 from B.s 44 arrow thin from previous to B.s chop 45circle ".south" fit at 3cm heading 195 from B.south 46 arrow thin from previous to B.south chop 47circle ".bot" fit at 1.8cm heading 215 from B.bot 48 arrow thin from previous to B.bot chop 49circle ".bottom" fit at 2.7cm heading 160 from B.bottom 50 arrow thin from previous to B.bottom chop 51circle ".sw" fit at 1cm sw of B.sw; arrow thin from previous to B.sw chop 52circle ".w" fit at 2cm heading 270 from B.w 53 arrow thin from previous to B.w chop 54circle ".left" fit at 3cm heading 180+75 from B.left 55 arrow thin from previous to B.left chop 56circle ".start¹" fit at 2.5cm heading 295 from B.start 57 arrow thin from previous to B.start chop 58circle ".nw" fit at 1cm nw of B.nw; arrow thin from previous to B.nw chop 59circle ".c" fit at 2.5cm heading -25 from B.c 60 line thin from previous to 0.5<previous,B.c> chop 61 arrow thin from previous.end to B.c 62circle ".center" fit at 3.6cm heading 180-44 from B.center 63 line thin from previous to 0.5<previous,B.center> chop 64 arrow thin from previous.end to B.center 65circle "λ" fit at 2.5cm heading 250 from B 66 line from previous to 0.5<previous,B> chop 67 arrow thin from previous.end to B 68~~~ 69 70The diagram above is for a box with square corners. The non-center 71places for other block objects are always on the boundary of the 72object. Thus for an ellipse: 73 74~~~ pikchr 75B: ellipse thick thick color blue 76 77circle ".n" fit at 1.5cm heading 0 from B.n 78 arrow thin from previous to B.n chop 79circle ".north" fit at 3cm heading 15 from B.north 80 arrow thin from previous to B.north chop 81circle ".t" fit at 1.5cm heading 30 from B.t 82 arrow thin from previous to B.t chop 83circle ".top" fit at 3cm heading -15 from B.top 84 arrow thin from previous to B.top chop 85circle ".ne" fit at 1cm ne of B.ne; arrow thin from previous to B.ne chop 86circle ".e" fit at 2cm heading 50 from B.e; arrow thin from previous to B.e chop 87circle ".right" fit at 3cm heading 75 from B.right 88 arrow thin from previous to B.right chop 89circle ".end¹" fit at 3cm heading 100 from B.end 90 arrow thin from previous to B.end chop 91circle ".se" fit at 1cm heading 110 from B.se 92 arrow thin from previous to B.se chop 93circle ".s" fit at 1.5cm heading 180 from B.s 94 arrow thin from previous to B.s chop 95circle ".south" fit at 3cm heading 195 from B.south 96 arrow thin from previous to B.south chop 97circle ".bot" fit at 1.8cm heading 215 from B.bot 98 arrow thin from previous to B.bot chop 99circle ".bottom" fit at 2.7cm heading 160 from B.bottom 100 arrow thin from previous to B.bottom chop 101circle ".sw" fit at 1cm sw of B.sw; arrow thin from previous to B.sw chop 102circle ".w" fit at 2cm heading 270 from B.w 103 arrow thin from previous to B.w chop 104circle ".left" fit at 3cm heading 180+75 from B.left 105 arrow thin from previous to B.left chop 106circle ".start¹" fit at 2.5cm heading 295 from B.start 107 arrow thin from previous to B.start chop 108circle ".nw" fit at 1cm nw of B.nw; arrow thin from previous to B.nw chop 109circle ".c" fit at 2.5cm heading -25 from B.c 110 line thin from previous to 0.5<previous,B.c> chop 111 arrow thin from previous.end to B.c 112circle ".center" fit at 3.6cm heading 180-44 from B.center 113 line thin from previous to 0.5<previous,B.center> chop 114 arrow thin from previous.end to B.center 115circle "λ" fit at 2.5cm heading 250 from B 116 line from previous to 0.5<previous,B> chop 117 arrow thin from previous.end to B 118~~~ 119 120The "λ" case refers to when a bare object name is used. 121A bare object name is the same as referring to the center of 122the object. 123 124In the previous two diagrams, the ".start" and ".end" objects 125are marked with "¹" because 126the location of ".start" and ".end" varies 127according to the layout direction. The previous diagrams assumed 128a layout direction of "right". For other layout directions, we have: 129 130<blockquote> 131<table border="1" cellpadding="10px" cellspacing="0"> 132<tr><th>Layout Direction<th>.start<th>.end 133<tr><td>right<td>.w<td>.e 134<tr><td>down<td>.n<td>.s 135<tr><td>left<td>.e<td>.w 136<tr><td>up<td>.s<td>.n 137</table></blockquote> 138 139For a line, the place names refer to a bounding box that 140encloses the line: 141 142~~~ pikchr 143B: line thick thick color blue go 0.8 heading 350 then go 0.4 heading 120 \ 144 then go 0.5 heading 35 \ 145 then go 1.2 heading 190 then go 0.4 heading 340 "+" 146 147 line thin dashed color gray from B.nw to B.ne to B.se to B.sw close 148 149circle ".n" fit at 1.5cm heading 0 from B.n 150 arrow thin from previous to B.n chop 151circle ".north" fit at 3cm heading 15 from B.north 152 arrow thin from previous to B.north chop 153circle ".t" fit at 1.5cm heading 30 from B.t 154 arrow thin from previous to B.t chop 155circle ".top" fit at 3cm heading -15 from B.top 156 arrow thin from previous to B.top chop 157circle ".ne" fit at 1cm ne of B.ne; arrow thin from previous to B.ne chop 158circle ".e" fit at 2cm heading 50 from B.e; arrow thin from previous to B.e chop 159circle ".right" fit at 3cm heading 75 from B.right 160 arrow thin from previous to B.right chop 161circle ".end" fit at 2cm heading 120 from B.end 162 arrow thin from previous to B.end chop 163circle ".se" fit at 1cm heading 170 from B.se 164 arrow thin from previous to B.se chop 165circle ".s" fit at 1.5cm heading 180 from B.s 166 arrow thin from previous to B.s chop 167circle ".south" fit at 3cm heading 195 from B.south 168 arrow thin from previous to B.south chop 169circle ".bot" fit at 1.8cm heading 215 from B.bot 170 arrow thin from previous to B.bot chop 171circle ".bottom" fit at 2.7cm heading 160 from B.bottom 172 arrow thin from previous to B.bottom chop 173circle ".sw" fit at 1cm sw of B.sw; arrow thin from previous to B.sw chop 174circle ".w" fit at 2cm heading 300 from B.w 175 arrow thin from previous to B.w chop 176circle ".left" fit at 3cm heading 280 from B.left 177 arrow thin from previous to B.left chop 178circle ".start" fit at 2.5cm heading 265 from B.start 179 arrow thin from previous to B.start chop 180circle ".nw" fit at 1cm nw of B.nw; arrow thin from previous to B.nw chop 181circle ".c" fit at 2.5cm heading -15 from B.c 182 line thin from previous to 0.5<previous,B.c> chop 183 arrow thin from previous.end to B.c 184circle ".center" fit at 3.3cm heading 110 from B.center 185 line thin from previous to 0.5<previous,B.center> chop 186 arrow thin from previous.end to B.center 187circle "λ" fit at 1.7cm heading 250 from B 188 line from previous to 0.5<previous,B> chop 189 arrow thin from previous.end to B 190~~~ 191 192The ".start" of a line always refers to its first vertex. 193The ".end" is usually the last vertex, except when the "`close`" 194keyword is used, in which case the ".end" is the same as 195".e", ".s", ".w", or ".n" depending on layout direction, 196just like a block object. 197 198The vertexes of a line object are also places: 199 200~~~ pikchr 201B: line -> thick color blue go 0.8 heading 350 then go 0.4 heading 120 \ 202 then go 0.5 heading 35 \ 203 then go 1.2 heading 190 then go 0.4 heading 340 204 205oval "1st vertex" fit at 2cm heading 250 from 1st vertex of B 206 arrow thin from previous to 1st vertex of B chop 207oval "2nd vertex" fit at 2cm west of 2nd vertex of B 208 arrow thin from previous to 2nd vertex of B chop 209oval "3rd vertex" fit at 2cm north of 3rd vertex of B 210 arrow thin from previous to 3rd vertex of B chop 211oval "4th vertex" fit at 2cm east of 4th vertex of B 212 arrow thin from previous to 4th vertex of B chop 213oval "5th vertex" fit at 2cm east of 5th vertex of B 214 arrow thin from previous to 5th vertex of B chop 215oval "6th vertex" fit at 2cm heading 200 from 6th vertex of B 216 arrow thin from previous to 6th vertex of B chop 217~~~ 218