お米 is ライス

C#やらUnityやらを勉強していて、これはメモっといたほうがええやろ、ということを書くつもりです

3Dプログラミングで使う色々なベクトル計算を直観的に身体に覚えさせてあげますのよ【基本編】

【基礎編】に続いて、3Dプログラミングで使うことが多い基本的なベクトル計算を身体に覚えさせてあげますのよ!
spi8823.hatenablog.com

内積外積

これに関しては【基礎編】で触れたわよ。

点と直線の距離

| (p-q)-\{(p-q) \cdot r\} r |
f:id:spi_8823:20200607185634p:plain:w250

直線に下した垂線の交点へのベクトル

q+\{(p-q)\cdot r\} r

「点と直線の距離」と同様の考え方で簡単に求められますわね!

直線に下した垂線のベクトル

(p-q)-\{(p-q) \cdot r\} r

こちらも「点と直線の距離」の式で絶対値を求める過程を抜くだけですわ!
向きは直線側から点への方向だから、符号には気を付けるんですのよ!

直線に対する線対称位置

p-2\times 点から直線に下した垂線のベクトル

「点と直線の距離」の応用ですわ!
点と直線の相対位置が分かったのだから、直線から点pとは逆の方向に垂線を伸ばせばそれが対象な位置ですわね!

点と平面の距離

|\{(p-q)\cdot n\} n|
f:id:spi_8823:20200607212319p:plain:w250
ある点pと、点qを通り法線がnである平面との距離ですわ!
「点と直線の距離」の、直線の方向ベクトルrを平面の法線ベクトルnに読み替えて考えるのよ!あなたなら大丈夫ですわよね!(ただし直線に平行なのと、平面に垂直という風に微妙に関係性は変わっているわ)

平面に下した垂線のベクトル

\{(p-q)\cdot n\} n

「点と平面の距離」の応用ですわ!

平面に下した垂線の交点へのベクトル

q+(p-q)-\{(p-q)\cdot n\} n

これも「点と平面の距離」の応用すればすぐですわね!

平面に対する鏡面位置

p-2\times点から平面に下した垂線のベクトル

「点と平面の距離」の応用でちょちょいのちょいですわ!!

鏡面反射ベクトル

q = p + 2(p \cdot n)n
f:id:spi_8823:20200531235900p:plain:w350

まとめ

鷹揚な上流階級にはなれたかしら???