相关疑难解决方法(0)

如何有效地确定多边形是凸的,非凸的还是复杂的?

从手册页XFillPolygon:

  • 如果shape复杂的,则路径可以自相交.请注意,路径中的连续重合点不会被视为自相交.

  • 如果shapeConvex,对于多边形内的每对点,连接它们的线段不与路径相交.如果客户端知道,指定Convex可以提高性能.如果为非凸的路径指定Convex,则图形结果未定义.

  • 如果shapeNonconvex,则路径不会自相交,但形状不是完全凸的.如果客户端知道,指定Nonconvex而不是Complex可以提高性能.如果为自相交路径指定Nonconvex,则图形结果未定义.

我遇到填充性能问题XFillPolygon,正如手册页所示,我想要采取的第一步是指定多边形的正确形状.我目前正在使用Complex来保证安全.

是否有一种有效的算法来确定多边形(由一系列坐标定义)是凸的,非凸的还是复杂的?

algorithm geometry polygon xlib computational-geometry

45
推荐指数
4
解决办法
7万
查看次数

检查两个线段是否发生碰撞(仅检查它们是否相交,而不是相交)

我需要一个快速算法来检查两条非无限线是否正在交叉.必须快速,因为它会在手机上运行很多.

该算法只需要返回yes或no,它不必确切地找出线交叉的位置!

我看过这里:你如何检测两个线段相交的位置? 但是这个线程是一个丛林,人们一直在说"这就是答案"但是其他两个人说这是错误的,因为这个和那个错误.

请帮我找到一个好的和有效的算法.

为了清楚起见:我需要一个你给出的函数
lineApointAx
lineApointAy
lineApointBx
lineApointBy
lineBpointAx
lineBpointAy
lineBpointBx
lineBpointBy
......并且返回true或false,具体取决于两条线是否交叉.

如果你回答(伪)代码,而不是公式,我将不胜感激.

algorithm math intersection

23
推荐指数
2
解决办法
3万
查看次数