Skip to content
giginet edited this page Dec 22, 2011 · 6 revisions

Kwing.Vector

このライブラリは?

汎用的な2Dベクトル演算を行うクラスです。

使い方

HTMLのheadにこれを書きましょう。

<script type="text/javascript" src="https://raw.github.com/giginet/kwing.coffee/master/lib/vector.min.js"></script>

わずかこれだけ!

簡単な使い方

var vector = new Vector(10, 0); // x=10, y=0のベクトルを生成
vector.rotate(30); // ベクトルを反時計回りに30度回転
vector.resize(100); // ベクトルの長さを100にする
vector.x; // ベクトルのxの値を取り出す
vector.y; // ベクトルのyの値を取り出す

フィールド

x

xの値を取り出します

y

yの価を取り出します

メソッド

Vector#set(x, y)

ベクトルの値をx, yの値に書き換えます。 自分自身を返します。

Vector#add(v)

vのベクトルを破壊的に加算します。 vは変更されません。 自分自身を返します。

Vector#sub(v)

vのベクトルを破壊的に減算します。 vは変更されません。 自分自身を返します。

Vector#scale(n)

スカラー倍します。 自分自身を返します。

Vector#div(n)

各要素をnで割ります。 自分自身を返します。

Vector#product(v)

vとの内積を求めて返します

Vector#normalize

方向の等しい単位ベクトル(長さが1のベクトル)にします。 ゼロベクトルに対して適応したときは何も起こりません。 自分自身を返します。

Vector#length()

ベクトルの長さを返します

Vector#clone()

同じ要素を持つ新しいベクトルを生成して返します

Vector#rotate(deg)

ベクトルを反時計回りに回転します。角度はラジアンではなく、度数法で指定してください。 自分自身を返します。

Vector#angle()

ベクトルの角度を-180度から180度の範囲で返します。度数法で返ってきます。

Vector#resize(length)

ベクトルをlengthの長さにします 自分自身を返します。

Vector#reverse()

ベクトルを反転します。180度回転させたときと同様です。 自分自身を返します。

Vector#max(max)

ベクトルの長さがmax以上であれば、maxにトリムして自分自身を返します。 それ以下であれば、そのまま自分を返します。

Vector#min(min)

ベクトルの長さがmin以下であれば、minにリサイズして自分自身を返します。 それ以上であれば、そのまま自分を返します。

ソースコード

githubで公開中。

CoffeeScriptで開発したため、ビルド環境が必要です。

https://github.com/giginet/kwing.coffee/blob/master/lib/vector.coffee

テスト

テスト書いてません><