问题标签 [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.
arrays - 对描述多边形的线段数组进行排序和分组
我正在解析一些数据,作为描述几个封闭的任意形状/多边形的线段数组给出。这些形状可以是凹形的。这是我正在查看的简化示例:
但是,我提供的数据具有任意顺序的段。根据示例,我的数据将类似于{V,E,D,X,U,A,Z,C,B,W,Y}
. 因此,绘制线段会显示正确的形状,但对形状进行任何操作都不会变得更容易。
我正在尝试对上面的数组进行排序,以便每个闭合形状的段按照连接顺序排列,并且每个形状的段都组合在一起。
所以
会成为
每组线段的顺序对我来说并不重要,只是各个线段是按顺序排列的。我也不关心每个组的特定起始部分。
以便
是同样有效的结果。
我没有遍历几何的经验,我的初步尝试和粗略的在线搜索并没有产生任何快速的解决方案。我研究了凹形外壳,但鉴于数据已经知道点之间的连接,这似乎有点过头了。
matlab - 线段与三个维度 (3D) 中的点之间的最短距离
我一直在 MATLAB 中构建一个程序,该线程描述了如何在 2D 中找到点和线段之间的最短距离(点和线段之间的最短距离)。我需要一个与之前回答的问题基本相同的函数,但在 3D 而非 2D 和 MATLAB 中。
上一篇文章的答案的热门评论都不是在 MATLAB 中,所以我在理解这段代码的幕后发生的事情时遇到了一些麻烦。也许你们中的一些更聪明或更熟练的人可以帮助我将其转换为 3D MATLAB 代码?
线段将被定义为两个点 S1 (x1,y1,z1) 和 S2 (x2,y2,z2),该点只是一个单一的坐标 Pnt (x3,y3,z3)。
编辑:这里似乎有点混乱。我的意思是线段不是无限的线。我附上了我正在使用的代码。我想补充一点,我修改的这段代码最初是作为上述链接线程中评论的一部分编写的,原作者 Peter Karasev 值得称赞。照原样,代码在 2D 中工作,我在 3 行中进行了评论,这是使其成为 3D 的开始(vz、uz 和 lenSqr)。我的具体问题是,我真的不明白 detP 在数学上发生了什么以及如何使 detP 和随后的 if 语句在 3D 中工作。
输入如上面在原始问题文本中定义的那样。
2d - 粗线交叉点
我正在尝试计算“粗”线段之间的交点。也就是说,屏幕上的线条笔触很粗。这是因为它们可能偶尔需要相交,但实际上它们彼此平行,而它们的实际中心线没有相交。
我目前的解决方案是将它们视为矩形,这意味着将每一边视为一条线段,并将一个矩形的所有边与另一个矩形的所有边进行测试。
有没有更好的办法?
javascript - 具有多材料支持的 THREE.js LineSegments
在我的项目中,我正在创建 LineSegments
(LineMesh),其中包含来自另一个网格的修改几何(更改顶点位置)和MeshBasicMaterial
黑色。将其LineMesh
添加到已经存在的网格中。一切正常。但是现在我想通过从几何体的面visible
中将属性设置为 false来隐藏网格的特定部分。但是在这种情况下,先前创建的网格是隐藏的,但添加到它上面并没有隐藏。是否可以隐藏特定部分,并且还想知道是否会支持。这样我就可以轻松地将属性应用到特定部分。materialIndex
LineMesh
LineMesh
LineMesh
MultiMaterial
visibility
transparent
Mesh
下面的代码不适用于 LineSegments
cartesian - 笛卡尔 X, Y 创建一条给出航向度数的线
再试一次,第一次发帖没有运气。在 GPS 应用程序上工作,用户将点击一个按钮,该按钮给出一个 GPS 点。该 GPS 点将转换为笛卡尔坐标。我还将有度数的标题。
一个例子,我会得到以下。
35.107339, -81.597964
转换为 XEastLon - 445505.80924453895 YNorthLat - 3885110.2004663
在这种情况下,航向为 139 度。我假设减去 90 度,因为该线需要垂直于当时正在行进的线。
所以我需要将 X 和 Y 向左右延伸 25 英尺或垂直于 139 度的航向。
谢谢
更新:这是一张图片,显示了我必须完成的工作。
驾驶员按下车上的按钮,我将返回 GPS 坐标,将其转换为 X、Y 并返回航向。如图所示,我需要取单点和航向并计算两个点,点 A 和点 B。正如我在原始问题中所说,现在我们只说它向左 25 英尺我们进入的点和该点右侧 25 英尺处。同样,由于我将原始点的度数转换为 X、Y 的小数,同样,在这个等式中,我们是采用 139 度的航向并对其进行转换还是像减去 90 度一样简单或添加 90 度以获得用于线计算的角度/斜率?
algorithm - 在 2D 中查找重叠线段
连接这些点将给出线路径 a->b->c<-b' b 到 c 和返回 b` 到 c 之间有重叠。我想找到所有重叠的路径。
我要解决的问题是识别这些重叠线并将它们绘制为曲线,以便用户可以区分它们。
情况1
有重叠,但用户可以清楚地看到重叠,所以我忽略了这个重叠。
案例2
在这里,如果我画直线 ab 路径将被隐藏。所以在这种情况下画一条曲线。
我通过考虑每个 N^2 行组合并比较它们的开始和结束 lat long 来实现代码。
下面是代码链接
http://jsbin.com/qibarevodi/edit?js,console
http://bl.ocks.org/d/d21a0d3e6df2cd4bb08fbe2a6e66ceb8
是否有更有效的方法来查找重叠线。
python - 将手写文本分割成行
我正在尝试将手写文本从 NIST 表单数据集中拆分为单独的行。这是数据集的链接: https ://www.nist.gov/srd/nist-special-database-19
我正在使用的代码基于 stackoverflow 上的一个类似问题,但由于某些字符接触,它并不能很好地工作。这是代码:
即使某些字符重叠,我怎样才能让它正确分割线?
r - 如何用省略ggplot2的箭头连接多个点
我使用vegan
包对一些植被数据的时间序列进行了排序。由于排序图通常包含许多数据点,因此我提取了前两个排序轴的特征值并取每组的平均值。现在我每个站点只有一个点(总共 11 个站点)为了仍然显示一些变化,我添加了具有标准偏差和 95% 置信区间的椭圆:
我要做的最后一件事是用箭头连接同一组(A、B 或 C)的点,指示随时间变化的方向。所有的运动都是从右到左。
我最初想在 中使用该ordiarrow
函数vegan
,但这仅在 class 为decorana
. 我的班级是factor
.
使用ggplot2
似乎不是一个有效的选项,因为ordiellipse
函数(创建省略号)在那里不起作用。
绘制数据的代码:
生成的图看起来有点不同,因为我在这里发布了一个简化的数据集。
我的数据(Ord_KIKKER):
matlab - Matlab - 如何检查线段是否与轴对齐的正方形相交
我正在寻找一些有效的 matlab 代码来检查线段是否与正方形相交。正方形是轴对齐的,线段不必是轴对齐的。这是一个决策过程,即返回 Y 或 N,所以我不需要交点。每条线段都有一个起点和一个终点。
我从二维案例开始,但需要适用于 d 维空间的代码。
我有简单案例的快速代码:
1)线段进入一个正方形(起点在正方形外,终点在正方形内)。
2)线段出正方形(起点在正方形内,终点在正方形外)。
3)正方形内的线段(正方形内的起点和终点)。
4)线段较远且不与正方形相交(起点和终点在正方形之外,线段的边界框不覆盖正方形的任何部分)。
但是,我还没有任何代码用于不太简单的检查线段起点和终点在正方形之外的位置,以及线段边界框覆盖正方形的一部分(或全部)。
在这种情况下,线段可以:i) 与方形角的尖端相交,ii) 与两个方形边相交,或 iii) 根本不与方形相交。
关于如何测试最后一个案例的任何想法?以及如何使代码适用于 d 维线段和正方形(立方体等)?
谢谢!
为了帮助可视化这一点,我用一些测试上述案例 1-4 的 matlab 代码更新了这篇文章。
python - 从线段列表中查找连接的分支
问题
我有一个线段列表:
这些段包括单独数组中对应点的索引。
从这个子列表可以看出有一个分支点(4)。因此,三个不同的分支正在从这个分支点出现。(在其他更具体的问题中, n 个分支可能有多个分支点。)
目标
我的目标是获取包含现有分支信息的字典,例如:
当前工作状态/问题
目前,我首先通过为每个点设置字典并检查每个条目是否找到超过 2 个相邻点来识别分支点。这意味着有一个分支点。
之后我爬过从这些分支点出现的所有点,检查后继者等。
在这些函数中,有一些for 循环,通常是密集的“爬行”。这不是最干净的解决方案,如果点数增加,性能也不是那么好。
问题
在这种情况下,实现目标的最佳/最快/最高性能的方法是什么?