文章目录

  • 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. 参考

  1. 空间向量如何求点到直线距离?
  2. 立体几何:如何用空间向量方法求点到直线的距离?
  3. 向量运算(叉乘几何意义)

空间点与直线距离算法相关推荐

  1. 1342:【例4-1】最短路径问题——用Dijkstra算法、坐标系两点之间直线距离作为权值情况

    [题目描述] 平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间.其中的一些点之间有连线. 若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的 ...

  2. 计算机图形学直线算法论文,《计算机图形学》中直线生成算法的教学心得

    摘要:<计算机图形学>是计算机科学与技术专业一门重要的专业课,其中直线生成算法是教学重点之一.该文通过分析几种直线生成算法的特点,阐述了理论教学和实践教学的重点和难点,总结了教学的体会和心 ...

  3. 直线拟合c语言程序,ax+by+c=0 型直线拟合算法

    所谓直线拟合,通常也叫做线性拟合.一元线性回归.指的是当我们有一批数据(xi,yi),这些数据在平面坐标系下落在一条直线上,或近似的落在一条直线上.我们就要求出这条直线的参数.如果这条直线可以写为: ...

  4. 计算机图形学01:直线生成算法(DDA算法)

    作者:非妃是公主 专栏:<计算机图形学> 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成.--曾国藩 文章目录 专栏推 ...

  5. 文本匹配相似度计算---多种距离算法 ,多种相似度计算算法,一看就懂

    常见的距离算法和相似度(相关系数)计算方法 1.常见的距离算法 1.1欧几里得距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式. ( ...

  6. 高德地图是直线距离吗_是直线直线

    高德地图是直线距离吗 This simple question "is a straight line linear?" came to my mind and couldn't ...

  7. 计算机图形学学习(一) 直线Bresenham算法讲解及matlab实现

    文章目录 Bresenham算法介绍 Bresenham算法实现 matlab代码实现 成果演示 最后 Bresenham算法介绍 Bresenham是计算机图形学领域使用最广泛的直线扫描转换算法,其 ...

  8. C语言算2个坐标点之间的距离,c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode...

    #include #include #include char explode( char * str , char symbol ); double distance ( int x1 , int ...

  9. 使用百度地图API计算两点直线距离、道路距离和行车时间

    使用百度地图API计算两点直线距离.道路距离和行车时间 摘要 关键词 介绍 数据展示 工具介绍 根据经纬度计算两点之间的距离 根据经纬度计算两点之间的道路距离和行车时间 多进程 运行中 结果展示 问题 ...

  10. 布雷森汉姆直线演算法(Bresenham‘s line algorithm)介绍

    布雷森汉姆直线演算法(Bresenham's line algorithm)是用来描述两点间决定一条直线的算法,本人发现它可以用于确定栅格地图中两点间直线经过的栅格位置,它会算出一条线段在点阵图上最接 ...

最新文章

  1. php读取不到指定的php.ini配置
  2. ggplot2版聚类物种丰度堆叠图
  3. 图书馆座位预定系统开发
  4. 谁是最可爱的人--环卫工人
  5. 在64位Windows7上安装64位Oracle11g
  6. python连通域标记_pythonamp;#8212;二值图像连通域标记 - 易采站长站
  7. dart系列之:还在为编码解码而烦恼吗?用dart试试
  8. 嵌入式C语言基础(一)
  9. leetcode------Word Search
  10. jsp做看板_如何使用看板做敏捷开发
  11. nosql----redis持久化详解
  12. java笔记--查看和修改线程名称
  13. 00、Python源码编译
  14. 计算机wifi共享,win7 wifi共享,教您Win7如何设置wifi共享
  15. java field的方法_Java Field 详解
  16. win10笔记本插上耳机没声音设置
  17. 营销短信API专用通道
  18. 用计算机pol计算方位角,如何通过编程代替计算器内部函数“Pol和Rec”
  19. 如何才能打造优秀高效的项目团队?
  20. 1 监督学习与非监督学习简介--机器学习基础理论入门

热门文章

  1. 服务器SSH 22端口关闭
  2. js 生成二维码(qrcodejs)
  3. Mac Spark 安装
  4. OpenCV-Python官方文档的查看
  5. 微信小程序——video视频播放
  6. java 汉字按拼音排序_Java当中汉字按照拼音排序
  7. BB8球形机器人制作教程
  8. 更新pip下载jupyter lab
  9. oracle sql调优面试,数据库优化常见的面试题
  10. Jmeter基础篇(01):如何进行post接口压力测试