外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
パワーシェルで多角形の面積を計算する
:パワーシェルで多角形の面積を計算する
@echo off
for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
more +%%n %0 | powershell -command -
)
goto:eof
REM #jww
REM #1-%d 点を指示してください
REM #99#%d
REM #e
#!ここから more +n %0 の n 行目:最初の行は 0 行
$hp = @(); foreach ($i in 0..100) { $hp += 0 }
$hpn= 0
(gc jwc_temp.txt) | foreach {
switch -regex -case ($_)
{
'^hp(\d+)-?\s+(\S+)\s+(\S+)' { $hp[$matches[1]]=$matches[2,3]; $hpn += 1 }
}
}
&{
#座標法 左回りが正
$n = $hpn
$a = 0
#閉鎖形とし 1 点と n 点は同じ点とする
if ($hp[1] -ne $hp[$n]) { $hp[$n+1] = $hp[1]; $n += 1 }
foreach ($i in 1..($n-1))
{
$x1,$y1 = ($hp[$i] | foreach { [double] $_ })
$x2,$y2 = ($hp[$i+1] | foreach { [double] $_ })
$a += ($x1 - $x2) * ($y1 + $y2) / 2
}
"h#Area = $([math]::round($a, 3))"
} | sc jwc_temp.txt
#ここまで powershell は 文末に必ず空白行を置いてください