外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
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 #1ln 線を指示してください
REM #2 基準点を指示してください
REM #bz
REM #e
#!ここから more +n %0 の n 行目:最初の行は 0 行
function lnlength(x) { return ($0 = x) ? sqrt( ($3 - $1) ^ 2 + ($4 - $2) ^ 2) : 0 }
function lnslope(x) { return ($0 = x) ? atan2($4 - $2, $3 - $1) : 0 }
function ln_hpdist(ln, hp, x) {
$0 = ln
x = hp FS $1 FS $2
return lnlength(x) * sin(lnslope(ln) - lnslope(x))
}
function lnmove(ln, b, d, co, si) {
d = lnslope(ln)
co = cos(d)
si = sin(d)
$0 = ln
$1 -= b * si
$2 += b * co
$3 -= b * si
$4 += b * co
return $0
}
BEGIN { CONVFMT = OFMT = "%.15g" }
/^hq/ { print "bz" }
/^hp2/ { p2 = $2 FS $3 }
/^[ ]/ && NF == 4 {
ln = $0
print lnmove(ln, ln_hpdist(ln, p2))
}