当前位置: 首页> 文旅> 艺术 > Unity求向量和平面的交点

Unity求向量和平面的交点

时间:2025/7/12 14:05:19来源:https://blog.csdn.net/ysn11111/article/details/141256034 浏览次数:0次

已知条件:平面P的法向量\underset{n}{\rightarrow},平面上的一点P0,直线L的方向向量\underset{l}{\rightarrow},直线上的一点L0

公式推导:

主要是两点:

1.目标点T在直线上:T=L0+D*\underset{l}{\rightarrow}(D未知)

2.目标点T在平面上,则TP0垂直\underset{n}{\rightarrow}:(T-P0)*\underset{n}{\rightarrow}=0

将1式代入2式,求得D, \underset{l}{\rightarrow}*\underset{n}{\rightarrow}*D=(P0-L0)*\underset{n}{\rightarrow}

最终再带回1式就能求出交点T

代码:

    /// <summary>/// 求直线L和平面的交点/// </summary>/// <param name="lineUnitVector">直线的方向向量</param>/// <param name="linePos">直线上的一点</param>/// <param name="panelUnitVector">平面的法向量</param>/// <param name="panelPos">平面上的一点</param>/// <returns></returns>private Vector3 GetPosToPanelProjection(Vector3 lineUnitVector,Vector3 linePos,Vector3 panelUnitVector,Vector3 panelPos){float d = Vector3.Dot(panelPos - linePos, panelUnitVector) / Vector3.Dot(lineUnitVector, panelUnitVector);return linePos + lineUnitVector * d;}

关键字:Unity求向量和平面的交点

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: