« 寸法編集 | トップページ | 寸法編集(カンマ付) »

2007年6月12日 (火)

六角形の作図

中心点と対辺の間隔を指定して六角形を作図する外変です。
外変用バッチファイルとスクリプトファイルの他に、
前回値を保存するテキストファイル wd.txt が必要になります。
wd.txt 内には、何も記述しなくてOKです。

<hex.bat>
---------------
@REM 六角形の作図
@echo off
goto %1

REM #jww
REM #cd
REM #hm|縦(L)|横(R)|
REM
REM #:1
REM #:2
REM #0 中心点を指示してください
REM #c 対辺の間隔を入力してください|前回値/スキップ|
REM #hr
REM #e
:1
:2
jgawk -vN=%1 -vWD=%2 -f hex.awk jwc_temp.txt wd.txt>jwc_temp.txt
rename wd.txt wwd.txt
jgawk -vWD=%2 'BEGIN{if(WD+0!=0){print "wd",WD;exit}};NR==1{print}' wwd.txt>wd.txt
del wwd.txt
goto end
:end

<hex.awk>
---------------
#六角形
BEGIN{rt3=sqrt(3)}
#座標計算
/^wd/{wd=$2}{if(WD+0==0)WD=wd}{x=WD/2;y=rt3*x/3;yt=2*rt3*x/3}
#作図
END{
#縦方向
{if(N==1)
{printf "%.15g %.15g %.15g %.15g\n",x,-y,x,y
printf "%.15g %.15g %.15g %.15g\n",x,y,0,yt
printf "%.15g %.15g %.15g %.15g\n",0,yt,-x,y
printf "%.15g %.15g %.15g %.15g\n",-x,y,-x,-y
printf "%.15g %.15g %.15g %.15g\n",-x,-y,0,-yt
printf "%.15g %.15g %.15g %.15g\n",0,-yt,x,-y}}
#横方向
{if(N==2)
{printf "%.15g %.15g %.15g %.15g\n",yt,0,y,x
printf "%.15g %.15g %.15g %.15g\n",y,x,-y,x
printf "%.15g %.15g %.15g %.15g\n",-y,x,-yt,0
printf "%.15g %.15g %.15g %.15g\n",-yt,0,-y,-x
printf "%.15g %.15g %.15g %.15g\n",-y,-x,y,-x
printf "%.15g %.15g %.15g %.15g\n",y,-x,yt,0}}
}

|

« 寸法編集 | トップページ | 寸法編集(カンマ付) »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/94529/15410519

この記事へのトラックバック一覧です: 六角形の作図:

« 寸法編集 | トップページ | 寸法編集(カンマ付) »