Unity求向量和平面的交点

已知条件:平面P的法向量,平面上的一点P0,直线L的方向向量,直线上的一点L0

公式推导:

主要是两点:

1.目标点T在直线上:T=L0+D*(D未知)

2.目标点T在平面上,则TP0垂直:(T-P0)*=0

将1式代入2式,求得D, **D=(P0-L0)*

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

代码:

cs 复制代码
    /// <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;
    }
相关推荐
十安_数学好题速析17 小时前
倍数关系:最多能选出多少个数
笔记·学习·高考
vue学习18 小时前
docker 学习dockerfile 构建 Nginx 镜像-部署 nginx 静态网
java·学习·docker
future_studio19 小时前
聊聊 Unity(小白专享、C# 小程序 之 图片播放器)
unity·小程序·c#
Lynnxiaowen20 小时前
今天我们开始学习python语句和模块
linux·运维·开发语言·python·学习
橘子是码猴子21 小时前
LangExtract:基于LLM的信息抽取框架 学习笔记
笔记·学习
AnySpaceOne21 小时前
笔记本电脑如何连接打印机?完整连接教程送上
学习·电脑
dxnb2221 小时前
Datawhale25年10月组队学习:math for AI+Task2线性代数
人工智能·学习·线性代数
wanfeng_091 天前
python爬虫学习
爬虫·python·学习
A9better1 天前
嵌入式开发学习日志39——stm32之I2C总线物理层与常用术语
stm32·单片机·嵌入式硬件·学习
报错小能手1 天前
linux学习笔记(35)C语言连接mysql
linux·笔记·学习