问题标签 [line-segment]

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 投票
2 回答
927 浏览

javascript - 三.js点线段距离

在 Three.js 中,我有一个简单的方法可以找到一个点(即我的相机的位置)和一条无限延伸的线之间的距离。但是,我真正需要的是找到一个点和由两点组成的一条线段之间的距离。注意:我使用的是 Three.js,它有 3 个空间维度:x、y 和 z。

这是我在 Three.js 中使用的点到线段公式:

0 投票
0 回答
30 浏览

3d - 从一组 3d 线段中查找边界

我有一组n 3d线段 [(p1_start,p1_end), (p2_start,p2_end),....(pn_start,pn_end)]。(我相信它们应该是相交的......)这些线段代表一个(封闭的)边界。我正在寻找有效的算法来生成这个边界,即找到边界段的顺序:( [pj_start,pj_end, ...p1_start, p1_end.....] 段可以通过它们的末端连接:开始到开始,开始到结束,结束到开始,结束到结束)我想开始从任意段,比如说s = (pm_start, pm_end),在所有其他段中找到距离pm_startpm_end最小的段,并根据计算出的最小距离添加该段末端,并为所有段继续这种方式这种方法的复杂性不好,任何人都可以提出有效的建议这个问题的算法

0 投票
1 回答
51 浏览

python - 将具有未排序内容的元组快速排序到链中

我想对元组列表 [(0, 9), (5, 4), (2, 9), (7, 4), (7, 2)] 进行排序以得到 [(0, 9), ( 2, 9), (7, 2), (7, 4), (5, 4)]。

更具体地说,我有一组要连接成链(折线)的边(线段)。边缘的顺序是随机的,我想对它们进行排序。每条边都有两个节点,起点和终点,它们可能与最终链中的方向匹配,也可能不匹配。下面的代码可以工作,但速度非常慢,尤其是当我必须多次调用这个函数时。在我的例子中,节点是自定义 Node 类的实例,而不是整数。平均而言,可能有大约 10 条边要连接。我必须在 Ironpython 中运行它。请问有没有什么好方法可以提高这个速度?非常感谢!

克里斯

0 投票
2 回答
466 浏览

python - 在二值图像上分割重叠的粗线

在对原始图像应用各种预处理和检测管道后,我确实有一个如下所示的二进制图像。

相交跑道

如图所示,实际上有 2 条跑道(停机坪)供飞机在交叉区域相互交叉。我需要的是分开两条跑道并返回它们的轮廓。我已经检查了有关轮廓特征的 opencv 函数,但没有运气。cv2.fitLine看起来不错,但只有在轮廓中只有一条线时才有效。应用蒙版时生成的图像应如下所示: 在此处输入图像描述

0 投票
1 回答
57 浏览

geometry - 如何使用 2D 无限线作为可以通过邻近度查询的关联容器的键?

我有数千条线段,我想通过共线性进行聚类。一种方法是使用无限行的键创建一个关联容器。有了这样一个容器,我可以使用线段的集合作为值,并通过确定它是一个线段的无限线并插入相应的 bin 来添加线段。

给定这样的设置,表征无限行以支持查询给定行附近的行键的数据结构的能力的最佳方法是什么?

例如,我正在考虑使用点的 R-tree(在这个项目的其他地方,我已经在使用 Boost.Geometry R-trees),其中每个点都是无限线的 x 截距和 y 截距。但是,这只适用于非垂直和非水平线。我可以将垂直线和水平线作为特殊情况处理,但是我将无法像查询非轴附近的线那样轻松查询“靠近”垂直或水平线的线通过对 R 树中的截取点进行 2D 范围查询来对齐线。

我想知道是否有一些优雅的方式来处理这个问题。如何将无限的 2D 线表示为点,使水平线和垂直线与任何其他类型的线没有什么不同,并且彼此靠近的线映射到彼此靠近的点?

0 投票
2 回答
183 浏览

algorithm - 如何找到建立在多边形顶点上的所有线段的交点?

给定顶点坐标已知的凸多边形。每对顶点由一条线段连接。是否有有效的算法来找到结果线段的交点?

例如,对于正十二边形,所有线段形成这张图片: 建立在正十二边形顶点上的线段

如何有效地找到这张图片上所有交叉点的坐标?

0 投票
1 回答
207 浏览

python - Paraview 使用“宽度”数据从 CSV 创建线段

我想在 Paraview 中创建线段。每个线段的输入数据格式为:x0,y0,z0,x1,y1,z1,width 我尝试过使用“Line”命令,例如:

但是,我找不到指定每个线段宽度的方法。您的帮助将不胜感激。最好的问候,哈米德·拉贾比。

0 投票
2 回答
229 浏览

algorithm - 确定多边形顶点之间的线段是否为“内部”多边形

我正在尝试找到一种有效的算法,该算法可以检查简单(编辑:simple concave)多边形中两个顶点之间的线是否包含位于多边形域之外的点。我能找到的最接近的问题是这个:https ://stackoverflow.com/a/36378838/12135804

但我不确定答案是否完全正确。可能是,在这种情况下,如果有人可以澄清那将是很好的。

基本思想如下图所示: 在此处输入图像描述

我希望红线失败,绿线成功。我知道不能天真地测试中点,因为这在每种情况下都不起作用,但是在多边形域外的线上找到任何点都应该取消它的资格。

我感谢任何和所有的帮助!

编辑:忘记包含数学堆栈交换的交叉链接: https ://math.stackexchange.com/q/4040059/892519

0 投票
0 回答
54 浏览

python - 用 HDBSCAN 聚类相似的行

在此处输入图像描述 上图是视频中的一帧。最终目标是检测门。我想要做的是类似于圆圈的聚类线,其中未圈出的线是异常值。我的发现告诉我这是一个 HDBSCAN 问题,所以我尝试像这样实现 HDBSCAN:

我尝试了 2 种方法,一种是按原样传递行列表,这给出了非常糟糕的结果,我假设这是因为 HDBSCAN 不知道坐标代表一条线。第二种是传入每行中点的列表,效果更好但仍然不是很好。有没有办法可以改进这一点并获得与预期结果更相似的东西?

原始图像 在此处输入图像描述

0 投票
0 回答
106 浏览

three.js - Three.js 删除 LineSegments 中的孔/内线

我用我的数据创建了一个 Buffergeometry 并提取 LineSegments 以仅显示外线:

因为数据中有一个“漏洞”,所以我得到如下结果: 在此处输入图像描述

有没有一种简单的方法可以删除我的 LineSegments 中的内线以获得这样的结果: 在此处输入图像描述