jw_cad 外部変形 - (792) rubyでソリッド図形の矩形を描く -

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

 

rubyでソリッド図形の矩形を描く

:rubyでソリッド図形の矩形を描く
@echo off
ruby -x %0 jwc_temp.txt
goto:eof

REM #jww
REM #1-%d 矩形の始点を指示してください
REM #2%d 対頂点を指示してください
REM #e

#!ruby -Ks -an -i.bak
BEGIN { include Math }
case $_
  when /^hk/ then hk = $F[1].to_f
  when /^hp1/ then p1 = $F[1, 2].map { |x| x.to_f }
  when /^hp2/ then p2 = $F[1, 2].map { |x| x.to_f }
    x1, y1, x2, y2 = (p1 + p2)
    r, g, b = 0, 128, 128
    puts "lc10 %s" % [r + 256 * g + 256 * 256 * b]
    co = cos(d = hk * PI / 180)
    si = sin(d)
    ww = (x2 - x1) * co + (y2 - y1) * si
    hh =-(x2 - x1) * si + (y2 - y1) * co
    p3 = x1 + ww * co, y1 + ww * si
    p4 = x1 - hh * si, y1 + hh * co
    puts "sl" + " %s %s" * 4 % (p1 + p3 + p2 + p4)
end
__END__