SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

万華鏡を題材に学ぶ、シミュレーションの基礎

  • X ポスト
  • このエントリーをはてなブックマークに追加

Appendix 直線/平面のベクトル表現について

 ここでは、直線、平面などのベクトル表示について、簡単に解説します。

Appendix A. 直線のベクトル表示

 直線は以下のいずれかによって決定されます:

  • (A.1) 二点,(二点を通る直線)
  • (A.2) 一点と、直線の向かう方向

 直線上の任意の点をベクトルで表すと、

  • (A.1)
  • (A.2)

となります(tは任意の実数)。

 今回のように、直線がを基点とした「向き」を持った光線の場合は、が、光線の進む範囲になります。

図(直線)
図(直線)

 プログラムでは、光線の初期化で(A.1)の定義を使い、光線の反射で(A.2)の定義を使いました。

Appendix B. 平面のベクトル表示

 平面は、以下のいずれかで決定されます:

  • (B.1) 三点,,(三点を通る平面)
  • (B.2) 平面上の一点と、平面の法線ベクトル

 (B.1)の場合、法線ベクトルは、外積xを使って、と定義されます。

 プログラムでは長さを調整して、法線ベクトルを単位ベクトル化しておきました()。

 平面上の任意の点 は、以下の式を満たすものになります:

 

図(平面)
図(平面)

 プログラムでは、鏡の定義に(B.1)を使いました。

Appendix C. 直線と平面の交点

 直線と平面の交点は、(A),(B)を使って、それぞれベクトル表示しておき、これらをについて解くことで得られます(交点=直線と平面の両方に属する点)。

 交点をとして、を具体的に書くと、と、なります。

図(直線と平面の交差)
図(直線と平面の交差)

Appendix D. 直線の反射

 直線の反射では、入射ベクトル()、法線ベクトル()、反射ベクトル()が、菱形を形作ることが知られています(下図参照)。

 これを、条件式であらわすと、

  •  は定数)

となります。これを解くと、

  

となります(ただし、は単位行列)。つまり、とすると、反射方向は行列によって定義される線形変換になっていることが分かります。

図(直線の反射)
図(直線の反射)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

amanojackun(アマノジャクン)

大学卒業後、ウェブ/マーケティング系を中心に、統計解析/シミュレーションに携わっています。ここでは、「サイエンスと他分野の接点」という観点から記事を書かせていただきました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7447 2013/11/29 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング