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

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

 

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

:perlで矩形に内接する楕円を描く(ov)
@echo off
perl -x %~f0 jwc_temp.txt
goto:eof

REM #jww
REM #1-%d 楕円が内接する矩形の始点を指示してください
REM #2%d 対頂点を指示してください
REM #e

#!perl -an -i.bak
BEGIN {
    $PI = atan2(1, 1) * 4;
}
if (/^hk/) { $hk = @F[1]; }
if (/^hp1/) { ($x1, $y1) = @F[1,2]; }
if (/^hp2/) { ($x2, $y2) = @F[1,2];
    $co = cos($d = $hk * $PI / 180);
    $si = sin($d);
    $ww = ($x2 - $x1) * $co + ($y2 - $y1) * $si;
    $hh =-($x2 - $x1) * $si + ($y2 - $y1) * $co;
    @p = (($x1 + $x2) / 2, ($y1 + $y2) / 2);
    $r = abs($ww) / 2;
    $w = abs($hh / $ww);
    print "ci @p $r 0 360 $w $hk\n";
}
__END__