直线和平面的交点

                     

贡献者: addis

预备知识 高中解析立体几何,几何矢量

   若平面上任意一点为 $ \boldsymbol{\mathbf{p}} = (p_x, p_y, p_z)$,法向量为 $ \boldsymbol{\mathbf{n}} = (n_x, n_y, n_z)$。直线上一点为 $ \boldsymbol{\mathbf{s}} = (s_x, s_y, s_z)$,方向为 $ \boldsymbol{\mathbf{v}} = (v_x, v_y, v_z)$,求射线与平面的交点。注意 $ \boldsymbol{\mathbf{n}} $ 和 $ \boldsymbol{\mathbf{v}} $ 不必是单位矢量。

   平面方程为

\begin{equation} ( \boldsymbol{\mathbf{r}} - \boldsymbol{\mathbf{p}} ) \boldsymbol\cdot \boldsymbol{\mathbf{n}} = 0~. \end{equation}
直线的参数方程为
\begin{equation} \boldsymbol{\mathbf{r}} = \lambda \boldsymbol{\mathbf{v}} + \boldsymbol{\mathbf{s}} ~. \end{equation}
式 2 代入式 1 解得
\begin{equation} \lambda = \frac{( \boldsymbol{\mathbf{p}} - \boldsymbol{\mathbf{s}} ) \boldsymbol\cdot \boldsymbol{\mathbf{n}} }{ \boldsymbol{\mathbf{v}} \boldsymbol\cdot \boldsymbol{\mathbf{n}} }~. \end{equation}
再代入式 2 得交点为
\begin{equation} \boldsymbol{\mathbf{r}} = \frac{( \boldsymbol{\mathbf{p}} - \boldsymbol{\mathbf{s}} ) \boldsymbol\cdot \boldsymbol{\mathbf{n}} }{ \boldsymbol{\mathbf{v}} \boldsymbol\cdot \boldsymbol{\mathbf{n}} } \boldsymbol{\mathbf{v}} + \boldsymbol{\mathbf{s}} ~. \end{equation}

   (未完成:给出 Matlab 代码)


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利