49得票7回答
查找一组点中是否有点在凸包内,而无需计算凸包本身

如何测试一个点P是否在由一组点X形成的凸包内,最简单的方法是什么? 我想要一种算法,在高维空间中(比如说,高达40维),不需要显式计算凸包本身。你有什么想法吗?

48得票3回答
如何检查线段是否与矩形相交?

如果您有两个点(x1,y1)和(x2,y2),表示矩形的两个相对角落,和另外两个点(x3,y3)和(x4,y4),表示线段的两个端点,您如何检查线段是否与矩形相交? (该线段是仅包含给定端点的线段。它不是由这两个点定义的无限长度线。)

48得票6回答
生成随机2D多边形的算法

我不确定如何解决这个问题。我也不知道任务有多复杂。我的目标是拥有一个可以生成任意多边形的算法。唯一的要求是多边形不复杂(即边不相交)。我正在使用Matlab进行数学计算,但欢迎任何抽象的东西。 有什么帮助/指导吗? 编辑: 我更多地考虑了能够生成任何多边形的代码,甚至像这样的形状:

44得票15回答
从给定点到直线的垂线

如何从给定点到线段上作垂线?我的线段由 (x1, y1) 和 (x2, y2) 定义,如果我从点 (x3,y3) 画一条垂线,它在点 (x4,y4) 上与线段相交。我想找出这个点 (x4,y4)。

40得票7回答
如何检测同一平面上两个圆之间的相交?

我正在寻找一个算法来检测圆形是否与同一平面中的任何其他圆形相交(假设同一平面内可能有多个圆形)。 我发现一种方法是进行分离轴测试。其原理是: 如果能找到一条线将两个对象分开,即所有对象或对象的点都在该线的不同侧,则这两个对象不相交。 但是,我不知道如何将此方法应用于我的情况。 有人能帮...

40得票11回答
在球面上计算 Voronoi 图的算法?

我正在寻找一种简单的算法(如果存在的话)来找到球面上一组点的 Voronoi 图。最好有源代码。我是 Delphi 程序员(是的,我知道...),但我也可以看懂 C 代码。

38得票4回答
2D几何库:LGPL是CGAL的替代选择吗?

CGAL似乎能满足我即将开始的项目的几乎所有需求,甚至更多。它可以将弧线段转化为多边形,并对其进行布尔运算。它已经包含了空间排序的包,这将在几个方面节省我很多时间,整个库看起来非常标准化和精心规划。 唯一的问题在于许可证,大多数包的许可证是QPL(即将发布的4.0版本为GPL),除了一些非常...

37得票6回答
如何从三个点找到圆的中心算法?

我在一个圆的周围有三个点:pt A = (A.x, A.y); pt B = (B.x, B.y); pt C = (C.x, C.y); 如何计算圆的中心? 在Processing(Java)中实现。 我找到了答案并实现了一个可行的解决方案: pt circleCenter(pt A, ...

37得票1回答
Haskell 中的 Bentley-Ottmann 算法?

我一直在用Haskell编写计算几何库,因为我在Hackage上找不到一个适合的库,而且我觉得这样做很有趣。然而,我卡在了一个特定的算法上,已经将近一周了,我似乎无法将其转化为“Haskell式”的形式。该算法是Bentley-Ottmann算法,用于查找线段集中的交点。如果您熟悉该算法,可以...

37得票6回答
简化(或光滑)的多边形包含原始详细多边形

我有一个详细的二维多边形(代表地理区域),由大量顶点定义。我正在寻找一种算法,可以简化和平滑多边形(减少顶点数量),并且要求结果多边形的面积必须包含详细多边形的所有顶点。 为了更好的理解,这里是一个复杂多边形边缘的示例: 我的研究: 我发现了Ramer-Douglas-Peucke...