Processing

PythonでProcessing Math PVector

2次元または3次元のベクトルを記述するクラスで、特にユークリッド(幾何学的)ベクトルをす。ベクトルとは、大きさと方向の両方を持つ実体のこと。ただし、データ型はベクトルの成分(2Dの場合はx,y、3Dの場合はx,y,z)を格納している。大きさと方向は、mag()メソッドとheading()メソッドでアクセスできる。

Processingの多くの例では、PVectorが位置、速度、加速度を表すのに使われている。例えば、画面上を移動する矩形を考えると、任意の瞬間に、位置(原点からその位置を指すベクトル)、速度(時間単位あたりのオブジェクトの位置の変化率をベクトルで表したもの)、加速度(時間単位あたりのオブジェクトの速度の変化率をベクトルで表したもの)を持つ。

ベクトルは値のグループ化を表すたあめ、「ベクトル」の計算が必要になるが、これはPVectorクラス内のメソッドによって簡単に行える。また、Pythonモードでは、従来の数学演算子がPVectorで動作するように「オーバーロード」されている場合もある。「+」はベクトルの加算、「-」はベクトルの減算、「*」はスカラ倍算、「/」はスカラ除算。関連する拡張演算子である「+=」、「-=」、「*=」、「/=」も動作する。

# 構文
# v = PVector(x, y)
# v = PVector(x, y, z)
#
# パラメータ  
# x int: PVector の x 成分
# y int: PVector の y 成分
# z int: PVector の z 成分

v1 = PVector(15, 30)
v2 = PVector(30, 30)
w = 12
ellipse(v1.x, v1.y, w, w)
ellipse(v2.x, v2.y, w, w)
v2.add(v1)
ellipse(v2.x, v2.y, w*2, w*2)