jw_cad 外部変形 - (463) gawkで矩形を描く -

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

 

gawkGNUプロジェクトのawkです。

 

gawkで矩形を描く

:gawkで矩形を描く
@echo off
for /f %%n in ('gawk "/^#!/ { print NR }" %0') do (
  copy jwc_temp.txt myfiles > nul
  more +%%n %0 | gawk -f - myfiles > jwc_temp.txt
)
goto:eof

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

#!ここから more +n %0 の n 行目:最初の行は 0 行
/^hk/ { hk = $2 }
/^hp1/ { p1 = $2 FS $3 }
/^hp2/ { p2 = $2 FS $3 }
END {
  CONVFMT = OFMT = "%.15g"
  $0 = p1 FS p2
  co = cos(d = hk * atan2(1, 1) / 45)
  si = sin(d)
  ww = ($3 - $1) * co + ($4 - $2) * si
  hh =-($3 - $1) * si + ($4 - $2) * co
  p3 = $1 - hh * si FS $2 + hh * co
  p4 = $1 + ww * co FS $2 + ww * si
  print p1 RS p3 RS p2 RS p4 RS p1
}