jw_cad 外部変形 - (721) gawkで矩形に内接する楕円を描く(ov) -

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

 

gawkで矩形に内接する楕円を描く(ov)

:gawkで矩形に内接する楕円を描く(ov)
@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 行
function abs(x) { return x > 0 ? x : -x }
/^hk/ { hk = $2 }
/^hp1/ { p1 = $2 FS $3 }
/^hp2/ { p2 = $2 FS $3
  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
  p = ($1 + $3) / 2 FS ($2 + $4) / 2
  r = abs(ww) / 2
  w = abs(hh / ww)
  print "ci", p, r, 0, 360, w, hk
}