两空间线段最短距离计算

这篇具有很好参考价值的文章主要介绍了两空间线段最短距离计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       本文中向量 叉乘用 x 表示 点乘用 * 表示

一、首先计算两根三维空间中的线段距离:

两空间线段最短距离计算,GIS,管网,几何学,算法

      见上图,假设两线段分别为PQ和ST,线段UV为其最短距离所在的直线上,UV的长度为两线段间的最短距离。

判断两线段是共面还是异面

     先获取两线段PQ及ST的法向量 PUB=PQ x ST(叉乘)

     再计算d=PUB*UV(点积)来判断两线段(所在直线)是否共面,若d=0则共面反之异面。

分情况讨论

①异面时有

两空间线段最短距离计算,GIS,管网,几何学,算法

      distance=PUB*UV/|PUB|,取distance的绝对值即为两线段间的最短距离。

②共面时可计算某一条线段上的两个端点到另一条线段的最短距离即可(此种计算也包括了两线段平行的情况)

两空间线段最短距离计算,GIS,管网,几何学,算法

       如上图所示,绿色箭头为最短距离所处的线段,AB为一条线段的两个端点形成的向量AB,P为另一条线段的一个端点,分别代表在线段AB上,线段BA的延长线上,以及线段AB的延长线上。

       以上情况均有向量AD=r*AB,

        ∴ |AD|=|r|*|AB|

        又|AD|=|AP|*cos<AP,AD>=AP*AB/|AB|,

        cos<AP,AD>=±(AP*AB)/|AP||AB|(上图第二种情况时为-)

        又AD为向量AP在向量AB上的投影(上图第二种情况取反)

        ∴|AD|=AP*AB/|AB|,

        可得 r=AP*AB/|AB|²

         当r<0时,最短距离为AP,r>1时,最短距离为BP,否则为PD。

         其中|PD|=|AP|*sin<AP,AB>=|AP x AB|/|AB|

判断直线是否共线_yangyoung4ever的博客-CSDN博客

三维空间异面直线最短距离计算_用叉乘计算异面直线的最短距离_yangyoung4ever的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-595338.html

到了这里,关于两空间线段最短距离计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 力扣(leetcode)第821题字符的最短距离(Python)

    题目链接:821.字符的最短距离 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。 返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。 示

    2024年01月19日
    浏览(40)
  • GEE机器学习——利用最短距离方法进行土地分类和精度评定

    最短距离方法(Minimum Distance)是一种常用的模式识别算法,用于计算样本之间的相似度或距离。该方法通过计算样本之间的欧氏距离或其他距离度量,来确定样本之间的相似程度或差异程度。 最短距离方法的具体步骤如下: 1. 数据准备:收集并准备用于训练的数据集,确保

    2024年01月20日
    浏览(55)
  • 2023河南萌新联赛第(二)场:河南工业大学 F - 最短距离

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给定一棵包含 n n n 个顶点的树 T T T ,以及 m m m 个查询请求。每个查询包含三个参数 : x 、 y :x、y : x 、 y 和 k k k 。其中 x x x 和 y y y 是树中的两个顶点, k k k 是一个整数。对于

    2024年02月15日
    浏览(44)
  • 最短路径-任意两点间最短距离-Floyd算法的matlab实现(详细教程)

    目录 简介 核心思路 优缺点分析 算法过程          示例 Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德

    2024年02月05日
    浏览(43)
  • 计算几何公式(点到直线距离,点到线段距离等)

    参照学校大佬的模板整理出

    2024年02月14日
    浏览(44)
  • GIS tips:基于弗雷歇(Frechet)距离的曲线/形状相似度计算方法(python)

    最近在研究线的相似度匹配,自然而然地了解到两个比较好的相似度匹配方法,分别是 弗雷歇距离 和 隐式马尔科夫模型 。本文主要介绍如何通过python实现不同 曲线/形状 之间基于弗雷歇距离的相似度计算。 知乎链接:GIS tips:基于弗雷歇(Frechet)距离的曲线/形状相似度计

    2024年02月05日
    浏览(71)
  • [足式机器人]Part3机构运动微分几何学分析与综合Ch03-1 空间约束曲线与约束曲面微分几何学——【读书笔记】

    本文仅供学习使用 本文参考: 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 连杆机构中的连杆与连架杆构成运动副,该运动副元素的 特征点 或 特征线 在 机架坐标系 中的 运动轨迹曲线或曲面 称为 约束曲线 或 约束曲面 ,是联系刚体运动与机构

    2024年02月11日
    浏览(51)
  • CGAL的三角网格曲面脊线和脐点的近似计算(需要微分几何学的知识)

             脊线(Ridges) :在光滑曲面上,脊线是一种特殊的曲线。沿着这条曲线,曲面的一个主曲率在其曲率线上达到极值(最大或最小)。这意味着脊线是那些曲率发生突变的区域,它们在形状感知、物体识别和计算机图形学中都有重要的应用。         脐点(U

    2024年02月03日
    浏览(45)
  • GIS空间分析之密度分析

    密度分析结果可以显示出点要素或线要素较为集中的地方。例如,每个城镇都可能有一个点值,这个点值表示该镇的人口总数,但是您想更多地了解人口随地区的分布情况。由于每个城镇内并非所有人都住在聚居点上,通过计算密度,您可以创建出一个显示整个地表上人口的

    2024年02月05日
    浏览(40)
  • PCL 判断两条线段的平行性(三维空间)

    这里使用一种比较有趣的方式来判断三维空间中两条线段的平行性,我们都知道两条线段所代表的矢量进行叉乘计算所得数值,代表了由这两条线段组成的平行四边形的面积值,如下图所示: ok,那么如果将此结论推广到三维空间呢?可以得到下面的形式: 其中, i ⃗

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包