如何求直线与平面的交点(两种方式)
一:代数方式
我们假设它们的交点为P,既然我们有一个平面,那么平面上面的一个点P0和平面的normal(垂直于平面的向量)我们是肯定知道的。
根据3D数学知识,(P-P0) · normal = 0(公式一);(既然垂直,那么它们点乘肯定为0)。
对于这条直线,我们肯定知道直线上面的某一点L0和直线的方向L,那么 P = L0 + dL(公式二),d是距离。
把公式二代入公式一,我们可以得到如下:
(L0 + dL - P0)· normal = 0;---> dL · normal + (L0 - P0) · normal = 0;
这样我们可以求出d值,然后我们就可以通过公式二求出P啦!
附上C#代码:
//point 是直线上面某一点,direct是直线的方向,planeNormal是垂直于平面的向量,planePoint是平面上的任意一点
public static Vector3 GetIntersectWithLineAndPlane(Vector3 point,Vector3 direct,Vector3 planeNormal,Vector3 planePoint)
{
float d = Vector3.Dot (planePoint - point, planeNormal)/Vector3.Dot(direct,planeNormal);
return d * direct.normalized + point;
}
如何求直线与平面的交点(两种方式)相关推荐
- Revit求直线与平面的交点
直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内. 代码如下: /// <summary> /// 计算直线与平面的交点 /// </sum ...
- 求解直线与平面的交点
求解直线与平面的交点 微信公众号:幼儿园的学霸 目录 文章目录 求解直线与平面的交点 目录 前言 数学模型推导 编程实现 参考资料 前言 直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目 ...
- Unity求一条直线与平面的交点
这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...
- Python两种方式求多个数的最大公因数(HCF)和最小公倍数(LCM)
Python两种方式求多个数的最大公因数(HCF)和最小公倍数(LCM) 最大公因数 1. 列表排序 2. 将列表分为两部分 3. 求最大公因数的质因子 4. 得到结果 5. 完整程序 最小公倍数 另 ...
- Java练习:两种方式求1+1/2!+1/3!+1/4!+...前20项的和、用for,while,do-while分别实现1+1/2!+1/3!+1/4!+...前20项的和
Java两种方式求 1+1/2!+1/3!+1/4!+... 前20项的和: 感叹号 !是阶乘的意思,如 2! .3! .4! 分别是:1*2 . 1*2*3 .1*2*3*4 第一种算法,如下代码 ...
- 417,BFS和DFS两种方式求岛屿的最大面积
想了解更多数据结构以及算法题,可以关注微信公众号"数据结构和算法",每天一题为你精彩解答.也可以扫描下面的二维码关注 给定一个包含了一些0和1的非空二维数组grid . 一个岛屿是 ...
- Unity3D两种方式播放视频
Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相 ...
- Windows注册服务的两种方式,并设置服务开机自启
目录 第一种方式: 下载instsrv.exe和srvany.exe 用管理员身份运行"命令提示符"工具 用"注册表编辑器"将服务替换为自己需要的功能 修改完注 ...
- SDN的两种方式分析
ONF成立两年之际,SDN开始得到业界的广泛认同,尤其是从IT真正走入了CT,而CT的网络类型五花八门,这使得SDN的应用场景急剧增长,大有无所不能之势. 业界目前所推的SDN无非两种 方式一是原生的 ...
最新文章
- java 调用计算机程序方法
- 获取表单提交的数据getParameter()方法
- 13张PPT带你了解主动式消息队列处理集群
- 【人脸识别】Cos Face中的LMCL详解
- 阿里云:Table Store(OTS) Writer
- 织梦当前位置对应php文件,织梦cms怎么获取当前栏目路径
- c# 获取路径的盘符_C# IO操作之 如何玩转路径
- day14:磁盘管理df/du/fdisk/parted命令
- 大学本科计算机考试小抄,大学考试竟允许光明正大打小抄你也考不过
- Java实现简易文本编辑器
- @PostConstruct @DependsOn
- flashfxp3.41中文版注册码:(适合最新版本)
- 常用软件过程模型-快速原型模型,快速原型模型有哪几种?各有何特点?
- git提交代码至码云
- 深度思考:广州互联网气氛为何远远落后于北京
- Python面向对象版学员管理系统
- 驭龙HIDS的简介,它开源了
- Mysql组复制(MGR)——监控
- 今日头条-快速获取爆文素材的5大途经
- Spring Boot 2.0 配置图文教程 1