精华内容
下载资源
问答
  • python实现点到平面距离

    千次阅读 2019-10-11 15:08:42
    python实现点到平面距离 目录 python实现点到平面距离 1.三点定 2.点到面距离 3.python实现点到面距离 关于点线面之间关系可以参考:https://blog.csdn.net/qq_23869697/article/details/82688277 1...

    python实现点到平面的距离


    目录

    python实现点到平面的距离

    1.三点定面

    2.点到面的距离

    3.python实现点到面的距离


    关于点线面之间关系可以参考:https://blog.csdn.net/qq_23869697/article/details/82688277

    1.三点定面

    空间上任意三个不共线的点,可以确定一个平面,三点定面的例子:

    2.点到面的距离

    点到面的距离,可参考这个例子

    3.python实现点到面的距离

    空间上不共线的三个点P1,P2,P3确定一个平面,计算空间上某个点P4到{P1,P2,P3}组成的平面的距离,可如下计算

    import numpy as np
    
    def define_area(point1, point2, point3):
        """
        法向量    :n={A,B,C}
        空间上某点:p={x0,y0,z0}
        点法式方程:A(x-x0)+B(y-y0)+C(z-z0)=Ax+By+Cz-(Ax0+By0+Cz0)
        https://wenku.baidu.com/view/12b44129af45b307e87197e1.html
        :param point1:
        :param point2:
        :param point3:
        :param point4:
        :return:(Ax, By, Cz, D)代表:Ax + By + Cz + D = 0
        """
        point1 = np.asarray(point1)
        point2 = np.asarray(point2)
        point3 = np.asarray(point3)
        AB = np.asmatrix(point2 - point1)
        AC = np.asmatrix(point3 - point1)
        N = np.cross(AB, AC)  # 向量叉乘,求法向量
        # Ax+By+Cz
        Ax = N[0, 0]
        By = N[0, 1]
        Cz = N[0, 2]
        D = -(Ax * point1[0] + By * point1[1] + Cz * point1[2])
        return Ax, By, Cz, D
    
    
    def point2area_distance(point1, point2, point3, point4):
        """
        :param point1:数据框的行切片,三维
        :param point2:
        :param point3:
        :param point4:
        :return:点到面的距离
        """
        Ax, By, Cz, D = define_area(point1, point2, point3)
        mod_d = Ax * point4[0] + By * point4[1] + Cz * point4[2] + D
        mod_area = np.sqrt(np.sum(np.square([Ax, By, Cz])))
        d = abs(mod_d) / mod_area
        return d
    
    
    
    if __name__ == '__main__':
        # 初始化数据
        point1 = [2, 3, 1]
        point2 = [4, 1, 2]
        point3 = [6, 3, 7]
        point4 = [-5, -4, 8]
        # 计算点到面的距离
        d1 = point2area_distance(point1, point2, point3, point4)  # s=8.647058823529413
        print("点到面的距离s: " + str(d1))
    

     

    展开全文
  • 求一个点一个平面距离? 上图中点P到平面距离平面上任取一点A,连接向量 PA,过P向平面做垂线与平面相交与P',则PP'A构成一个直角三角形,PP' 的长度即为点P到平面距离。 因为 PP' 垂直于平面平面...

    求一个点到一个平面的距离?

    上图中点P到平面的距离

    在平面上任取一点A,连接向量 PA,过P向平面做垂线与平面相交与P',则PP'A构成一个直角三角形,PP' 的长度即为点P到平面的距离。

    因为 PP' 垂直于平面,平面法向量 Normal垂直于平面

    则 PP' || Normal

    PP'的长度即为向量 PA 到平面法向量Normal的投影长度

    则 PP' 的长度 L = |PP'| = Math.Abs(Dot(PA, Normal)) ,因为点乘结果有正/负两种可能,所以这里取了绝对值

    P'的坐标值为多少?

    P' 坐标 = P坐标 + PP' 长度 * (PP' 归一化)

    上边已经证明  |PP'| = Math.Abs(Dot(PA, Normal)) ,

    PP' 归一化 = +Normal或者 PP'归一化= -Normal,决定条件在于P在平面正面你或者反方,平面以Normal指向为正面,-Normal 方向即为反面

    最终 P' 坐标 = P坐标 + Dot(PA, Normal) * Normal

    上面已经计算得到了点P到平面的距离,那么进一步思考得到球与平面的相交检测?

     球的定义为到点P距离小于等于R的点的集合

    如果 P到平面的距离也就是 |PP'| <= R, 球与平面相交

    展开全文
  • 到平面距离完整推导

    千次阅读 2019-12-13 10:13:43
    到面距离一般还说时最短距离,但一个平面一般是有界限的,所以需要先把一个平面用截距式方程显示为: Ax+By+Cz+D=0 借用这张图来表示: 可以看到要求d(最短距离)需要知道q点p点(p点时平面的点)的距离...

    前几天跟同事讨论一个几何知识时遇到了一些疑问,后面经过推导弄明白了,其实这道题不难,但是里面有些基本的原理深究的话一开始还是没想明白,在这里记录下:

    点到面的距离一般还说时最短距离,但一个平面一般是有界限的,所以需要先把一个平面用截距式方程显示为:

    Ax+By+Cz+D=0

    借用这张图来表示:

    可以看到要求d(最短距离)需要知道q点到p点(p点时平面的点)的距离(也就是他的模),以及\Theta这个角度,

    通过三角函数知道:d=\left | \underset{PQ}{\rightarrow} \right |\cdot \cos \Theta\

    因为pg的模本身我们不确定,所以需要得到一个确定的值来运算

    我们可以用PG\cdot n来做运算,要得到这块我们法线d这个公式只需要加上\left |\underset{n}{\rightarrow} \right |就可以了,

    所以我们乘\left |\underset{n}{\rightarrow} \right |\left |\underset{n}{\rightarrow} \right |得到

    已知PQ\cdot n=\left |\underset{PG}{\rightarrow} \right |\star \left |\underset{n}{\rightarrow} \right |\star \cos \Theta

    得:

     

    到了这一步我们法线我们得法向量还未知:

    但其实我们通过截距式方程的公式可知n={A,B,C}。

    当然我们还时可以推导出来的。

    法向量的推导可以用两个方式,一个是取平面的任意两条线与法向量点乘,这个值必然为0。另一个是用任意两条平面的线做叉乘,这时可得垂直于他的法向量。

    下面我们推导点乘的方式:

    我们已知平面的截距式公式为:Ax+By+Cz+D=0

    得到:截距式表明了,当y=0,z=0时,跟x轴相交,代入公式得到x=\frac{-D}{A},

    同理y=0,z=0时,跟y轴相交,带入公式得到y=\frac{-D}{B}

    同理x=0,y=0时,跟z轴相交,带入公式得到z=\frac{-D}{C}

    然后我们可以得到平面的特殊的三个点a点:(\frac{-D}{A},0,0),b点:(0,\frac{-D}{B},0),c点:(0,0,\frac{-D}{C})

    那么我们可以得到向量ab:(x_{b}-x_{a},y_{b}-y_{a},z_{b}-z_{a}),ac:(x_{c}-x_{a},y_{c}-y_{a},z_{c}-z_{a}),bc:(x_{c}-x_{b},y_{c}-y_{b},z_{c}-z_{b})

    具体得到ab:(\frac{D}{A},\frac{-D}{B},0),ac:(\frac{D}{A},0,\frac{-D}{C}),bc:(0,\frac{D}{B},\frac{-D}{C})

    我们之前说了平面和法向量的点乘一定为0

    点乘的公式为:

    带入进入得

    \frac{D}{A}*x+\frac{-D}{B}*y+0*z = 0

    \frac{D}{A}*x+0*y+\frac{-D}{C}*z=0

    0*x+\frac{D}{B}*y+\frac{-D}{C}*z=0

    这里公式列出来我们可以求解,我们可以得到两种情况可以让xyz使上面得值为0得,

    第一个值时xyz都为0,这个就i是具体的一个点了,而不是面。

    那么另外一个值就只有点(A,B,C)了。

    由此可得法向量为(A,B,C)

     

    最终带入到上面的公式中得:

    (其中(x0,y0,z0)是点Q的值,ABCD是截距式公式的4个常量值)

    最后的等式就是我们要求的点到面的最短距离了。

    只需要带入具体的值就能算出来了。

     

    这个公式在具体的应用中也会用到。

     

    有时我们能直接套公式不需要推导就能完成很多事情,但只有完整推导出公式才属于自己的知识,才能在以后的复杂应用中灵活引用。

    展开全文
  • 平面方程与点到平面距离

    万次阅读 2018-09-13 15:02:22
    平面方程与点到平面距离 1. 平面的点法式方程 过空间的一点,与已知直线垂直的平面只有一个。因此,给定平面上的一点和垂直于该平面的一个非零向量,平面就确定了。 这就是所谓的点法式方程的基础。 (1)法...

    1. 平面的点法式方程

    过空间的一点,与已知直线垂直的平面只有一个。因此,给定平面上的一点和垂直于该平面的一个非零向量,平面就确定了。
    这就是所谓的点法式方程的基础。

    (1)法向量:

    任意垂直与一个平面的向量被称为法向量。
    法向量有无数个。

    (2)平面的点法式方程:

    假设平面上的一个点 M 0 ( x 0 , y 0 , z 0 ) M_0(x_0, y_0, z_0) M0(x0,y0,z0),已知该平面的法向量为 n = ( A , B , C ) n=(A, B, C) n=(A,B,C), 那么对于平面上的任意一点 M ( x , y , z ) M(x, y ,z) M(x,y,z), 向量 M 0 = ( x − x 0 , y − y 0 , z − z 0 ) M_0 = (x-x_0, y-y_0, z-z_0) M0=(xx0,yy0,zz0)与法向量垂直,即 n ⋅ M M 0 = 0 n \cdot MM_0 = 0 nMM0=0, A ( x − x 0 ) + B ( y − y 0 ) + c ( z − z 0 ) = 0 A(x-x_0)+B(y-y_0)+c(z-z_0)=0 A(xx0)+B(yy0)+c(zz0)=0


    2. 点与平面的关系

    (1)点与平距离的计算

    假设平面的方程为 A x + B y + C z + D = 0 Ax+By+Cz+D=0 Ax+By+Cz+D=0平面外的一点 P 0 ( x 0 , y 0 , z 0 ) P_0(x_0, y_0, z_0) P0(x0,y0,z0), 在平面上取一点 P 1 ( x 1 , y 1 , z 1 ) P_1(x_1, y_1, z_1) P1(x1,y1,z1), 那么点 P 0 P_0 P0到平面的距离d就是向量 P 1 P 0 P_1P_0 P1P0在法向量 n n n上投影的长度
    project
    d = ∣ n ⋅ P 1 P 0 ∣ n = ∣ A ( x − x 0 ) + B ( y − y 0 ) + c ( z − z 0 ) ∣ A 2 + B 2 + C 2 d=\frac{\left | n\cdot P_1P_0 \right |}{n}=\frac{\left | A(x-x_0)+B(y-y_0)+c(z-z_0) \right |}{\sqrt{A^{2}+ B^{2}+C^{2}}} d=nnP1P0=A2+B2+C2 A(xx0)+B(yy0)+c(zz0) = ∣ A x − A x 0 + B y − B y 0 + C z − C z 0 ∣ A 2 + B 2 + C 2 = ∣ A x + B y + C z − A x 0 − B y 0 − C z 0 ∣ A 2 + B 2 + C 2 =\frac{\left | Ax-Ax_0+By-By_0+Cz-Cz_0 \right |}{\sqrt{A^{2}+ B^{2}+C^{2}}}=\frac{\left | Ax+By+Cz-Ax_0-By_0-Cz_0 \right |}{\sqrt{A^{2}+ B^{2}+C^{2}}} =A2+B2+C2 AxAx0+ByBy0+CzCz0=A2+B2+C2 Ax+By+CzAx0By0Cz0 = ∣ D + A x 0 + B y 0 + C z 0 ∣ A 2 + B 2 + C 2 =\frac{\left |D+ Ax_0+By_0+Cz_0 \right |}{\sqrt{A^{2}+ B^{2}+C^{2}}} =A2+B2+C2 D+Ax0+By0+Cz0
    所以点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)到平面的距离为 d = ∣ A x 0 + B y 0 + C z 0 + D ∣ A 2 + B 2 + C 2 d=\frac{\left | Ax_0+By_0+Cz_0 +D\right |}{\sqrt{A^{2}+ B^{2}+C^{2}}} d=A2+B2+C2 Ax0+By0+Cz0+D


    同济版 高等数学

    展开全文
  • 到平面距离计算

    万次阅读 2017-11-19 11:10:19
    在工程计算过程中,往往要求我们计算点到平面距离,特别是在计算机图形学中的运用最多。如图1所示,已知一个平面Plan的方向n和该平面上的顶点B,求空间中某一个顶点P平面距离。假设点P在平面Plan上的投影点...
  • 平面距离

    2019-03-24 15:33:08
    平面距离
  • 到平面距离

    千次阅读 2017-02-06 14:56:29
    空间内一点到平面内一点的最小长度叫做点到平面距离。特别的,当点在平面内,则点到平面距离为0。平面的一般式方程Ax +By +Cz + D = 0其中n = (A, B, C)是平面的法向量,D是将平面平移坐标原点所需距离(所以D...
  • 到平面距离

    2019-04-10 13:52:21
  • 到平面距离证明

    2020-11-16 21:50:46
    到平面距离证明
  • 获取平面坐标系点线段最短距离,非地球坐标
  • 平面方程 法向量:垂直于平面的非零向量 法线向量垂直于平面上的任意向量 平面的点法式方程 过三点的法向量的求法
  • 到平面距离公式的推导

    千次阅读 2017-03-22 10:09:41
    到平面距离公式 准备知识 平面的一般式方程 Ax +By +Cz + D = 0 其中n = (A, B, C)是平面的法向量,D是将平面平移坐标原点所需距离(所以D=0时,平面过原点) 向量的模(长度) 给定一个向量V(x, y, z)...
  • 平面距离

    2020-07-28 17:30:07
    平面距离
  • 到平面距离(最短距离)

    万次阅读 2019-03-01 18:46:08
    初高中的知识,拿出来从新学习 首先确定平面所满足的公式: Ax+By+Cz+D=0,其中D是常数项,D/A、D/B和D/C分别是平面在x轴、y轴和z轴上截距,表示为平面到原点的最小...外的点(x' , y' , z')到平面距离公式为: ...
  • 平面方程、夹角与点到平面距离

    千次阅读 2018-03-30 23:43:12
    平面的点法式方程 法向量:垂直于一个平面的非零向量叫做一个平面的法向量。 假设空间内有一点M0(x0,y0,z0)M0(x0,y0,z0)M_0(x_0, y_0, z_0)和一个向量n→=(A,B,C)n→=(A,B,C)\overrightarrow n = (A, B, C),则...
  • 平面方程”是指空间中所有处于同一平面的点所对应的方程,其一般式形如Ax+By+Cz+D=0。 表示方法: 截距式 x/a+y/b+z/c=1 点法式 A(x-x0)+B(y-y0)+C(z-z0)=0 一般式 Ax+By+Cz+D...
  • 二维平面线段距离的C++2008小程序
  • 求点平面距离

    2020-12-27 14:53:21
    求点平面距离
  • 到平面距离推导

    千次阅读 2018-10-12 09:54:13
    平面方程表示 “平面方程”是指空间中所有处于同一平面的点所对应的方程,其一般式形如Ax+By+Cz+D=0。 表示方法 截距式 x/a+y/b+z/c=1 点法式 A(x-x0)+B(y-y0)+C(z-z0)=0 一般式 Ax...
  • 直线平面距离

    千次阅读 2016-03-19 12:03:50
    1平面直线距离 点(x0,y0),直线:A*x + B*y + c = 0,距离d。 d=|A*x0 + B*y0 + c|/ sqrt(A*A + B*B)   2空间点到平面距离 点(x0,y0,z0),平面:A*x + B*y + C*z + D = 0,距离d。 d=|A...
  • 到平面距离公式

    千次阅读 2020-08-14 17:09:17
    其中n = (A, B, C)是平面的法向量,D是将平面平移坐标原点所需距离(所以D=0时,平面过原点) 向量的模(长度) 给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z) 向量的点积(内积) 给定两个...
  • 已知三点求平面方程、平面法向量和点到平面距离 已知三点p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),要求确定的平面方程 关键在于求出平面的一个法向量,为此做向量p1p2(x2-x1,y2-y1,z2-z1),p1p3(x3-x1,y3...
  • 平面距离推导

    千次阅读 多人点赞 2017-05-04 14:55:09
    在感知机模型中,输入空间中任意一点 平面S的距离:其推导过程如下:
  • 到平面距离的若干典型求法.doc
  • java实现平面点最小距离

    万次阅读 多人点赞 2019-07-30 09:03:22
    ** 平面点最小距离** 最近距离 已知平面上的若干点的位置,存入一个List中。现在需要计算所有这些点中,距离最近的两个点间的最小距离。请补全缺失的代码。 把填空的答案(仅填空处的答案,不包括题)存入考生...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,458
精华内容 42,583
关键字:

平面到平面的距离