とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとhtmlとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

ゲーム数学:頂点座標を直線に投影する方法

数学というと難しいことは説明するのかというとまったく説明するつもりはなく

作業していくときに忘れてしまった

中学、高校レベルの数学についておぼえがきとしてメモを取っていくこととする。

 

頂点と直線に投影する方法)

p0:直線状の座標

v0:直線状の座標をとるベクトル

q:投影したい頂点座標

があったとする。

f:id:toncrimentan_w:20200429140546j:plain

まず直線の正規化ベクトルを求める

length = v0.length()
norm = v0 / length
norm.x = v0.x / length
 norm.y = v0.y / length
 norm.z = v0.z / length)

そして直線状の座標から投影したい頂点座標へのベクトルを求める

v1 = q - p0

 

v1とnormから直線状の投影座標を求めることができる

v1とnormの内積を求め

dot = v1・norm 
v1.x*norm.x + v1.y*norm.y + v1.z*norm.z

投影座標をもとめることができる

投影座標を求める
proj = norm * dot + p0
proj.x = norm.x * dot + p0.x
 proj.y = norm.y * dot + p0.y
 proj.z = norm.z * dot + p0.z

以上

忘れたらメモとして投稿していくことにする。