精华内容
下载资源
问答
  • 两空间直线求交点,fortran编制

    热门讨论 2009-12-07 21:05:29
    Intersection程序说明 该程序是应聘同豪土木工程咨询公司时出的一个小题目。 该程序使用Fortran编制,用于判断由空间四点表示的两直线是否相交,若相交则求出交点. 输入说明: 输入文件名为input....若相交,求交点
  • 在二维空间中,利用直线方程y = kx + b我们可以直接计算出交点,但是这种方法麻烦了些,并且套用到三维空间用公式就更麻烦了,接下来介绍的是如何利用向量叉乘出直线交点。并且由于利用叉乘最后可以的到一个...
    展开全文
  • 1、前言直线求交点看似很简单的问题,初中数学中就已经学过,对于二维的个直线 和 联立很容易求解出交点坐标 ,如果是个三维直线怎么办呢?三维直线方程为 ,这种表示方法对于 有很大的问题,计算机中可不是这么...

    0da03444c234ef87fb1023adf075bb52.gif

    学了那么多数学,到底学了 ️什么用呢?也许了解了数学的在实际工作上威力也能帮助激起学习数学的兴趣。数学有什么用这应该是一直想要问自己的问题。

    1、前言

    直线求交点看似很简单的问题,初中数学中就已经学过,对于二维的两个直线

    联立很容易求解出交点坐标
    ,如果是两个三维直线怎么办呢?三维直线方程为
    ,这种表示方法对于
    有很大的问题,计算机中可不是这么表示直线,计算中表示直线的方法如下:

    ,其中,
    是直线上一点,
    是直线的方向向量,
    。这就是直线的参数方程在计算机图形学中的应用,可见课本上学的东西还是很有用的,只是书到用时方很少。直线用参数方程表示的好处很明显,没有斜率不存在不能表示的问题,所有直线都可以表示。

    2、空间直线求交点算法分析

    6a6e9b001cf129683e2931f46c7ebfe5.png

    算法一

    根据直线

    的参数方程计算交点坐标

    直线

    (1)

    直线

    (2)

    联立方程(1)和(2)可以解出

    再回带到式(1)或(2)中可以求出交点坐标,这种做法很麻烦的地方是推导过程。

    算法二

    符号说明,

    表示模长,
    表示向量,
    表示向量
    的叉乘,
    表示向量
    的点乘。

    用叉乘计算点

    到直线
    的距离,

    (3)

    由直角三角形和三角函数解出

    ,这里
    只取锐角就可以:

    (4)

    (5)

    坐标由投影关系计算,如果直线:

    (6)

    交点

    可以计算出两个,分别
    的两侧,记为
    ,计算如下:

    (7)

    (8)

    式(7)和(8)显式的表达出了交点坐标

    计算,
    到直线
    的距离分别为
    ,距离直线
    小的点即是所求交点

    算法三

    算法二中计算采用的是直角边

    计算
    点坐标,也可以采用
    计算交点

    (9)

    同算法一交点坐标可以计算出两个,分别

    的两侧,记为
    ,计算如下:

    (10)

    (11)

    式(10)和(11)显式的表达出了交点坐标

    计算,
    到直线
    的距离分别为
    ,距离直线
    小的点即是所求交点

    3、源码(算法二)

    clear all;
    % 后缀_Dir单位向量,后缀_Vec一般向量,后缀_Pnt点坐标,_Norm线段长度
    
    %直线1方向向量
    L1_Dir = [1,1,0];
    %单位化
    L1_Dir = L1_Dir./norm(L1_Dir);
    %直线L1上一点
    P1_Pnt = [0,0,0];
    % 直线L2方向向量,改变L2_Dir即可
    L2_Dir = [-1,0.1,0];
    %单位化
    L2_Dir = L2_Dir./norm(L2_Dir);
    % 直线L2上一点
    P2_Pnt = [1,0,0];
    % P1P2向量
    P1P2_Vec = P2_Pnt-P1_Pnt;
    %计算点P2到直线L1的距离
    P2P3_Norm = norm(cross(P1P2_Vec,L1_Dir));
    %投影点P3坐标
    P3_Pnt = P1_Pnt + (P1P2_Vec*L1_Dir').*L1_Dir;
    
    CosTheta= abs(L1_Dir*L2_Dir');
    K_Pnt = [];%交点
    if CosTheta < 1e-7;
        % 两直线垂直
        % 交点坐标
        K_Pnt = P3_Pnt;
    end
    
    if CosTheta > 1e-7;
        TanTheta = (1-CosTheta^2)^0.5/CosTheta;
        KP3_Norm = P2P3_Norm/TanTheta;
        
        K1_Pnt = P3_Pnt + KP3_Norm.*L1_Dir;
        K2_Pnt = P3_Pnt - KP3_Norm.*L1_Dir;
        
        P2K1_Vec = K1_Pnt - P2_Pnt;
        P2K2_Vec = K2_Pnt - P2_Pnt;
        
        D1 = norm(cross(P2K1_Vec,L2_Dir)); %点K1到直线L2的距离
        D2 = norm(cross(P2K2_Vec,L2_Dir)); %点K2到直线L2的距离
        % 到直线L2距离小的点坐标为交点
        if D1 < D2;
            K_Pnt = K1_Pnt;
        else
            K_Pnt = K2_Pnt;
        end
        
    end
    
    % L1另一点
    P1End_Pnt = P1_Pnt + 2.*L1_Dir;
    plot([P1_Pnt(1),P1End_Pnt(1)],[P1_Pnt(2),P1End_Pnt(2)], 'r','LineWidth',2);
    hold on;
    % L2另一点
    P2End_Pnt = P2_Pnt + 2.*L2_Dir;
    plot([P2_Pnt(1),P2End_Pnt(1)],[P2_Pnt(2),P2End_Pnt(2)], 'g-','LineWidth',2);
    hold on;
    plot(P1_Pnt(1),P1_Pnt(2),'O','MarkerSize',5,'MarkerFaceColor','red');
    hold on;
    plot(P2_Pnt(1),P2_Pnt(2),'O','MarkerSize',5,'MarkerFaceColor','green');
    hold on;
    plot(K_Pnt(1),K_Pnt(2),'O','MarkerSize',10,'MarkerFaceColor','magenta');
    legend('直线L1','直线L2','P1','P2','交点K');
    axis([-0.5,2.5,-0.5,2]);
    grid on;

    4、动画制作

    016ed9434fa9cf90b3233daac9301938.gif

    动画源码放到下面的链接里面,动画中需要用到坐标变换,通过矩阵实现直线方向向量的旋转。

    8916fe23bc453cd264718d3964b0430b.png
    图2 绕Z轴逆时针的旋转矩阵

    旋转矩阵简单的推导方法可以参考:

    Terrell:线性代数有什么用?简单的实例说明一下。zhuanlan.zhihu.com
    1c37687ee8c7ad9646e23b06788aa7e9.png

    链接:https://pan.baidu.com/s/1m-lqhWeipO58-9ZNlYDRlg

    提取码:tmdd

    展开全文
  • 求空间直线交点

    千次阅读 2013-01-07 10:57:00
    求交点坐标的问题完全可以用数学的方法求得结果的表达公式来解决啊设P1(x1,y1,z1),P2(x2,y2,z2) L2:P3(x3,y3,z3),P4(x4,y4,z4)记xi-xj=xij,ij是下标 (或xij,yij,zij表示该直线的方向向量)利用参数式,设: ...

    求交点坐标的问题完全可以用数学的方法求得结果的表达公式来解决啊 
    设P1(x1,y1,z1),P2(x2,y2,z2) L2:P3(x3,y3,z3),P4(x4,y4,z4) 
    记xi-xj=xij,ij是下标 (或xij,yij,zij表示该直线的方向向量)
    利用参数式,设:

    L1方程 x=x1+x12*t, y=y1+y12*t,z=z1+z12*t 
    L2方程 x=x3+x34*s, y=y3+y34*s,z=z3+z34*s. 


    将L1带入L2,先得到:

      s=(x13+x12t)/x34

    再带入方程得到t的表达式:

      t=(y13*x34-y34*x13)/(y34*x12-x34*y12)

    带入L1中,即可得到交点。。。。 
    如:

      x=x1+x12*((y13*x34-y34*x13)/(y34*x12-x34*y12))

    y、z同理可得

    全部都是已知的

    转载于:https://www.cnblogs.com/leafing/archive/2013/01/07/2848847.html

    展开全文
  • 已知P1(x1,y1,z1),P2(x2,y2,z2),平面α:ax+by+cz+d=0,求直线P1P2与平面α的交点P。 数学分析 存在性:直线与平面的交点可能有零个,一个,或无数个。可行性:已知直线上不重合点,可以确定一条直线,已知...

    问题重述与几何模型

    已知P1(x1,y1,z1),P2(x2,y2,z2),平面α:ax+by+cz+d=0,求直线P1P2与平面α的交点P。

     

    数学分析

    存在性:直线与平面的交点可能有零个,一个,或无数个。 
    可行性:已知直线上不重合两点,可以确定一条直线,已知直线与平面,则一定可以得到两者之间的关系。

    向量法

    当已知平面的一般式方程时(ax+by+cz+d=0),n⃗ =(a,b,c)就是平面的法矢量,也就能够很容易求出点到平面的距离和一个向量到法矢量的投影。由前面的几何模型,我们容易得出(根据相似三角形原理):

    其中:

    又点P1到D2的距离为

     

    上面过程主要使用向量运算,巧妙避开了求模运算中的开方运算,减少了很多的运算量,而且,容易步骤化,易于编程实现。

     

    Python代码实现:

     

    import numpy as np
    
    p1 = np.array([x1,y1,z1])#
    p2 = np.array([x2,y2,z2])
    plane_normal = np.array([a,b,c]) #a,b,c,d平面方程系数
    
    P1D = (np.vdot(p1,plane_normal)+d)/np.sqrt(np.vdot(plane_normal,plane_normal))
    
    P1D2 = (np.vdot(p2-P1,plane_normal))/np.sqrt(np.vdot(plane_normal,plane_normal))
    
    n = P1D2/P1D
    
    p = p1 + n*(p2- p1)#所求交点

     

    原文链接:http://blog.csdn.net/smallflyingpig/article/details/51234711?locationNum=8&fps=1

     

    转载于:https://www.cnblogs.com/qiu-hua/p/8001177.html

    展开全文
  • 在二维空间中,利用直线方程y = kx + b我们可以直接计算出交点,但是这种方法麻烦了些,并且套用到三维空间用公式就更麻烦了,接下来介绍的是如何利用向量叉乘出直线交点。并且由于利用叉乘最后可以的到一个...
  • 在二维空间中,利用直线方程 y = kx + b 我们可以直接计算出交点,但是这种方法麻烦了些,并且套用到三维空间用公式就更麻烦了,接下来介绍的是如何利用向量叉乘出直线交点。并且由于利用叉乘最后可以的到一个...
  • 根据三点确定一个平面,及点确定一条直线的原理,可直线方程与平面方程 ; 方程联立,可解出直线与平面交点坐标(暂不考虑直线在平面上或与平面平行的情况 )。 判断平面与直线的交点是否在三角形内部。 一、...
  • 已知空间4点,点A、B构成直线L1, 点C、D构成直线L2, L2上点P,使P到L1的距离最短,相应点的坐标分别为: A(Xa,Ya,Za),B(Xb,Yb,Zb),C(Xc,Yc,Zc),D(Xd,Yd,Zd) 这是一个普通空间解析几何问题,在开发工业...
  • 【问题】 已知个线段的端点坐标分别为(x1, y1, z1)、(x2, y2, z2);(x3, y3, z3)、(x4, y4, z4),它们的交点坐标? 已知线段1坐标:(7,6,7)、(1,4,5),线段2的...直线方程可以写成: 用参数方程表示,也可以...
  • 另外就是,对于一组离散点构成的曲线,很难知道它们的解析表达式,因此想通过非线性方程组求解的方法来求交点,就不大可能了(不过你可以用曲线拟合出函数解析式),因此,本帖的方法将会是一个较为有效求交点的方法...
  • 线性方程的几何意义二元线性方程 该方程是一个二元线性方程组,包含方程,每个方程是一条直线直线交点就是该方程有唯一解,这就是二元线性方程的几何意义。平面方程 空间内不在同一直线上的三点构成一...
  • 大家都知道解析几何中,直线方程有一般式、点斜式、斜截式、点式、截距式、交点式这6种表示形式,也知道在空间立体几何通过平面的法向量线面角或二面角的平面角相对容易些。那么,直线是否也有法向量呢?接...
  • 继续讲解3D空间直线与平面的交点,点到平面的距离,直线到平面的距离,3D空间平面相交形成的交线等内容。求解过程中,未知顶点以参数方式表达,并依照矢量点乘和叉乘的性质列出方程求取结果,此技术思路符合...
  • 什么是直线直线:没有端点,可以向端无限...求两直线交点,只需把这个二元一次方程联立求解,当这个联立方程组无解时,二直线平行;有无穷多解时,二直线重合;只有一解时,二直线相交于一点。常用直线与...
  • 朗读君伴读每日分享小学语、数、英各科学习资料关注什么是直线直线:没有端点,可以向端无限...求两直线交点,只需把这个二元一次方程联立求解,当这个联立方程组无解时,二直线平行;有无穷多解时,二直...
  • 并且每一个映射还不止一次,(ρ,θ)都是存在步长的,像一个点映射成一个 (ρ,θ),以θ取步长为例,当θ取得步长大的时候,映射的(ρ,θ)对少些,反之则多,但是我们有看到,映射后的点对是需要求交点的,上述画出来...
  • 空间几何计算

    2014-03-18 14:11:08
    15.判断直线是否相交及求直线交点 7 16.判断线段是否相交,如果相交返回交点 7 ㈢ 多边形常用算法模块 1. 判断多边形是否简单多边形 8 2. 检查多边形顶点的凸凹性 9 3. 判断多边形是否凸多边形 9 4. ...
  • 1. 设空间条线段AB和CD,其端点坐标分别为,和,,怎样判断它们是否相交?若相交,交点坐标。 解法1解答: 由端点坐标可知线段AB和CD的参数方程分别为: 如果线段AB和CD相交,则存在和,使下面的方程...
  • 二次曲面的直纹性意味着在空间中所有可能的直线集合中存在某些特殊的直线 ,它与二次曲面具有某些不寻常的关系,即 上的点全部位于 上....如果这条线竟然有交点,那这条直线的位置似乎就不那么平凡.根...
  • 计算直线交点 ...... 获得相对已知点偏移一定距离的点 已知一点,另一点相对于该点的极角(弧度)和极轴长度,另一点的位置 点法绘制圆、三点法绘制圆 绘制椭圆、椭圆弧的中心线 绘制面域中心线 交换...
  • Java HdAcm1174

    2014-03-20 22:38:00
    空间一般直线方程是:(x-...假设已知点的坐标是A(e,f,g),过A点,且与{a,b,c}垂直的平面是,a(x-e)+b(y-f)+c(z-g)=0,直线(x-x0)/a=(y-y0)/b=(z-z0)/c,与这个平面的交点是B,再由点的距离公式出AB,即得. 1 impor...
  • 1·4 直线方程 1·5 条直线平行与垂直的条件 1·6 通过直线交点的直线 1·7 点到直线的距离 1·8 条直线的交角 2.圆的方程 2·1 圆的方程 2·2 圆与直线 2·3 通过圆与圆或圆与直线交点的圆 3.二次曲线 3·1 ...
  • 1·4 直线方程 1·5 条直线平行与垂直的条件 1·6 通过直线交点的直线 1·7 点到直线的距离 1·8 条直线的交角 2.圆的方程 2·1 圆的方程 2·2 圆与直线 2·3 通过圆与圆或圆与直线交点的圆 3.二次曲线 3·1 ...
  • 经过特征点和相应摄像机光心的空间直线方程条直线的交点坐标 即为特征点的三维世界坐标。考虑到由于实际计算时存在各种误差,条直 线很有可能并不相交,因此利用最小二乘法对以上的方程组进行求解。最 ...
  • 地理信息系统算法基础

    千次下载 热门讨论 2009-06-20 10:57:53
    6.1.2直线方程 6.1.3点到直线的距离 6.2角度量算 6.3多边形面积的量算 6.3.1三角形面积量算 6.3.2四边形面积量算 6.3.3任意二维平面多边形面积量算 6.3.4任意三维平面多边形面积量算 思考题 第7章空间...
  • 6.1.2直线方程 6.1.3点到直线的距离 6.2角度量算 6.3多边形面积的量算 6.3.1三角形面积量算 6.3.2四边形面积量算 6.3.3任意二维平面多边形面积量算 6.3.4任意三维平面多边形面积量算 思考题 第7章空间...
  • 8.6 水平线段和竖直线段的交点 8.7 小结 第9章 代数和数值算法 9.1 引言 9.2 幂运算 9.3 欧几里得算法 9.4 多项式乘法 9.5 矩阵乘法 9.5.1 Winograd算法 9.5.2 Strassen算法 9.5.3 布尔矩阵 9.6 快速...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

两空间直线方程求交点