BlackSheep-LSL@Wiki

llVecNorm

最終更新:

匿名ユーザー

- view
メンバー限定 登録/ログイン

llVecNorm

vector llVecNorm(vector v)

引数に指定したvector値vの単位ベクトルを得る。
単位ベクトルとは長さが1となるようなvector値のことで、指し示す方向は元のベクトルと同じもののことを言う。

例えば<2,0,0>はX方向に2mの大きさを持つベクトルであるが、このベクトルの単位ベクトルは、<1,0,0>である。
方向は同じX方向で、大きさが1mとなっている。

単位ベクトルがどのような場合に使えるかと言うと、例えばある二つのオブジェクトA,Bがあり、オブジェクトAをオブジェクトBに向けて15cmずつ動かしたい、などという状況を考えてみる。

オブジェクトAの座標をv1、Bの座標をv2とすると、AからBへ向かうベクトルは、v2 - v1である。
その単位ベクトルをv0とすると、
vector v0 = llVecNorm(v2 - v1);
このように単位ベクトルを取得できる。
オブジェクトAを、座標v1+v0の位置に動かすと、オブジェクトAはオブジェクトBに向かって1m進むことになる。
v0の大きさは1mなので、15cmずつ動かしたいなら、
llSetPos(llGetPos() + v0 * 0.15);
これでオブジェクトAはBに向かって15cmずつ動くことになる。

参考情報として、二つのvector間の距離を得る場合はllVecDist関数、
あるvectorの大きさを得る場合はllVecMag関数を使う。

名前:
コメント:
記事メニュー
目安箱バナー