元Webデザイナー兼コーダーの備忘録

ウェブデザインやプログラミング、ブログのカスタマイズなどについてアウトプットしています。

 メニュー

» HTML入門のまとめはこちらです。

Processingにおけるベクトルの正規化

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版)の内容を勉強します。

参考サイト

» HTML入門のまとめはこちらです。