« 分割複写 | トップページ | 長方形の中心2 »

2009年10月13日 (火)

バルーン

2点を指定して、バルーンを作図する外部変形です。

1.円の半径は、書込み文字種の高さに対応 (3~5を推奨)
2.線色・文字色は、書込み線色で作図
3.引出線角度は、任意角/15°毎 (batファイルを編集)
4.引出線先端は、矢印/点マーカ (awkファイルを編集)
5.引出線矢印は、曲線属性化
6.番号入力時、スキップ(左 or 右クリック)で連番作図可           

Balloon

balloon.bat
--------------------
@REM バルーン
@echo off
REM
REM #jww
REM #cd
REM #1/ 始点を指定してください(15°毎)
REM REM #1- 始点を指定してください(任意角)
REM #2 円中心を指定してください
REM #c 番号(半角)を入力してください | 連番はスキップ |
REM #hr
REM #e
REM
copy jwc_temp.txt+nbr.txt
jgawk -vN=%1 -f balloon.awk jwc_temp.txt>temp.txt
rename nbr.txt t_nbr.txt
jgawk -vN=%1 'BEGIN{if(N+0!=0){print "stN",N;exit}}NR==1{N=$2;N=N+1;print "stN",N}' t_nbr.txt>nbr.txt
copy temp.txt jwc_temp.txt
del temp.txt
del t_nbr.txt
REM
REM 任意角度にする場合は、6行目と7行目の"REM"を変更してください。
--------------------

◇初回作図時に番号が作図できない不具合を修正 10/14
◇データ処理の不具合を修正 10/15

balloon.awk
--------------------
####### バルーン #######
##### 初期設定 #####
BEGIN{
pi=atan2(0,-1);dq="\"";
#点マーカ倍率
ms=0.2;
#円半径補正
cl=2;
#文字間隔
sp=0;
#矢印/長さ・角度
arw=3;th=pi/12;
#入力番号取得
inbr=dq N
}
###データ取得
#縮尺
/^hs/{for(i=0;i<=9;i++)S[i]=$(i+2);
S["a"]=$12;S["b"]=$13;S["c"]=$14;
S["d"]=$15;S["e"]=$16;S["f"]=$17}
/^lg/{lg=substr($1,3);sc=S[lg]}
#文字種
/^hcw/{for(i=1;i<=10;i++)CW[i]=$(i+1)}
/^hch/{for(i=1;i<=10;i++)CH[i]=$(i+1)}
/^cn"/{next}
/^cn/{cn=substr($1,3,2)
if(cn>=1){cw=CW[cn];ch=CH[cn];cd=sp}}
/^cn0/{cw=$2;ch=$3;cd=sp}
#線色取得
/^lc/{lc=substr($1,3,3)}
#座標取得
/^hp1/{xs=$2;ys=$3}
/^hp2/{xe=$2;ye=$3}
#連番処理
/^stN/{stnbr=$2}
{if(stnbr==""){cnbr=inbr;next}if(N+0==0){nbr=stnbr+1;cnbr=dq nbr}else{cnbr=inbr}}
##### 書出し ######
END{
#縮尺補正
al=sc*arw;
r=sc*(ch+cl)/2;
#指示線角度
anr=atan2((ye-ys),(xe-xs));
#矢印座標
xwu=xs+al*cos(anr+th);ywu=ys+al*sin(anr+th);
xwl=xs+al*cos(anr-th);ywl=ys+al*sin(anr-th);
#引出線終点位置
xte=xe-r*cos(anr);yte=ye-r*sin(anr);
#曲線属性
print "pl";
#引出線作図
printf "%.15g %.15g %.15g %.15g\n",xs,ys,xte,yte;
#矢印作図
printf "%.15g %.15g %.15g %.15g\n",xs,ys,xwu,ywu;
printf "%.15g %.15g %.15g %.15g\n",xs,ys,xwl,ywl;
#点マーカー作図
#printf "%s %.15g %.15g %.15g %d %d\n","pt",xs,ys,ms,0,7;
#円作図
printf "%s %.15g %.15g %.15g\n","ci",xe,ye,r;
#ユーザー文字指定
printf "%s %.15g %.15g %.15g %d\n","cn0",cw,ch,cd,lc;
#文字基点指定(中心)
print "cc4";
#番号作図
printf "%s %.15g %.15g %d %d %s\n","ch",xe,ye,5,0,cnbr
}
##########
##引出線の始点を点マーカで使用する場合は、
##スプリクトを修正してご利用ください。

|

« 分割複写 | トップページ | 長方形の中心2 »

コメント

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: バルーン:

« 分割複写 | トップページ | 長方形の中心2 »