惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Y
Y Combinator Blog
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
The Cloudflare Blog

博客园 - CC影子

Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization【转】 Source Multiplayer Networking【转】 点在平面上的投影【转】 求反射向量【转】 射线和三角形的相交检测(ray triangle intersection test)【转】 3D空间中射线与轴向包围盒AABB的交叉检测算法【转】 3D空间中射线与三角形的交叉检测算法【转】 射线与平面的相交检测(Ray-Plane intersection test)【转】 HLSL-高级着色语言简介【转】 直线和平面的交点【转】 Cocos2d-三维拾取Ray-AABB碰撞检测算法【转】 向量投影【转】 空间点到直线的距离【转】 判断点是否在三角形内【转】 透视投影详解【转】 几何变换详解【转】 Flash(as3) 调整显示对象颜色 Flash矢量图与位图性能对比 Stage3D显示透明贴图
点到平面的距离公式【转】
CC影子 · 2016-01-27 · via 博客园 - CC影子

准备知识

平面的一般式方程

Ax +By +Cz + D = 0

其中n = (A, B, C)是平面的法向量,D是将平面平移到坐标原点所需距离(所以D=0时,平面过原点)

向量的模(长度)

给定一个向量V(x, y, z),则|V| = sqrt(x * x + y * y + z * z)

向量的点积(内积)

给定两个向量V1(x1, y1, z1)和V2(x2, y2, z2)则他们的内积是

V1V2 = x1x2 + y1y2 + z1z2

点到平面的距离

有了上面的准备知识,则求点到直线的距离不再是难事,有图有真相

如果法相量是单位向量的话,那么分母为1

ORGE中的实现

顺便看一下Ogre中的实现

Real Plane::getDistance (const Vector3& rkPoint) const
{
     return normal.dotProduct(rkPoint) + d;
}

可见Ogre默认法相量为单位向量,且没有对结果取绝对值,根据注释,当点与法相量的方向在同一侧时,结果为正,否则为负。