外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
パワーシェルで2重線を引く(2sen)
:パワーシェルで2重線を引く(2sen)
@echo off
set w=%1
if not defined w (
set w=200
goto はい
)
if %1==1 set w=200
if %1==2 set w=400
if %1==3 set w=120
if %1==4 set w=150
if %1==5 set w=180
if %1==6 set w=220
if %1==7 set w=250
if %1==8 set w=300
if %1==9 set w=350
:はい
for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
more +%%n %0 | powershell -command -
)
goto:eof
REM #jww
REM #1-%d 始点を指示して下さい
REM #2%d 終点を指示して下さい
REM #k 線の幅| 200(L) | 400(R) | 120 | 150 | 180 | 220 | 250 | 300 | 350 |
REM #e
#!ここから more +n %0 の n 行目:最初の行は 0 行
gc jwc_temp.txt | %{
if ($_ -match "^hp1-") { $p1 = [regex]::split($_,' +')[1,2] }
if ($_ -match "^hp2") { $p2 = [regex]::split($_,' +')[1,2] }
}
$x1,$y1,$x2,$y2 = $($p1+$p2 | %{ [double] $_ })
$w = [double] $env:w
$d = [math]::atan2($y2-$y1,$x2-$x1)
$yw = $w/2*[math]::cos($d)
$xw =-$w/2*[math]::sin($d)
$mode = 1 #1=丸のキャップを付ける 0=付けない
&{
"$($x1+$xw) $($y1+$yw) $($x2+$xw) $($y2+$yw)"
if ($w -gt 0) { "$($x1-$xw) $($y1-$yw) $($x2-$xw) $($y2-$yw)"
if ($mode -eq 1) {
$p = $d * 180 / [math]::pi + 90
$r = $w / 2
"ci $x1 $y1 $r $p $($p + 180) 1 0"
"ci $x2 $y2 $r $($p - 180) $p 1 0"
}
}
} | sc jwc_temp.txt
#ここまで powershell は 文末に必ず空白行を置いてください