空间点与直线距离算法
文章目录
- 1. 原理推导
- 2. 具体实现
- 3. 参考
1. 原理推导
令空间中点A与点B组成向量AB→\overrightarrow{AB}AB,向量外有一点P,那么我们要求的就是P与直线AB→\overrightarrow{AB}AB的距离d。
连接点A与点P,得直线向量AP→\overrightarrow{AP}AP。将向量AB→\overrightarrow{AB}AB与AP→\overrightarrow{AP}AP叉乘,根据向量叉乘的几何意义,∣AB→×AP→∣|\overrightarrow{AB} \times \overrightarrow{AP}|∣AB×AP∣实际上是一个平行四边形面积,如下图所示:
根据平行四边形公式,很显然我们要求的d就是这个平行四边形的高,也就是:
d=∣AB→×AP→∣∣AB→∣d = \frac{|\overrightarrow{AB} \times \overrightarrow{AP}|} {|\overrightarrow{AB}|} d=∣AB∣∣AB×AP∣
2. 具体实现
直到了原理,具体的实现就很简单了,只要套公式就可以了。其中^是个自己重载实现的求叉乘的操作:
double CalDistancePointAndLine(Vec3d &point, Vec3d &lineBegin, Vec3d &lineEnd)
{//直线方向向量Vec3d n = lineEnd -lineBegin;//直线上某一点的向量到点的向量Vec3d m = point - lineBegin;return (n ^ m).length() / n.length();
}
详细代码
3. 参考
- 空间向量如何求点到直线距离?
- 立体几何:如何用空间向量方法求点到直线的距离?
- 向量运算(叉乘几何意义)
空间点与直线距离算法相关推荐
- 1342:【例4-1】最短路径问题——用Dijkstra算法、坐标系两点之间直线距离作为权值情况
[题目描述] 平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间.其中的一些点之间有连线. 若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的 ...
- 计算机图形学直线算法论文,《计算机图形学》中直线生成算法的教学心得
摘要:<计算机图形学>是计算机科学与技术专业一门重要的专业课,其中直线生成算法是教学重点之一.该文通过分析几种直线生成算法的特点,阐述了理论教学和实践教学的重点和难点,总结了教学的体会和心 ...
- 直线拟合c语言程序,ax+by+c=0 型直线拟合算法
所谓直线拟合,通常也叫做线性拟合.一元线性回归.指的是当我们有一批数据(xi,yi),这些数据在平面坐标系下落在一条直线上,或近似的落在一条直线上.我们就要求出这条直线的参数.如果这条直线可以写为: ...
- 计算机图形学01:直线生成算法(DDA算法)
作者:非妃是公主 专栏:<计算机图形学> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 专栏推 ...
- 文本匹配相似度计算---多种距离算法 ,多种相似度计算算法,一看就懂
常见的距离算法和相似度(相关系数)计算方法 1.常见的距离算法 1.1欧几里得距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式. ( ...
- 高德地图是直线距离吗_是直线直线
高德地图是直线距离吗 This simple question "is a straight line linear?" came to my mind and couldn't ...
- 计算机图形学学习(一) 直线Bresenham算法讲解及matlab实现
文章目录 Bresenham算法介绍 Bresenham算法实现 matlab代码实现 成果演示 最后 Bresenham算法介绍 Bresenham是计算机图形学领域使用最广泛的直线扫描转换算法,其 ...
- C语言算2个坐标点之间的距离,c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode...
#include #include #include char explode( char * str , char symbol ); double distance ( int x1 , int ...
- 使用百度地图API计算两点直线距离、道路距离和行车时间
使用百度地图API计算两点直线距离.道路距离和行车时间 摘要 关键词 介绍 数据展示 工具介绍 根据经纬度计算两点之间的距离 根据经纬度计算两点之间的道路距离和行车时间 多进程 运行中 结果展示 问题 ...
- 布雷森汉姆直线演算法(Bresenham‘s line algorithm)介绍
布雷森汉姆直线演算法(Bresenham's line algorithm)是用来描述两点间决定一条直线的算法,本人发现它可以用于确定栅格地图中两点间直线经过的栅格位置,它会算出一条线段在点阵图上最接 ...
最新文章
- php读取不到指定的php.ini配置
- ggplot2版聚类物种丰度堆叠图
- 图书馆座位预定系统开发
- 谁是最可爱的人--环卫工人
- 在64位Windows7上安装64位Oracle11g
- python连通域标记_pythonamp;#8212;二值图像连通域标记 - 易采站长站
- dart系列之:还在为编码解码而烦恼吗?用dart试试
- 嵌入式C语言基础(一)
- leetcode------Word Search
- jsp做看板_如何使用看板做敏捷开发
- nosql----redis持久化详解
- java笔记--查看和修改线程名称
- 00、Python源码编译
- 计算机wifi共享,win7 wifi共享,教您Win7如何设置wifi共享
- java field的方法_Java Field 详解
- win10笔记本插上耳机没声音设置
- 营销短信API专用通道
- 用计算机pol计算方位角,如何通过编程代替计算器内部函数“Pol和Rec”
- 如何才能打造优秀高效的项目团队?
- 1 监督学习与非监督学习简介--机器学习基础理论入门