问题标签 [line-intersection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
168 浏览

sql - sql两线相交

我正在做一个地理项目,对此有一些疑问。我用纬度经度数据画线,如下图所示。1,2,3是我从 db 得到的位置。我想在那条路线上画线(A,B是线的起点和终点)并从中获取交叉点数据(交叉点位置到 A 或 B 的距离)。这个过程的合理方式是什么?

在此处输入图像描述

0 投票
1 回答
44 浏览

math - 相交线的平面模型

我在看平面模型的“交叉?” 模型库中的方法,以确定两条线是否相交。

这个模型似乎大部分都在起作用。但是,我认为我发现了一个问题。我没有数学技能来解决这个问题。

本质上,考虑一个连接的节点 A 和 B,以及连接的 C 和 D。

当交点位于端点之一时,AB 垂直于 CD 时会出现此问题。

例如,

关于如何扩展模型来描述这个边界条件的任何想法?我在数学上没有那么自信来描述这种情况何时发生......我想要一个替代相交线示例的方法,它计算线的方程并求解 x 并检查 x 是否在端点内其中一条线。

0 投票
0 回答
179 浏览

c# - 如何尽可能地解开图?

我写了一个简短的有向图查看器,它生成随机节点和节点之间的随机有向关系并将它们呈现在屏幕上。

节点当前按顺序排列为网格,并且可以注意到,发生了很多线交叉点:

图形查看器示例

我想减少线的交叉点,使图表看起来更有吸引力。无需符合网格排列。

如何以编程方式重新定位节点以尽可能地解开图形?

0 投票
1 回答
718 浏览

math - 定义有界平面以使线交叉变得容易的好方法是什么?

我想定义一个有界平面,即 3d 空间中的矩形。我意识到它可以通过声明它的 4 个顶点来定义,但是我将在这个形状上多次使用线相交算法,所以我希望这个定义对这个目的有点有用。有没有一些标准的方法来定义这样的东西?

0 投票
0 回答
177 浏览

c# - GPS 圈速和分段计时器

我一直在寻找一段时间,但还没有找到我正在寻找的东西。

我正在开发一个将用于赛车的应用程序。它将使驾驶员能够按下按钮来标记开始/终点线。它还将有一个按钮,允许驾驶员设置分段时间。

请记住,轨道可以是我首先要处理的椭圆形。它可能是道路路线,也可能是起点线和终点线不在同一位置的自动十字路口。他们可能彼此相距 50 英尺左右,但汽车永远不会越过它的起点。

我有我的 gps 数据,我将 NMea 消息转换为我的类,并存储 Lat、Lon、Speed、Course 等。在我的研究中,我遇到了这个有趣的问题。GPS将安装在屋顶外以获得更好的信号。它每秒产生 10 次命中。(加明格洛)

http://www.drdobbs.com/windows/gps-programming-net/184405690?pgno=1

它很旧,但它谈到了 UTM 和笛卡尔坐标系。所以使用 DecDeg2UTM,我也将 Lat & Lon 转换为 X & 坐标。

我也一直在尝试使用我找到的 Intersect 公式Here I take the intersect 并尝试将其转换为 C#,我将在最后发布。但是,喂食椭圆形轨道的坐标,它似乎不起作用。另外,我不确定它应该做什么。但是当它在距轨道所在位置 1000 英里的海洋中执行诸如 -35.xxx 和 98.xxxx 之类的操作时返回的坐标。

我正在寻找以下问题的答案。

  1. 我假设我需要在按下开始/完成或分段按钮时记录的位置,并计算一条垂直于汽车方向的线,以便能够进行某种线交点计算。笛卡尔坐标似乎可以很好地计算方位。但这里的问题是如何获得“左右坐标”。另外,请记住,椭圆形轨道可能有 60 英尺宽。但如前所述,自动交叉轨道可能只有 20 英尺宽,部分轨道可能有 50 英尺宽。请注意,我可以指示设置点,汽车需要慢速行驶或停在点上才能获得一个准确的坐标。有些轨道必须在行走时设置。
  2. 基于此,我应该尝试使用十进制纬度还是使用基于 UTM 的笛卡尔坐标系是我想要做的更准确的方法?
  3. 是否有一个 .Net 库或基于 C 的库,其源代码具有进行这些计算的方法?
  4. 这要如何准确处理。(数学不是很好,代码示例的链接会很有帮助。)
  5. 接下来,在我获得开始/结束和路段所需的线路或任何东西之后,当我从赛车中获得 GPS 信号时,我需要找出最准确的方法来判断汽车何时越过这些路段。再次,如果我很幸运,我每秒会获得 10 次点击,但它可能会更低。然后,根据轨道和车辆的类型,车辆速度可能会有很大差异。因此,GPS 命中可能是一段“左或右”的许多英尺。此外,它可能在一段之前或之后有很多英尺。

同样,如果那里有一个 GIS 库,我可以提供坐标并计算所有这些,只要它是高性能的,它就会工作得很好。如果不是再次,我试图决定是否最好将坐标分解为 XY 或一些几何公式以十进制格式的坐标。Mods,我认为有确凿的数据来支持任何一种方式的答案,这并不是回应并不完全主观的意见。

这是我从上面的脚本页面中获得的 C# 代码。我开始觉得 UTM 和笛卡尔坐标系在准确性和性能方面会更好。但是,如果存在相反的证据,我再次持开放态度。

谢谢

PS 注意 GeoCoordinate 来自 .Net System.Device.Location 组合。GpsData 只是我用来将 NMEA 消息转换为 Lat、Lon、Course、NumSats、DateTime 等的一个类。

度弧度方法是如下的扩展。

0 投票
4 回答
950 浏览

c# - 计算给定水平线的形状宽度

假设我有这样一个多边形

在此处输入图像描述

假设我想绘制从一边到另一边穿过多边形的红线,如下图所示:

在此处输入图像描述

我只知道直线应该站立的垂直位置,但我怎么知道我应该从哪个水平点开始直线以及在哪个水平点结束直线呢?

我的主要目标是知道该行从哪个水平点开始以及在哪个点结束,以便在该行上安排文本。

如果线条在几个地方穿过形状(如下图所示),我想获得所有线条的数组:

在此处输入图像描述

请注意,该形状可以由直线和拱形组成。

以下是 Adob​​e Illustrator 如何在形状中排列文本:

在此处输入图像描述

我如何在 C# 中做到这一点?

谢谢!

注意:对于赏金,请附上 C# 中的示例。

0 投票
1 回答
1273 浏览

python - 熊猫列线交叉点

我有一个 pandas 数据框,其中每一列代表从 1 到 0 的下降线的 y 值,索引代表 x 值。现在我有兴趣找到这些线和给定常数(线性插值)之间的交点。

所需输出的示例:

我的数据由大约 400 行和 50.000 列组成。


可能的解决方案:

我找到了这个 SO answer,它使用以下方法找到两条线之间的交点:

我认为这可以调整为适用于我的数据框,但我不知道如何从这里开始:


由于人们似乎误解了这个问题,我有兴趣找到以下几点:

在此处输入图像描述

可以通过对两个最近的点进行线性插值来找到。


解决方案: BM让我朝着正确的方向迈出了一步:

0 投票
1 回答
444 浏览

javascript - 测试是两条线相交

所以这个问题已经有很多答案了,但我无法为我的具体问题找到答案。我有一个非常特殊的情况,只有正整数,其中一行总是具有相同的 x 值或相同的 y 值。我有两条这样的线,现在只需要知道是否有相交,而不是在哪里。我知道我可以使用任何正常的算法,但我相信这完全是过度的。如果不告诉我。我已经拥有的代码是我的第三次尝试,它完全是一团糟,我认为它没有正确的方法。

0 投票
1 回答
250 浏览

r - 使用加权最小二乘法的 3D 矢量交集

我想在 3D 空间中找到与多条线/向量最近的交点,但我想根据每个向量的长度加权每个向量的影响(长度越大,影响越大)。我正在使用 R。这个问题的答案非常适合找到与多个向量最近的交点,但缺少加权分量。我需要在哪里插入我的权重矩阵?

这张(第 4幻灯片)暗示了在哪里,但我没有成功找到这部分在 Dan 的代码中的位置(我很少使用线性代数的方式来完全理解发生了什么)。

可以在此答案Wikipedia中找到有关线-线相交的理论。

这是我在 R中对 Dan 的MATLAB 代码的翻译:

因此,如果我将四个向量描述为:

在这种情况下,我想给出以下权重:

0 投票
0 回答
603 浏览

google-maps - 确定线是否与谷歌地图上的其他线相交

我知道关于线交叉及其背后的数学有各种讨论。我对数学很熟悉。

这篇文章很好地解释了一种可以实现的算法:确定两条线是否相交

但是,我想知道是否可以直接在 Google 地图中执行此操作。我在谷歌地图上绘制各种线,我的目标是确定任何给定线交叉/相交的线数,如果是,则在地理上交叉点发生在哪里。我想使用一组标准自动渲染线条,该标准会惩罚交叉点并考虑其他优化标准。计算速度是一个因素,因为我有数千行。

下面是我的应用程序的示例图片,其中包含有趣的线条。

在此处输入图像描述