すべてのベクトルは値によって定義されます。 xとy。ベクトルの長さは方程式length = sqrt(x^2 + y^2)で与えられます。ユニットの頂点を取得する操作は正規化と呼ばれます。あなたが書いたように、ベクトルを正規化するために、各ベクトル成分を長さで除算します。ここで
はJavaScriptで実装の例です:すべての
まず、あなたは何とかベクトルを定義する必要があります。 Vectorという新しいオブジェクトを作成します。次に、長さと新しいx、y値を計算する関数を追加します。
//creating Vector object
var Vector = function(x,y) {
this.x = x;
this.y = y;
}
Vector.prototype.normalize = function() {
var length = Math.sqrt(this.x*this.x+this.y*this.y); //calculating length
this.x = this.x/length; //assigning new value to x (dividing x by lenght of the vector)
this.y= this.y/length; //assigning new value to y
}
var v1 = new Vector(2,4) //creating new instance of Vector object
v1 // Vector {x: 2, y: 4}
v1.normalize() // normalizing our newly created instance
v1 //Vector {x: 0.4472135954999579, y: 0.8944271909999159}
多くの可能な実装の1つに過ぎないことに注意してください。
EDIT: あなたはaccually length関数を使ってオブジェクトを拡張することができます
Vector.prototype.length = function() { return Math.sqrt(this.x*this.x+this.y*this.y) }
を、私たちのv1のベクトルが適切に正規化されているかどうかを確認:
v1.length();
//0.9999999999999999