最簡計算2D射線與直線的交點
輸入:
一條數(shù)學(xué)意義直線,轉(zhuǎn)化成點向式line(point,dir),方向符號無所謂。
一個Ray2D ray(origin,dir)
輸出:
情況1:平行。
情況2:沿著ray.dir抵達(dá)直線的距離??蔀?,可為負(fù)。
推導(dǎo)步驟:
就是構(gòu)建垂線,然后構(gòu)建向量點乘為0解方程。
O為ray.origin,配合line算出O在line上的映射點A。
D為ray.dir。
設(shè)所求為T,則交點B=O+T*D;
根據(jù)dot(OA,AB)=0,解方程求出
T=(OA^2)/dot(OA,D)
參考代碼: