外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
外部変形の楕円データを考えます。
◎弧・楕円データ
ci %lg %lg %lg %lg %lg %lg %lg ( x y r p1 p2 w d )
x : 中心点の X 方向の座標
y : 中心点の Y 方向の座標
r : X 軸方向の半径
p1 : 始角(゚)(離心角)
p2 : 終角(゚)(離心角)
w : 扁平率(0.0001 ~ 10000 程度までが描画できる範囲)
Y 軸方向の半径を ry とすると w = ry / r
d : 傾角(゚)(X 軸からの角度(左回りが正))
・楕円データを指示・選択するときは指示番号や指標が利用できます
①指示番号の楕円データを取り出す
ci 1
ci 1, 2
ci 1..2
ci 1, 2, 3..4
②指標(文字列)で楕円データを代表する
1.ci
[1, 2].ci :index
(1..2).ci
[1, 2, 3..4].index.ci :index
③指標(シンボル)で楕円データを代表する
:ci1
・楕円データは配列、文字列が利用できます
④配列
[1.0, 2.0, 3.0, 0.0, 0.0, 1.0, 0.0]
["ci", 1, 2, 3, 0, 0, 1, 0]
⑤文字列
"1 2 3 0 0 1 0"
"1, 2, 3, 0, 0, 1, 0"
"ci 1 2 3 0 0 1 0"
・配列、文字列の要素にキーワードが利用できます
⑥ハッシュ
(x y r p1 p2 w d)
{x:1, y:2, r:3, w:1, d:0}
{:x=>1, :y=>2, :r=>3, :w=>1, :d=>0}
(C あるいは ci)
{C:[1, 2, 3, 0, 0, 1, 0]}
{:C=>[1, 2, 3, 0, 0, 1, 0]}
⑦キーワード引数
(x y r p1 p2 w d) あるいは (x y r w d)
ci x:1, y:2, r:3, w:1, d:0
ci :x=>1, :y=>2, :r=>3, :w=>1, :d=>0
(C あるいは ci)
ci C:[1, 2, 3, 0, 0, 1, 0]
ci :C=>[1, 2, 3, 0, 0, 1, 0]
⑧キーワード配列
(x y r p1 p2 w d) あるいは (x y r w d)
[x:1, y:2, r:3, w:1, d:0]
[:x=>1, :y=>2, :r=>3, :w=>1, :d=>0]
(C あるいは ci)
[C:[1, 2, 3, 0, 0, 1, 0]]
[:C=>[1, 2, 3, 0, 0, 1, 0]]
⑨キーワード文字列
(x y r p1 p2 w d) あるいは (x y r w d)
"x:1, y:2, r:3, w:1, d:0"
":x=>1, :y=>2, :r=>3, :w=>1, :d=>0"
"x=1, y=2, r=3, w=1, d=0"
(C あるいは ci)
"C:[1, 2, 3, 0, 0, 1, 0]"
":C=>[1, 2, 3, 0, 0, 1, 0]"
"C=[1, 2, 3, 0, 0, 1, 0]"
キーワードはデフォルト値を決めておけば
p ci r:3, w:0.7, d:30 #=> [0.0, 0.0, 3.0, 0.0, 360.0, 0.7, 30.0 + $hk]
p ci p1:30, p2:120 #=> [0.0, 0.0, 1.0, 30.0, 120.0, 1.0, 0.0 + $hk]
のようにできるので便利です。$hk は軸角が設定されているときの補正です。