図形の移動
図形を移動する場合、図形データの座標値に、移動量(dx,dy)を加算します。
AWKでは、変数を定義する必要がなく、どこでも変数を使うことができます。
また、数式内で同一の変数を使用することができるので、
移動後の座標値(x,y)を求める式の例は、下記となります。
x=x+dx
y=y+dy
右辺のx,yには、直前のx,yの数値が代入され、新しいx,yを求めることができます。
$1や$2は、組込変数なので、直接代入することもできます。
$1=$1+dx
$2=$2+dy
線/円/円弧/楕円/文字を移動するバッチファイルの例です。
@REM 図形移動
@echo off
REM #jww
REM #cd
REM #h2 範囲内データ・範囲内外に跨る線データを選択
REM #hc 範囲選択から基準点を指定してください 右AM0時「確定 基点<< Read >>」
REM #1 移動先の点を指定してください (L)free (R)Read
REM #hr
REM #e
jgawk 'BEGIN{OFMT="%%.15g";print "hd"}/^^hp1/{dx=$2;dy=$3}/^^#/,/NF==0/{if(NF==4 ^&^& $1!="ci"){$1=$1+dx;$2=$2+dy;$3=$3+dx;$4=$4+dy;print $1,$2,$3,$4;next}if($1=="ci" ^|^| $1=="ch"){$2=$2+dx;$3=$3+dy;print $1,$2,$3,$4,$5,$6,$7,$8}else{print $0}}' jwc_temp.txt>temp.txt
copy temp.txt jwc_temp.txt
del temp.txt
◇OFMT="%%.15g"
printf文を使用せず、print文の書式制御をすることができます。
注)"print $0" には適用されません。
◇if(NF==4 ^&^& $1!="ci")
論理演算子の論理積を使った、線データを取得する条件式
注)1行スプリクトでは、&&を^&^& と記述
◇if($1=="ci" ^|^| $1=="ch")
論理和を使った、円/円弧/楕円/文字データを取得する条件式
注)1行スプリクトでは、||を^|^| と記述
| 固定リンク
コメント