如何求直线与平面的交点(两种方式)

获取线交点 public XYZ IntersectPointOfFaceAndCurve(Face face, Curve curve) { //交点数组 IntersectionResultArray result = new IntersectionResultArray(); //枚举,用于判断相交类型 SetComparisonResult setResult = face.Intersect(.. 阅读详情

一:代数方式

我们假设它们的交点为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;
    }

原文链接:

如何求直线与平面的交点(两种方式) - it610.com一:代数方式我们假设它们的交点为P,既然我们有一个平面,那么平面上面的一个点P0和平面的normal(垂直于平面的向量)我们是肯定知道的。根据3D数学知识,(P-P0)·normal=0(公式一);(既然垂直,那么它们点乘肯定为0)。对于这条直线,我们肯定知道直线上面的某一点L0和直线的方向L,那么P=L0+dL(公式二),d是距离。把公式二代入公式一,我们可以得到如下:(L0+dL-P0)·nohttps://www.it610.com/article/1305781798361403392.htmhttps://www.it610.com/article/1305781798361403392.htm

NestJS:前端开发者快速上手的后端框架 依赖注入(DI)和模块化是现代软件开发的核心概念,它们通过解耦组件依赖关系来提高代码的可维护性和可测试性。在Node.js生态中,NestJS框架将这些原理TypeScript深度结合,为开发者提供了类似Angular的开发体验。其装饰器语法和模块系统特别适合有前端背景的开发者快速构建企业级后端应用,在REST API开发、微服务架构等场景展现出色表现。通过内置的依赖注入容器和AOP支持,NestJS有效解决了传统Node.js项目在复杂度增长时的架构难题,成为连接前后端开发范式的重要桥梁。 阅读详情

相关推荐

直线平面交点

如何点到平面交点今天遇到一个小问题,如何点到平面交点,并如何将其高效实现,下面就从数学的原理以及编程实现来探究一下这个小问题。目录如何点到平面交点目录 问题重述几何模型 数学分析 编程实现

smallflyingpig的专栏 3万+

空间直线平面交点

若已知直线l上两点a(x1, y1), b(x2, y2), 则ab所在直线l的一个方向向量s = (x2-x1, y2-y1)。若已知直线l: ax + by + c = 0, 则直线l的方向向量 s = (-b, a)(b, -a)。若已知直线l的斜率为k, 则l的一个方向向量为 s = (1, k)

sdw8855的博客 4264

Unity一条直线平面交点

这个是面试官经常考的一个问题,我们先把它变成一个数学问题。已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,直线平面交点P如下图首先我们分析一下我们知道平面直线的法向量,知道平面直线上的一点,直线平面上的交点p。这里我们就要引入点积的概念。点积的几何意义(百度百科直接粘的)设二维空间内有两个向量  和  ,它们的夹角为  ,则内积定义为以下实数: [2] 该定义只对...

q493201681的博客 1万+

直线平面交点

直线平面交点 微信公众号:幼儿园的学霸 目录 文章目录直线平面交点目录前言数学模型推导编程实现参考资料 前言 直线平面交点解相关的内容在网上已经有很多资料进行介绍,目前所看到的博文在数学模型建立上都是正确的,但是其编程实现却存在问题,导致只有部分情况下能够正确直线平面交点,另外一些情况下出的交点却是错误的.本文对原理进行推导并实现正确的编码. 数学模型推导 已知经过两点P1(x1,y1,z1),P2(x2,y2,z2)P_1(x_1,y_1,z_1),P_2(x_2,y_

leonardohaig的博客 5173

平面直线交点

平面直线交点 在3D中,线L平行于平面P或者在单个点上其相交。令L由参数方程式给出:P(S)= P0 + s(P1-P0) = P0 +su,并且平面P由其上的点V0和法向量N=(A,B,C)给出。我们首先通过测试n·u=0(直线方向向量u垂直于平面线n)来检查L是否P平行。如果等于0,那么L和P是平行的或者L完全位于平面P中。不相交或重合可以通过测试L中的任何一个特定的点(比如P0)被...

不管怎样 6017

空间解析几何之直线平面:推导直线直线直线平面交点

三维空间中的直线平面二维空间中的性质有一定的类似之处,但是其相交关系的方式有所差异。本文回顾了三维空间中直线平面的解析表达,然后推导线-线线-面交点

simple的博客 1万+

n条直线交点拟合交点

直线方程的公式有以下几种形式: 斜截式:y=kx+b 截距式:x/a+y/b=1 两点式:(x-x1)/(x2-x1)=(y-y1)/(y2-y1) 一般式:ax+by+c=0(可以表达任意直线) 只要知道两点坐标,代入任何一种公式,都可以直线的方程 一般式方程在计算机领域的重要性 常用的直线方程有一般式 点斜式 截距式 斜截式 两点式等等。除了一般式方程,它们要么不能支持所有情况下

鲲鹏望舒 5500

Revit直线平面交点

直线平面交点两种情况,交点平面内或平面外,计算出交点后需确定此交点是否在已知平面内。 代码如下: /// <summary> /// 计算直线平面交点 /// </summary> /// <param name="point">直线上某一点</param> /// <param name="direct">直线的方向<...

碎碎念的安静的博客 1847

Matlab计算两条直线交点坐标

function [x,y]=linecross(k1,b1,k2,b2) x=[]; y=[]; if k1==k2&b1==b2 disp('chong he'); elseif k1==k2&b1~=b2 disp('wu jiao dian'); else x=(b2-b1)/(k1-k2); y=k1*x+b1; % disp('x='); % disp(x); % disp('y='); % disp

weixin_39549377的博客 2万+

OpenGL 直线直线 直线平面交点

                              OpenGL 直线直线   直线平面交点关于头文件myglbase.h 和 myglbase.cpp的链接http://blog.csdn.net/rorger/archive/2011/04/19/6334489.aspx或者点此下载:#include "myglbase.h" #include "iostream" using namespace std ; /* R(t)=A + c*tHit; //直线参数表示

2447

向量法计算平面直线交点

-   已知有平面上三个点(ABC)坐标,直线上两个点(DE)坐标,平面ABC直线DE的交点坐标。   解: /** * 平面直线交点 * * @param plantA * @param plantB * @param plantC * @param lineD * @param lineE * @return */ public st...

rediculous的专栏 5065

三维空间直线平面交点

直线平面交点解推到

漂移不开车 2629

空间平面直线交点

问题重述几何模型 已知P1(x1,y1,z1),P2(x2,y2,z2),平面α:ax+by+cz+d=0,直线P1P2平面α的交点P。 数学分析 存在性:直线平面交点可能有零个,一个,或无数个。可行性:已知直线上不重合两点,可以确定一条直线,已知直线平面,则一定可以得到两者之间的关系。 向量法 当已知平面的一般式方程时(ax+by+cz+d=0),n⃗=(a,...

weixin_30505225的博客 2267

利用python通过两点构成的空间直线平面计算交点

利用python通过两点构成的空间直线平面计算交点

hunter206的博客 6454
上一篇: 【Unity导包丢失tag值、layer值】Unity 导入导出包时,标签Tag丢失问题
下一篇: 关于谷歌cardboard的相关介绍
Defsed
博客等级 码龄11年 5粉丝 · 3原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值