« HSPTV!メルマガ 第69号 | メイン | 【よみもの】ゆめゆめ日記 第1回 »

2009年01月19日

【講座】HSP3ワンポイントテクニック 第36回

このコーナーでは、HSP3の変わった使用例や、気付きにくい機能
などを紹介していきたいと思います。
今回は、2点間の距離を求める方法を考えてみましょう。
たとえば、画面上のある点から別の点まで、直線でどの程度
離れているかを知りたい場合など。
横軸(X軸)や縦軸(Y軸)がどれくらい離れているかは、単純に
座標の値を引き算すれば出てきます。しかし、平面(画面)上の
点(X,Y)がどれくらいかは1回の計算では求まりません。
実際に、距離を求めるスクリプトは以下のようになります。

x1=50:y1=50
x2=580:y2=320

color 255,0,0
line x1,y1,x2,y2

px=x2-x1:py=y2-y1
dist=sqrt(px*px+py*py)

pos 0,0
color 0,0,0
mes "("+x1+","+y1+")-("+x2+","+y2+")"
mes "距離="+dist

stop

このスクリプトでは、(x1,y1)の座標から(x2,y2)までの距離を
求めて画面上に表示します。距離を求めるための公式は、
中学校くらいで習うもので、「三平方の定理」とか
「ピタゴラスの定理」と呼ばれています。
sqrtという関数が使われていますが、これはルート(平方根)を
求めるためのもので、これにより実数値で距離を求めることが
できるようになっています。

距離を求める処理は、ゲームなどでも敵とぶつかったかどうかを
調べるのに使われています。距離が近ければ、ぶつかっていると
判断できるわけです。
ゲームでおおざっぱに使う場合は、正確な距離でなくても
構わないので、単純にX,Y軸がどれだけ離れているかを合計する
方法もあります。式にすると、「abs((x2-x1)+(y2-y1))」の
ようになります。

まだ公式を習っていない人も、手順を覚えてしまえば難しくは
ないので色々な場面で応用してみてください。ではでは、また。

(おにたま)

投稿者 usuaji : 2009年01月19日 02:18

口臭チェッカー市場