线段求交

给出两条线段 (a_1, b_1), (a_2, b_2) 求交点坐标

\[vec\ a = b_1 - a_1 \]

\[vec\ b = b_2 - a_2 \]

线段 \((a_1, b_1)\) 上任意一点坐标可以表示为 \(a_1 + ta\)
同理 \((a_2, b_2)\) 上任意一点坐标可以表示为 \(a_a + ub\)
\(t, u\) 是一个系数
让两个线段方程相等

\[a_1 + ta = a_2 + ub \]

同时叉乘 \(b\)

\[a_1b + tab = a_2b + ubb \]

因为 \(bb = 0\)

\[tab = a_2b - a_1b \]

\[t = \frac{(a_2 - a_1) b} {ab} \]

交点点坐标就是 \(a_1 + ta\)

posted @ 2020-06-06 11:38  __int256  阅读(133)  评论(0编辑  收藏  举报