方位と a 側
N E S W は軸の言葉である。
| 語 | 軸 | 向き |
|---|---|---|
N | +Y | 北 |
S | −Y | 南 |
E | +X | 東 |
W | −X | 西 |
方位磁針ではない。建物が真北を向いていなくても、この四語は grid X と grid Y が張った座標系の +X / −X / +Y / −Y をそのまま指す。座標の綴り方は 位置と領域 にある。
koyu 1.0
name 方位の例
unit mm
grid X 0 6400
grid Y 0 5600
level L1 0 h:2700 slab:200
space /L1/room room X1..X2 Y1..Y2 name:居室 daylight:1
space /out exterior name:外部
boundary /L1/room /out t:150
window w:2400 h:1500 edge:S name:南窓
window w:1200 h:1500 edge:E name:東窓
door w:900 h:2100 edge:N name:勝手口
上の居室は X1..X2 Y1..Y2 の一枚の矩形なので、外部への境界は四本の線分に分かれる。edge:S は Y1 の側 (y = 0)、edge:N は Y2 の側 (y = 5600)、edge:W は X1 の側、edge:E は X2 の側である。
なぜこの対応になるか
導出された領域の輪郭は反時計回りに巡る。その頂点列を一周し、軸に平行な辺だけを読むと、+x へ進む辺が S、−x が N、+y が E、−y が W の面になる。結果として N は +Y、S は −Y、E は +X、W は −X の面を指す。
斜めの辺は方位を持たない。line で引いた斜めの境界に edge: を書いても絞られない — line を持つ境界の線分はそもそも edge: の絞り込みを受けない。
edge: は何を選ぶか
edge: は境界の線分を、その方位のものだけに絞る。書ける場所は三つある。
| 書く場所 | 効き方 |
|---|---|
boundary の行 | その境界が持つ線分を、はじめから一つの方位に限定する |
door / window の行 | 境界の線分のうち、開口を置く辺を選ぶ |
seg の行 | 同上 |
外部への境界は線分が複数になるのが普通である。部屋の外周から他の空間と接する区間を除いた残りが線分になるので、四周が空いていれば四本になる。そこへ辺を選ばずに開口を置こうとすると止まる。
There is more than one boundary segment; pick an edge with edge:N/E/S/W (/L1/a | /out)
これが OPN05 (開口) と SEG05 (seg) である。逆に、その方位に線分が一本も無ければ OPN04 / SEG04 になる。
a 側 — 方位はどちらの空間から見た言葉か
edge: の方位は、境界の行に先に書いた空間 (a 側) の形から読む。
space /L1/a room X1..X2 Y1..Y2
space /L1/b room X2..X3 Y1..Y2
boundary /L1/a /L1/b edge:E # a の東の面 = 二室の間の壁
同じ壁を書き順だけ変えると、方位は裏返る。
No shared edge on edge:E: /L1/b | /L1/a (they actually touch on W)
/L1/b を先に書けば、二室の間の壁は b から見て西にあるので edge:W になる。a と b の書き順が意味を持つのは edge と swing の二つだけである — それ以外 (線分の位置、面積の分け方、描かれた線がどちら側を残すか) は書き順に依らない。
a 側が領域を持たないときは、領域を持つ側から読む。boundary /out /L1/room edge:N の N は /L1/room の北面である — 外部には形が無いので、方位を読む相手がそこにしかない。
開き勝手 — hinge と swing
扉の開き方は二つの語で決まる。片方は軸の言葉、片方は関係の言葉である。
hinge は吊元 — 線分のどちらの端に蝶番が付くか。
| 線分 | 書ける値 | 書かなければ |
|---|---|---|
水平 (N / S の面) | W / E | 西端 (座標の小さい方) |
垂直 (E / W の面) | S / N | 南端 (座標の小さい方) |
| 斜め | — | 始端側に固定される |
軸を取り違えれば OPN01 になる — 水平の線分に hinge:N は書けない。線分は常に座標の昇順に向くので、「始端」は西端または南端である。
swing は開く先 — a 側と b 側のどちらへ開くか。a / b の二値で、方位ではない。書かなければ、a が領域を持てば a、でなければ b へ開く。実際の回転の向きは、開く先の形のうち開口に最も近い部分の中心へ向かう成分で決まる。
style:sliding と style:auto の開口は軌跡を持たない — 吊元の側へ引き込まれる。
at: の軸は辺が決める
水平の線分 (N / S) の上では位置は X の通り参照で、垂直の線分 (E / W) の上では Y の通り参照で書く。
The door position X1+1000 is on the wrong axis: a vertical segment takes a Y grid line
これが OPN07 / SEG07 である。比率 (at:0.3) はどちらの線分でも書ける。
縦動線の値も方位である
stair: ramp: escalator: の値は上る向きであり、同じ四語を使う。
space /B1/st stair X3..X3+2600 Y2..Y2+5400 name:避難階段 stair:N form:return
stair:N は「+Y へ向かって上る」である。段数も踏面も勾配も書かない — 領域と階高から導かれる。昇降機だけは向きを持たないので lift:1 と書く。値が四語のどれでもなければ RUN02 になる。