dekfractal【Processing】ベクトルを扱ってみよう!ツイートシェアはてブLINEPocket目次ベクトルとはベクトルは、大きさと方向を持つ量です。下図のように有向線分で表され、矢印がベクトルの方向、長さがベクトルの大きさを表します。矢印の始まりである赤い点Aを始点、終わりである青い点Bを終点と呼びます。物体に働く力や物体の速度、加速度などがベクトルで表されます。ベクトルは方向と大きさを持つ量ですが、大きさだけを持つ量をスカラーと呼びます。時間や長さ、温度がスカラー量になります。ベクトルは一般的に文字の上に矢印をつけるか太字で表記されます。これによって、スカラーと区別することができます。次の図のように方眼紙の上でベクトルを考えてみます。この例では、XY平面上において、Xの正の方向に3マス、Yの正の方向に4マス移動しています。X成分とY成分がそれぞれ分かっていますので、次のように成分表示することもできます。ベクトルの演算ここでは基本的なベクトルの演算について紹介します。加算2つのベクトルを加算するには、単純に両ベクトルのx成分同士、y成分同士を加算します。先ほどベクトルの成分表示について説明しましたが、この説明の中にベクトルの加算の考え方が含まれています。「X方向に+3移動するベクトル」と「Y方向に+4移動するベクトル」の2つの加算から得られたベクトルと考えることもできるからです。X方向に+3移動するベクトルを、Y方向に+4移動するベクトルをとすれば、次のように書くことができます。実際にとを足してみると、となります。ベクトルの加算についてもう一度整理しておきます。いう2つのベクトルの加算は、次のように計算することができます。減算2つのベクトルの減算は、次のように計算することができます。次に図で考えてみます。2つのベクトルをそれぞれ図示すると下図のようになります。この2つのベクトルの始点を揃えて、x成分・y成分それぞれの差を図示します。図中の赤い破線が「x成分の差」、青い破線が「y成分の差」を表しています。この図からもであることが分かります。図示できているので、あとはを示す矢印をかくだけです。終点からの終点に向けて矢印をかいてみます。これでを図示することができました。この図からであることが分かります。ベクトルの減算でを求めるということは、にどのようなベクトルを足せば、と同じベクトルになるかを求めるのと同じ意味になります。乗算ベクトルにスカラーをかけることで、ベクトルのスケーリングをすることができます。ベクトルの大きさを2倍にしたければ、ベクトルに2を掛けます。このとき、ベクトルの大きさはスケーリングによって変わりますが、方向については変わりません。ベクトルのスケーリングは、次のように計算することができます。ここでnはスカラーです。次に図で考えてみます。図示すると下図のようになります。このベクトルに3を掛けるということは、3回ベクトルを足し合わせるのと同じ意味です。そこで、を下図の様に3つ並べてみます。この図からであることが分かります。図示できているので、を示す矢印をかいてみます。これでを図示することができました。先ほど計算した結果と同じになっていますね。正規化ベクトルの正規化とは、方向を変えずにその大きさを「1」にすることを指します。この大きさが「1」であるベクトルを単位ベクトルと呼びます。ベクトルの単位ベクトルは、次のように計算することができます。この式は、「ベクトルを正規化するには、各成分をベクトルの大きさで割る」ということを意味しています。「ベクトルの大きさ」はスカラーになります。ベクトルのスケーリングについては、「乗算」のところで説明しました。ベクトルの大きさはどのように計算すればよいでしょうか?具体的な例として、の場合について、図示して考えてみます。図示すると、下図のようになります。この図からベクトルの矢印は直角三角形の斜辺になっていることが分かります。斜辺の長さは、ピタゴラスの定理によって、次のように簡単に計算することができます。今の場合なので、ベクトルの大きさはとなります。単位ベクトルは、各成分をベクトルの大きさで割ればよいので、次のように求められます。これでベクトルの正規化ができました。Processingでベクトルを扱うここまでで、ベクトルの基本について整理しました。Processingでベクトルを扱うためにはどのようにすればよいでしょうか?実はProcessingにはベクトルを扱うためのクラス「PVectorクラス」が用意されています。ベクトルの成分はコンストラクタの引数で指定することができます。ベクトルを定義したければ、次のように書きます。PVector(4,5);ベクトルの加算や減算など基本的な演算について紹介してきましたが、PVectorクラスにはベクトルの演算をするためのメソッドも用意されています。メソッドを下表に整理しました。ベクトルをfloat型の配列として返すベクトル演算のサンプルコード「PVectorクラス」を使ったサンプルコードとその実行結果を示します。1行目〜2行目で2つのベクトルを定義して、3行目〜4行目で成分ごとに値を出力しています。6行目〜9行目では、2つのベクトルの加算と減算を行なっています。11行目〜14行目では、ベクトルとスカラーの乗算と除算を行なっています。16行目〜20行目では、ベクトルの大きさと正規化したベクトルを求めています。実行結果からは、各演算が正しく行われていることが分かります。「PVectorクラス」を使うことで、このようにベクトルの定義と演算を簡単に行うことができます。コメントをキャンセルメールアドレスが公開されることはありません。入力フォームを作成してみよう!【Processing】簡単なアニメーションを作成してみよう!RECOMMENDこちらの記事も人気です。計算科学2019.1.24【Processing】座標系の平行移動と回転移動プロフィールITエンジニア。プログラミングについて記事を書いていきます。ネットショップ運営、プロップトレーダーなどもやっています。