jw_cad 外部変形 - (番外) jw.rbの楕円データ -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

外部変形の楕円データを考えます。

  ◎弧・楕円データ
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 は軸角が設定されているときの補正です。