平面在数学上的定义是,平面,是指面上任意两点的连线整个落在此面上。
- 在现实生活中你很容易一眼看出什么平面,但是在计算机的程序里,你将如何表示一个平面的呢?
- 又是怎么样求点到平面的距离?
- 判断点在平面的正面还是反面?
- 线与平面的交点又是怎么求出来的呢?
这篇文章就简单讨论这么几个问题,本文代码有TypeScript所实现,看起来和其他面向对象语言一样,求点积叉积的方法不具体实现,如果有疑惑可以查看我之前的文章。
平面的定义
平面,我们可以通过一条法线和一个点来表示,这个点我们为了方便,就取法线的点, 由于知道法线,所以只有法线单位化,确定这个在法线方向的长度即可。平面方程就用单位长度的法向量和常数表示,在程序上就采用四个浮点数来表示。

我们都知道三个点(不在一条直线上的三个点)可以确定一个平面。下面代码就是输入三个点输出一个平面的表示。
function planeFromePoints(a:Vector3,b:Vector3,c:Vector3):Vector4{
//计算三个点构成的法向量
let normal = Vector3.cross(b-a,c-a).normalize();
//点a在法线上的投影长度
let d = Vector3.dot(normal,a);
let result = new Vector4

本文探讨计算机图形学中的平面表示方法,包括通过法线和点定义平面,计算点到平面的距离,判断点相对于平面的位置,以及线段和射线与平面的交点求解。内容涉及TypeScript实现,并提供了判断条件和关键公式。
最低0.47元/天 解锁文章
2695

被折叠的 条评论
为什么被折叠?



