- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设我在 2D 空间中有 4 个顶点。有什么人知道一种有效的算法可以给我一个对应于简单四边形的顶点的排序吗?也就是说,它将标记顶点 1, 2, 3, 4
这样如果我遵循 1-2, 2-3, 3-4
我将追踪到一个简单的(即不相交的)四边形。
只要提供我可以用谷歌搜索的标准算法的名称就可以了。
最佳答案
如果你的形状是凸的,你可以绕着你的点的质心(即重心,或“平均”)按顺序排列:
B = (X_1 + X_2 + X_3 + X_4) / 4
每个顶点的两个坐标都将高于或低于相应的重心坐标:
(-,+) (+,+)
X X
B
X
(-,-) X
(+,-)
所以从任何一点开始,只要移动到两个符号中只有一个改变的点,而不是两个都改变的点。
如果您的形状不是凸的,您可以先用内部边对其进行三角剖分,对每个三角形应用具有一致方向的顶点排序,然后通过取消成对相反的内部来合并边。
请注意,对于一组非凸点(即一个点包含在该组凸包的开放内部的一组),可能有多个四边形以这些点为顶点(想想连接内部顶点和两个外部顶点的所有方式)。
关于algorithm - 确定顶点的顺序以形成四边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7009548/
我确实遇到了这个问题。 我有一个可以是任何形状的多边形(四边形)。当我的鼠标位于多边形内时,我需要找到鼠标所在位置(四边形内)的 x,y 值,就好像多边形是完美的正方形一样。进一步解释;我有一个 32
我的问题是关于 OpenGL 和法线,我理解它们背后的数学原理,并且我取得了一些成功。 我在下面附加的函数接受一个交错的顶点数组,并计算每 4 个顶点的法线。这些代表具有相同方向的 QUADS。据我了
我想检测图像中的矩形。 我使用 cv2.findContours() 和 cv2.convexHull() 过滤掉不规则多边形。 之后,我将使用船体长度来判断轮廓是否为矩形。 hull = cv2.c
有谁知道将 vector 路径转换为由三角形/四边形面组成的描边路径的好算法?理想情况下使用圆线连接。 基本上,我试图绘制一条粗路径,其颜色基于随路径距离变化的值。我正在考虑将路径转换为三角形/四边形
我有 WebGL/OpenGL 的基本知识,但不了解 gl.bufferSubData。所以我的目标是创建一个 SpriteBatch 类,就像这个问题 First Question 一样。由于我认为
我用 OpenGL 渲染两个具有相等 z 的四边形。当我启用 DEPTH 时,我得到以下图像,但当它关闭时,我得到我需要的一个水果而不是另一个。是否可以按我的意愿绘制具有相等 z 的四边形?我的 OG
我一直在尝试让模板测试在我的 OpenTK 2D 游戏中工作,但没有成功 - 我只想在模板缓冲区中绘制低于 say 1 值的纹理部分。花了很长时间阅读模板及其工作原理,但在 C# 中找不到一个示例。下
我有一个 2D 空间,其中包含任意数量的对象(它们是圆形或四边形 - 这无关紧要),在每个时间刻度中具有不同的大小和不同的位置。我想为任何基元(示例图片中的绿色圆圈)找到一个 y 位置,使其不与任何其
我是一名优秀的程序员,十分优秀!