Matter.js に入門してみる – Matter.Vector クラス

Matter.Vector Class はベクトル演算の処理をまとめたもの。メソッドは以下のものがある。

正確な情報は公式ドキュメント Matter.Vector を参照してください。

add ベクトルの足し算
sub ベクトルの引き算
mult ベクトルの掛け算
div ベクトルの割り算
angle ベクトル間の角度(ラジアン)
cross ベクトルの外積
dot ベクトルの内積
magnitude ベクトルの大きさ
magnitudeSquared ベクトルの大きさの自乗
neg ベクトルを反転
normalise ベクトルを正規化
perp 垂直ベクトル
rotate ベクトルを回転
rotateAbout 指定された座標からベクトルを回転

Vector.add

足し算

var v1 = {x: 1, y: 1}; var v2 = {x: 1, y: 1}; var add = Vector.add(v1, v2); console.log('add', add); -> add Object {x: 2, y: 2}

Vector.sub

ベクトルの引き算

var v1 = {x: 10, y: 10}; var v2 = {x: 10, y: 100}; var sub = Vector.sub(v1, v2); console.log('sub', sub); -> sub Object {x: 0, y: -90}

Vector.mult

ベクトルの掛け算

var v1 = {x: 10, y: 10}; var mult = Vector.mult(v1, 10); console.log('mult', mult); -> mult Object {x: 100, y: 100}

Vector.div

ベクトルの割り算

var v1 = {x: 10, y: 10}; var div = Vector.div(v1, 5); console.log('div', div); -> div Object {x: 2, y: 2}

Vector.angle

ベクトル間の角度(ラジアン)

var v1 = {x: 1, y: 1}; var v2 = {x: 10, y: 10}; var angle = Vector.angle(v1, v2); console.log('angle', angle * 180 / Math.PI + '度'); -> angle 45度

Vector.cross

ベクトルの外積

var v1 = {x: 1, y: 1}; var v2 = {x: 10, y: 100}; var cross = Vector.cross(v1, v2); console.log('cross', cross); -> cross 90

Vector.dot

ベクトルの内積

var v1 = {x: 10, y: 10}; var v2 = {x: 10, y: 10}; var dot = Vector.dot(v1, v2); console.log('dot', dot); -> dot 200

Vector.magnitude

ベクトルの大きさ

var v1 = {x: 10, y: 10}; var magnitudeSquared = Vector.magnitudeSquared(v1); console.log('magnitudeSquared', magnitudeSquared); -> magnitudeSquared 200

Vector.magnitudeSquared

ベクトルの大きさの自乗

->

Vector.neg

ベクトルを反転

var v1 = {x: 10, y: 10}; var neg = Vector.neg(v1, 4); console.log('neg', neg); -> neg Object {x: -10, y: -10}

Vector.normalise

ベクトルを正規化

var v1 = {x: 10, y: 10}; var normalise = Vector.normalise(v1); console.log('normalise', normalise); -> Object {x: 0.7071067811865475, y: 0.7071067811865475}

Vector.perp

垂直ベクトル

var v1 = {x: 10, y: 10}; var perp = Vector.perp(v1, 90 * Math.PI / 180);//vector, angle console.log('perp', rotate); -> perp Object {x: -10, y: 10}

Vector.rotate

ベクトルを回転

var v1 = {x: 10, y: 10}; var rotate = Vector.rotate(v1, 90 * Math.PI / 180);//vector, angle console.log('rotate', rotate); -> rotate Object {x: -10, y: 10}

Vector.rotateAbout

指定された座標からベクトルを回転

var v1 = {x: 10, y: 10}; var v2 = {x: 10, y: 100}; var rotateAbout = Vector.rotateAbout(v1, 90 * Math.PI / 180, v2);//vector, angle, point console.log('rotateAbout', rotateAbout); -> rotateAbout Object {x: 100, y: 100}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です