判断两条线是否相交

2023-12-03

我在 stackoverflow 上看到了很多讨论这个主题的帖子。我从stackoverflow上找到了解决方案,但找不到帖子。也就是说:如果两条线相交,则叉积会为左侧和右侧产生两个不同的结果。一正一负。否则两者具有相同的符号。到目前为止还可以。 使用的公式是,其中 AB 是一条线,CD 是另一条线。

左点积 = (B.x-A.x)(C.y-B.y)-(B.y-A.y)(C.x-B.x)

点积权 = (B.x-A.x)(D.y-B.y)-(B.y-A.y)(D.x-B.x)

如果我为以下给定的 GPS 坐标计算此值,则在不可能存在交叉点的情况下,我会得到一个交叉点。

答:x:15.4433917 y:47.0697272

乙:x:15.4433661 y:47.0697722

C: x: 15.4434363 y: 47.0696776

d: x: 15.442966 y: 47.0700098

如果我在 Google 地图引擎上绘制它,我可以看到这些线之间绝对没有交点。

dotproductleft 的结果:-7.372399999828474E-10 和 dotproductright 的结果:1.1921940000328E-8

它对于其他示例非常有效,但在这里我发现它无法正常工作。但我没有发现公式中有任何错误。

The points on Google Maps


The lines包含任何线段(例如 AB 和 CD)的线段将始终相交(除非它们平行)。

您想检查是否线段相交。通过找到交点并检查它是否位于两条线段上,这很容易做到。

因此,使用您的示例,两条线(线段 AB 和 CD 位于其上)相交于P = (15.4434,47.0697)。现在,如果P位于 AB 上,则其点积PA and PB是负数(因为之间的角度PA and PB是 180° 并且余弦(180°)=-1).

如果计算 PA 和 PB 的点积,您将得到一个正数(因此does not躺在AB上)。然而,PC 和 PD 的点积给出一个负数(因此它位于 CD 上)。

因此,如果上述点积(与交点)为负,您可以检查线段是否相交。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断两条线是否相交 的相关文章

  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 通过三点的贝塞尔曲线

    我已经阅读了类似的主题以找到解决方案 但没有成功 我想做的是使该工具与 CorelDraw 中的工具相同 名为 钢笔工具 我通过连接贝塞尔三次曲线来做到这一点 但仍然缺少一个功能 即拖动曲线 而不是控制点 以编辑其形状 我可以成功确定曲线上
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • 用 tkinter 画圆更简单的方法?

    在a上画一个圆tkinter Canvas通常由create oval方法 然而 提供边界框通常是绘制圆的一种令人困惑的方式 想出一个捷径并不是特别困难 但我找不到其他人在做类似的事情 所以我将其发布 希望其他人发现它有用 这是一个称为猴子
  • 有 JavaScript 的微积分库吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 JavaScript 的微积分库吗 我做了一些谷歌搜索 但没有想出任何东西 我申请了 Wolf
  • CGPoint 标量乘法 Swift

    我正在 SpriteKit 中构建一个平台游戏 并将为我的实体实现更新功能 以便它们根据重力和速度移动 但是 我需要使添加的速度量与增量时间成比例 以防止帧速率影响我的实体的移动方式 因此我将导入 GLKit 以便我可以使用标量函数 但是
  • 从 1 到 20 亿,像 (23,29) 这样相差 6 的连续素数对的数量

    如何在考虑时间复杂度的情况下从 1 到 20 亿 使用任何编程语言且不使用任何外部库 找到像 23 29 这样相差 6 的连续素数对的数量 尝试过埃拉托色尼筛 但获得连续素数是一个挑战 使用了生成器 但时间复杂度非常高 代码是 def ge
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 批处理文件中是否存在“Power to”功能? (指数)

    Problem 有没有办法将变量 乘以 数字或其他变量的批处理文件 有这个功能吗 Python 中的一个示例是您可以使用 为 到 的力量 EDIT 您可以在批处理文件中进行数学运算 http en wikipedia org wiki Ba
  • 如何在Python的SciPy中更改稀疏矩阵中的元素?

    我构建了一个小代码 我想用它来解决涉及大型稀疏矩阵的特征值问题 它工作正常 我现在要做的就是将稀疏矩阵中的一些元素设置为零 即最顶行中的元素 对应于实现边界条件 我可以调整下面的列向量 C0 C1 和 C2 来实现这一点 不过我想知道是否有
  • PHP 负面因素不断增加

    我这里有这个代码 remaining 0 foreach clientArrayInvoice as key gt row remaining remaining row total 它的作用是 它获取总计值并将它们相加 但是当我有负值时
  • 从 x,y 屏幕空间坐标查找 2D 等距网格上的列、行(将方程转换为函数)

    我试图在屏幕空间点 x y 的二维等距网格中找到行 列 现在我几乎知道我需要做什么 即找到上图中红色向量的长度 然后将其与表示网格边界的向量的长度 由黑色向量表示 进行比较 现在我在数学堆栈交换中寻求帮助 以获得用于计算点 x y 与黑色边
  • 在矩阵/位图中查找质量簇

    这是此处发布的问题的延续 在 2D 位图上查找质心 https stackoverflow com questions 408358 finding the center of mass on a 2d bitmap正如给出的例子 它讨论了
  • Three20中的TTSpeechBubbleShape仅绘制“语音”三角形顶部和底部

    因此 我将 Three20 库用于 iPhone 应用程序 并希望将 TTSpeechBubbleShape 样式用于视图 但三角形似乎不想画在左边或右边 我在源代码中看到它有很多几何图形 并且想知道是否有人解决了这个问题或知道如何解决它
  • 优化重叠矩形的绘制

    我有很多矩形 有些与其他矩形重叠 每个矩形都有一个绝对 z 顺序和一个colour 每个 矩形 实际上是粒子效果 网格或纹理的轴对齐边界框 并且可能是半透明的 但只要您不尝试剔除其他矩形后面的矩形 就更容易抽象地思考彩色矩形 所以我将在问题
  • 查看 TIN 文件的工具

    有没有免费的开源工具可用于查看 TIN 不规则三角形网络 文件 我从 LAS 激光雷达数据 文件获得的 thanks 这在很大程度上取决于格式 大多数从 LIDAR 数据生成的 TIN 都采用标准 GIS 格式之一 在这种情况下 良好的开源
  • 旋转矩阵openCV

    我想知道如何找到框架中一组特征的旋转矩阵 我会更具体 我有 2 个具有 20 个特征的帧 假设第 1 帧和第 2 帧 我可以估计两个帧中特征的位置 例如 假设位置 x y 处的某个第 1 帧特征 并且我确切地知道它在哪里 所以假设为 x y
  • SymPy 和 Sage 有什么区别?

    有什么区别SymPy http www sympy org and Sage https www sagemath org 又名 SageMath 全面披露 我是 SymPy 的首席开发人员 您应该了解的第一件事是 SymPy 和 Sage
  • 确保 unsigned int/long 始终在 C# 中的检查上下文中执行

    有没有人觉得奇怪 uint 和 ulong 的默认上下文是未检查的 而不是检查的 因为它们旨在表示永远不能为负的值 因此 如果某些代码试图违反该约束 在我看来 自然且首选的行为是抛出异常 而不是返回最大值 这很容易使重要数据处于无效状态并且
  • 在unity3D中显示数学方程

    我想使用它的 GUI 系统统一显示数学方程 有办法吗 我正在使用 C 语言在 Unity 中进行编程 如果我还可以使用 C 代码显示数学符号 这对我来说会很有用 谢谢 自 2016 年起 您可以使用TEXDraw https assetst

随机推荐

  • 使用主机 SSH 密钥在 DockerFile 中访问私有 Git 存储库

    我是 Docker 新手 正在尝试让我的 Angular Web 应用程序在容器中构建和运行 我在项目的根目录中有一个非常基本的 Dockerfile 如下所示 Create the image based on the official
  • 如何用C#将委托排队在后台串行执行?

    从游戏循环中 我想在后台开始工作 该工作应该一个接一个地执行 但不应阻止游戏循环 所以理想情况下是一个类BackgroundQueue可以这样使用 BackgroundQueue myQueue new BackgroundQueue ga
  • R构建文档术语矩阵如何匹配其值由空格分隔的短语组成的字典

    当使用R进行文本挖掘时 在对文本数据进行重新处理后 我们需要创建一个文档术语矩阵以供进一步探索 但是和中文类似 英语也有一些特定的阶段 比如 语义距离 机器学习 如果把它们分词成词 它的含义就完全不同了 我想知道如何匹配预先定义的词典值由空
  • 将字符串转换为 HTML - 字符串转换为“a href”元素

    您好 我在将一些 HTML 链接添加到我的 HTML 页面时遇到一些问题 我尝试四处寻找 但到目前为止没有任何帮助 我的页面最初将加载一个片段 div style display inline block color rgb 0 255 1
  • php默认时区错误

    我在尝试安装 Kohana SilverStripe 时收到以下错误 警告 这意味着什么 我该怎么做 Warning date default timezone get It is not safe to rely on the syste
  • SFINAE 检查表达式是否编译并返回 std::true_type [重复]

    这个问题在这里已经有答案了 如果以下表达式编译 我想获得 std true type template
  • 将之前通过手势旋转的 UIImageView 与另一个合并。 WYS 不是 WYG

    我在尝试合并两个 UIImageView 时变得疯狂 情况 背景 UIImageView 用户照片图像视图 一个重叠的 UIImageView 产品照片图像视图 可以拉伸 挤压和 旋转的 我在 UIImages 上调用我的函数 但我可以从包
  • 解析错误:语法错误,意外的 T_ECHO

    过去几天我一直在做一些事情 但是这一段代码总是抛出一个意想不到的 T ECHO 我的朋友们似乎找不到任何问题 而我正处于耐心的边缘 即使删除了嵌套的 while 循环 它仍然会抛出错误 我切换到 while endwhile 语法也是如此
  • GORM 2.0 获取最后插入ID

    我正在使用 MySQL 数据库进行操作GORM v 2 0 我正在使用 GORM 事务将行插入数据库 tx db Begin 在之前的 GORM 版本中 Begin 回sql Tx允许使用的对象LastInsertId 查询返回参数的方法
  • 比较两个列表并从一个列表中删除重复项

    我有一个名为 FormObject 的对象 它包含两个 ArrayList oldBooks 和 newBooks 两者都包含 Book 对象 oldBooks 允许包含重复的 Book 对象 newBooks 本身不允许包含重复的 Boo
  • javascript变量初始化显示NaN

    function sumArray numbers var sum for var i in numbers sum numbers i return sum console log sumArray 1 2 3 4 5 Hi all 结果
  • 理解如何使用 Jython 时遇到的问题

    我刚刚开始学习 Jython 在实施方面遇到了一些问题 我已经浏览了 Jython 2 5 附带的演示文件 但我仍然不确定如何实现 Jython 来获得我想要的东西 目前 我已经将 Java 代码作为进程执行 Python 服务器 Pyth
  • 为什么函数变量在 var 后面时未定义?

    我读到一个好的做法是在每个函数的顶部放置一个定义所有局部变量的 var 语句 下面的代码显示了为什么这是一个好主意 因为显然是一个 varafter使用变量使其未定义 但有人可以告诉我吗why是这样吗
  • Pylint 中的永久配置文件

    我已经为 Pylint 设置了一个自定义配置文件 名称 方便 配置 必须有一种我不必包含的方法 rcfile config每次跑步时 如何永久设置配置文件 当您不指定 rcfile 选项时 Pylint 按以下顺序搜索配置文件并使用找到的第
  • 使用 PHP 和 Apache 设置 HTTP 过期标头

    如何在 PHP Apache 中设置过期标头 我目前正在使用 auto prepend 来提供 gzip 压缩的资源 但我还想最大化 HTTP 缓存 我该如何设置这些 有两种方法可以做到这一点 第一个是在 php 代码中指定标头 如果您想以
  • .EXPORT_ALL_VARIABLES 仅在“虚假”时有效

    The docs提供 EXPORT ALL VARIABLES 只需将其作为目标提及 即可告诉 make 导出 默认情况下 所有变量都传递给子进程 注意沟通 子 make 的变量 变量 递归 然而 以下 makefile 表明 只有通过 E
  • R - 定位两条曲线的交点

    该论坛中有许多关于定位拟合模型和一些原始数据之间的交集的问题 然而 就我而言 我正处于一个早期项目 仍在评估数据 首先 我创建了一个数据框 其中包含一个比率值 其理想值应为 1 0 我已经绘制了数据框并且还使用了abline 绘制水平线的函
  • Google 地图 v2 无法在 Play 商店中使用

    我创建了一个 Android 应用程序 它使用 Google Map api V2 显示 google 地图 并且它在我的手机中运行良好 但是当我将这个应用程序的 apk 上传到 Google Play 商店 时 它没有显示我的地图 谁能告
  • 如果基类的属性在派生类中被覆盖,如何调用该属性?

    我正在将我的一些类从广泛使用 getter 和 setter 改为更Python 化地使用属性 但现在我陷入了困境 因为我以前的一些 getter 或 setter 会调用基类的相应方法 然后执行其他操作 但是如何通过属性来实现这一点呢 如
  • 判断两条线是否相交

    我在 stackoverflow 上看到了很多讨论这个主题的帖子 我从stackoverflow上找到了解决方案 但找不到帖子 也就是说 如果两条线相交 则叉积会为左侧和右侧产生两个不同的结果 一正一负 否则两者具有相同的符号 到目前为止还