• 计算点在平面上的投影坐标


    1.平面方程为一般式

    已知一个平面Plane以及任一点(V_i(x_i,y_i,z_i)),计算点(V_i) 到平面Plane的投影。
    image0

    给定的平面Plane的方程为:

    (Ax+By+Cz+D = 0)

    过点(V_i) 到平面Plane的垂足记作${V_i} ^prime(x,y,z) $ ,则直线(V_i{V_i}^prime) 与平面的法向量(overrightarrow{n}) 平行,直线(V_i{V_i}^prime) 的参数方程为:

    (cases{x=x_i-At cr y=y_i-Bt cr z=z_i-Ct})

    将点((x,y,z))带入平面方程,求出(t):

    (t=dfrac {Ax_i+By_i+Cz_i+D}{A^2+B^2+C^2})

    再将(t) 带入直线的参数方程就求出了投影点${V_i} ^prime(x,y,z) $ 。

    2.平面由法向量和平面上一点构成

    平面由法向量(overrightarrow n(a,b,c)), 平面上的一点(O(x_0,y_0,z_0)) 所确定,只要(overrightarrow nmathrel{{=}llap{/\,}}0) ,确定的平面就是唯一的。

    任一点$V_i(x,y,z) $, 在平面的投影点为 ${V_i} ^prime ({x}prime,{y}prime,{z}^prime) $ 。

    image1

    有以下几何关系:

    1)(V_i{V_i}^prime parallel overrightarrow n), 2)(O{V_i}^primeperp overrightarrow n)

    由平行关系可得到方程组:

    (dfrac{ {x}^prime -x }a = dfrac{ {y}^prime -y }b = dfrac{ {z}^prime -z }c=t) (Rightarrow) (cases{{x}^prime=x+at cr {y}^prime=y+bt cr {z}^prime=z+ct}) (1)

    由垂直关系可得到方程:

    (a({x}^prime-x_0)+b(y^prime-y_0)+c(z^prime-z_0)=0) (Rightarrow) (ax^prime+by^prime+cz^prime=ax_0+by_0+cz_0) (2)

    由方程(1)(2)求解出(t):

    (t=dfrac{ ax_0+by_0+cz_0-(ax+by+cz) }{a^2+b^2+c^2}) (3)

    再把(t)的值带入方程(1)就求出了投影点${V_i} prime({x}prime,{y}prime,{z}prime) $ 。

    3.平面由三个不共线的点构成

    平面由三个不共线的点(O(x_0,y_0,z_0)),(P_1(x_1,y_1,z_1))(P_2(x_2,y_2,z_2)) 构成。

    iamge2

    计算投影点({V_i}^prime(x,y,z)) 的思路大致是先计算出平面的法向量(overrightarrow{n}(a,b,c)),此时问题转化为了第2节中的方法求解。

    (overrightarrow{n}=overrightarrow{OP_1} imesoverrightarrow{OP_2}=egin{vmatrix}i & j & kcr {x_1-x_0 } & {y_1-y_0} & {z_1-z_0}cr {x_2-x_0 } & y_2-y_0 & z_2-z_0 end{vmatrix})

    由此计算出(overrightarrow n(a,b,c)) 的三个值:

    (cases{a=(y_1-y_0)(z_2-z_0)-(y_2-y_0)(z_1-z_0) cr b=(x_2-x_0)(z_1-z_0)-(x_1-x_0)(z_2-z_0) cr c=(x_1-x_0)(y_2-y_0)-(x_2-x_0)(y_1-y_0)})

    之后的按照第二节中的方法计算求出点({V_i}^prime(x,y,z)) 的坐标。

  • 相关阅读:
    (64)通信协议之一xml
    (63)通信协议之一json
    (61)C语言预处理命令详解
    (60) 结构体指针、结构体变量嵌套、结构体指针嵌套、函数指针、数组指针、指针数组、typedef 综合运用
    (59)Linux操作系统深入应用
    (58)PHP开发
    (57)Linux驱动开发之三Linux字符设备驱动
    (56)Linux驱动开发之二
    (55)Linux驱动开发之一驱动概述
    (54)LINUX应用编程和网络编程之九Linux网络通信实践
  • 原文地址:https://www.cnblogs.com/nobodyzhou/p/6145030.html
Copyright © 2020-2023  润新知