chopper:目录zhuanlan.zhihu.com
是常量且不全为0,
表示点的坐标,即任意一个满足等式(1)的点都在平面Г上。
构成平面的法向量
,因此平面的参数方程的另一种形式为:
图1. 平面的表示
是平面的法向量,
是常量,
是变量,表示满足方程的点。 如图1所示,显然,只需要一个三维法向量
和常量d,就可以表示三维空间的平面。向量
是平面的法向量,即垂直于平面Г,法向量所指的方向是平面的正方向,与它相对的,则是平面的负方向。平面在正方向上的面,称为平面的正面,与它对应的是平面的背面。一个平面把三维空间分成两半,这样一个平面,也称为超平面,分成的两半三维空间称为半空间,在平面正方向上的空间称为正半空间,在平面负方向上的空间称为负半空间。在实际实现平面对象的时候,可以根据具体的情况,选择是否需要对法向量
进行归一化,毕竟归一化需要3个乘法、2个加法和1个求根操作,而且可能加剧浮点数的精度问题。
在平面
上,
和
是平面上不平行的两个向量,可以把它们看成由点
![afc8264a3ee0185857fb34c62b8857ee.png](https://img-blog.csdnimg.cn/img_convert/afc8264a3ee0185857fb34c62b8857ee.png)
几何平面,是空间上基础的图元,也是游戏中经常遇到的元素,本篇文章侧重介绍几何平面的数学表示,以及如何初始化一个平面对象。文章分为两部分,第一部分介绍平面的数学表示,第二部分介绍如何根据指定条件构造一个平面对象,第三部分是C++源码实现。
文章目录:
- 数学表示
- 构造平面
- 源码实现
- 参考
数学表示
直观的讲,平面就是一个平坦的无穷大的纸,上面有无穷个点。在三维空间的任何一个平面Г,都可以用参数方程表示为:
其中,
![479a2b9106549f6ef8e4a98c4b672e6f.png](https://img-blog.csdnimg.cn/img_convert/479a2b9106549f6ef8e4a98c4b672e6f.png)
其中,
此外,给定平面上的一个点,在它上面的两个向量,也可以表示平面。如图2所示,设