3D数学公式

news/2024/5/18 21:27:19

    众所周知,数学中向量、矩阵(变换)、齐次坐标以及四元数的概念和规则是3D游戏编程和计算机图形学的理论基础。下面介绍开发过程中经常用到的一些数学公式。

  •  直线公式

      P(t) = (1-t)P1 + tP2 

    其中,P1和P2表示3D空间的两点向量。t可以是任意实数。P1与P2之间的线段对应于t在0到1之间的值。

  •  点到直线的距离公式
 给定一个点Q,给定的直线由端点P0和方向向量V定义,在计算Q到直线的距离d时,可以通过计算Q-P0相对于直线的垂直分量而得到。如下图:
         

  •  射线公式

    P(t) = P0 + tu

    其中,t的值大于等于0,u表示射线方向向量。实际上,让t为任意实数,就得到三维空间直线。


  •   平面公式

    对应给定的3D点P0和法向量N,那么过P0且与N垂直可以唯一确定一个平面。


    N.(P - P0) = 0

    平面方程通常也可以表示为:

    Ax + By + Cz + d = 0

    其中,A,B,C是法向量N的x,y,z分量,即:

     N.P+d = 0

    法向量经常被规格化单位长度,因为这样等式

    D = N.P +d

    就可以表示平面到任意点P的带符号距离。如果D=0,则表示点P在平面上。如果d>0,则称点P在平面的正侧,因为此时P位于法向量所指的一侧。与些相反,如果d<0,那么P位于平面的负侧。

  • 直线与平面相交公式

  确定直线与平面的交点,是3D引擎中的一种常用计算。特别是在计算多边形裁剪的过程中会大量地用到直线与平面的求交。

        设P(t)=Q+tV表示包含点Q并沿V方向延伸的直线。对于法向量为N并且距原点带符号距离为D的平面,可以通过解方程来确定直线与平面的交点。

        N.P(t) + D = 0 //平面公式

        推导过程就不写了,结果为

         

        把t的值代回直线方程P(t)=Q+tV,就可以求得直线与平面的交点。如果N.V为0,那么直线与平面平行(平面法向量与直线方向向量V垂直)。这种情况下,如果N.Q+D=0,那么直线在平面上;否则,直线与平面没有交点。

  • 三个平面相交公式
空间中的区域经常用由一组平面所围成的凸多边形边界来定义。凸多边形的顶点和棱,可以通过一系列计算得到,在计算过程需要求解一些点,有多组的三个平面在这些点相交。
        设L1=<N1,D1> , L2=<N2,D2>  ,L3=<N3,D3>分别表示三个平面。可以通过求解方程组来得到同时位于三个平面的点Q:
           L1.Q = 0
           L2.Q = 0
           L3.Q = 0
         

   

 平面L1和平面L2的交线可以表示为P(t)=Q+tV。




https://dhexx.cn/news/show-2510082.html

相关文章

理解C++ dynamic_cast

理解C dynamic_cast 在面向对象程序设计中&#xff0c;有时我们需要在运行时查询一个对象是否能作为某种多态类型使用。与Java的instanceof&#xff0c;以及C#的as、is运算符类似&#xff0c;C提供了dynamic_cast函数用于动态转型。相比C风格的强制类型转换和C reinterpret_cas…

《树莓派Python编程入门与实战(第2版)》——2.4 LXDE图形界面

本节书摘来自异步社区《树莓派Python编程入门与实战&#xff08;第2版&#xff09;》一书中的第2章&#xff0c;第2.4节&#xff0c;作者[美] Richard Blum Christine Bresnahan&#xff0c;陈晓明 马立新 译&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。…

《Android 平板电脑开发实战详解和典型案例》——2.6节可展开列表—— ExpandableListView...

本节书摘来自异步社区《Android 平板电脑开发实战详解和典型案例》一书中的第2章&#xff0c;第2.6节可展开列表—— ExpandableListView&#xff0c;作者 吴亚峰 , 杜化美 , 索依娜&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.6 可展开列表—— Expand…

DBA避坑宝典:Oracle运维中的那些事儿

对于Oracle运维中的那些事儿&#xff0c;我的最终目的&#xff1a;不是比谁更惨&#xff0c;而是能够从中吸取经验和教训。 从我的理解来看&#xff0c;我会从下面的几个方面来进行说明DBA运维中的一些事儿。 每个部分都是非常关键的&#xff0c;缺一不可&#xff0c;而且每一部…

车联网V2X介绍之:通信芯片

车联网V2X介绍之&#xff1a;通信芯片 参考链接&#xff1a;https://zhuanlan.zhihu.com/p/115276002 目前&#xff0c;我国产业化进程逐步加快&#xff0c;产业链上下游企业已经围绕LTE-V2X形成包括通信芯片、通信模组、终端设备、整车制造、运营服务、测试认证、高精度定位及…

看V2X标准之争,美国/欧洲/日本/中国如何布局车联网?

看V2X标准之争&#xff0c;美国/欧洲/日本/中国如何布局车联网&#xff1f; 参考链接&#xff1a;https://www.ednchina.com/news/20170411V2X.html 中国信息通信研究院副主任汤立波博士在近日“智能交通和安全车联网的未来之路”中分享了车联网的整个产业链&#xff0c;以及…

Nginx HTTPS功能部署实践

本文出处&#xff1a;http://oldboy.blog.51cto.com/2561410/1889346 30.1 文档目的 本文目的提高自己文档的写作能力及排版能力,加强上课所讲的内容得以锻炼也方便自己以后查阅特写此文档。 30.2 文档内容 本章内容包括:单向和双向认证的概念、openssl的介绍、Nginx单向ssl的配…

谈谈车联网--V2X技术

谈谈车联网--V2X技术 参考链接&#xff1a;https://mp.weixin.qq.com/s/-J8QhjURneLaqPhRA4Hmng C-V2X目前产业不断走向成熟&#xff0c;落地场景不断丰富&#xff0c;正处于规模商用的阶段。可以预见&#xff0c;基于蜂窝车联网&#xff08;C-V2X&#xff09;的“聪明的车智慧…

《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.3 用好流量分析,生意突飞猛进...

本节书摘来自异步社区出版社《淘宝店铺 大数据营销SEO爆款打造 一册通》一书中的第2章&#xff0c;第2.3节&#xff0c;作者&#xff1a;葛存山 , 耿寿礼&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.3 用好流量分析&#xff0c;生意突飞猛进 流量分析…

关于Autotalks和V2X介绍

关于Autotalks和V2X介绍 Autotalks是一家来自以色列的初创企业,他们的目的是让汽车能够学会交流,来传递一些之于安全和流通十分重要的信息,也就是V2X。 V2X通讯技术一直被期待用来提高道路安全以及交通效率。通过车辆与交通设施之间的信息传递,以及车辆之间的信息共享,来…