The Nature of Code(PDF版)からPVectorについて取り上げます。その中でもベクトルの正規化について書きます。Processingでプログラムを書いて、動作を確認します。動作を確認できるところがProcessingの楽しいところです。
ベクトルの正規化
ベクトルの正規化とは、任意の長さのベクトルを方向を変えずに大きさを1にすることです。大きさが1のベクトルを単位ベクトルと言います。
PVector a = new PVector(3, 4); println(a.mag()); //5.0と出力される a.normalize(); //正規化 println(a.mag()); //1.0と出力される
ベクトルの正規化の例
以下は、ベクトルの正規化の参考例です。
//Normalizing a vector void setup(){ size(200,200); smooth(); } void draw(){ background(255); PVector mouse = new PVector(mouseX, mouseY); PVector center = new PVector(width/2, height/2); mouse.sub(center); mouse.normalize(); mouse.mult(50); translate(width/2, height/2); line(0, 0, mouse.x, mouse.y); }
上記のプログラムでは、ベクトルを正規化し、その後に大きさを50倍にしています。そのため、直線の長さは常に50です。
プログラムの解説・メモ
- メモ
- normalize():ベクトルを長さ1に正規化する(単位ベクトルにする)
まとめ
The Nature of Code(PDF版)からPVectorについて取り上げました。その中でもベクトルの正規化について書きました。引き続き、The Nature of Code(PDF版)の内容を勉強します。