The Nature of Code(PDF版)からPVectorについて取り上げます。その中でもベクトルのスカラー倍について書きます。Processingでプログラムを書いて、動作を確認します。動作を確認できるところがProcessingの楽しいところです。
ベクトルのスカラー倍(実数倍)
ベクトルのスカラー倍とは、ベクトルの大きさ(長さ)を実数倍することです。つまり、ベクトルの大きさを2倍や0.5倍に拡大・縮小することです。
PVector a = new PVector(3, 4); println(a.mag()); //5.0と出力される a.mult(2); //ベクトルaの大きさを2倍する println(a.mag()); //10.0と出力される
プログラムの解説・メモ
ベクトルaは、a=(3, 4)という成分を持っているとします。このときのベクトルの大きさ(長さ)は、5(三平方の定理より)です。ベクトルaの大きさを2倍にすると大きさは10になります。
- メモ
- mag():ベクトルの大きさを返す
- mult():ベクトルの大きさをスカラー倍(実数倍)する
ベクトルのスカラー倍(実数倍)の例
以下は、ベクトルのスカラー倍の参考例です。
//Multiplying 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.mult(0.5); translate(width/2, height/2); line(0, 0, mouse.x, mouse.y); }
マウスからウィンドウの中央の距離の長さの半分を直線で描画しています。
まとめ
The Nature of Code(PDF版)からPVectorについて取り上げました。その中でもベクトルのスカラー倍について書きました。引き続き、The Nature of Code(PDF版)の内容を勉強します。