jw_cad 外部変形 - (1504-3) jw.rbで正多角形を返す(n.pg 基点) -

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

 

jw.rbで正多角形を返す(n.pg 基点)

:jw.rbで正多角形を返す(n.pg 基点)
@echo off
ruby -x %0
goto:eof

REM #jww
REM #0 位置を指示してください
REM #e

#!ruby -Ks -rjw
jww
for k in 0..2
  n, r, d = 3 + k, 100, 30
  1.step(5, 0.5).each.with_index(1) do |c, j|
    x = ( (j % 3) == 0 ? 900 : 450 * ( (j % 3) - 1)) + 1350 * k
    y = j < 4 ? 0 : (j < 7 ? 450 : 900)
    for i in 0..2
  #0:中心→頂点指定、1:中心→辺指定、2:辺寸法指定
      lc 6+i
      b = n.pg(mode:i, r:r, d:d)
  #正多角形 b の開始点 [0, 0]
      plot a = b.kiten(c, [0, 0]).mov(x, y)
      plot ci([0, 0], 10 * (i+1)).mov(x, y)
      a.each_with_index { |z, i| plot ch z, i.to_s if z != "#" && i < n }
    end
  end
end
__END__

 

 

正多角形の基点は 始点を 1 、始辺の中央を 1.5、終点を 2、次の頂点を 3~、辺の中央を 2.5~ としています。

上図の左下の正三角形は

  lc 6

  plot 3.pg(mode:0, r:100, d:30).kiten(1, [0, 0])

  lc 7

  plot 3.pg(mode:1, r:100,d:30).kiten(1, [0, 0])

  lc 8

  plot 2.pg(mode:2, r:100, d:30).kiten(1, [0, 0])

のようになります。

 

jw.rb は ruby による jw_cad 外部変形用のライブラリです。