
1 Visitor233 OP 补充下内容,软件接口会提供图形对象供访问,一次处理 1 至 1000 个静态图形 |
2 yankebupt 2024-10-21 02:10:53 +08:00 呼叫计算机图形学大神。 这个黄三角边缘肉眼可见是B样曲线的,还不止是多边形……这重叠怎么判断……矢量图…… Mark 等更新 |
3 xuanbg 2024-10-21 06:20:13 +08:00 什么重叠啊,数学上这叫「相交」。判断多边形是否相交即可 |
4 shinsekai 2024-10-21 08:04:51 +08:00 先判断矩形框是否相交,如果相交,再判断多边形是否相交 |
5 Visitor233 OP |
6 xtreme1 2024-10-21 08:57:47 +08:00 看看能否转成矢量, 然后 Boost.Geometry |
7 cheng6563 2024-10-21 09:28:07 +08:00 |
8 jones2000 2024-10-21 11:28:57 +08:00 用 2 种纯色的是填充图形, 然后把整个图保存下, 读出图片的所有的像素和颜色, 如果如果存在重叠, 对应的像素颜色就不是这 2 个纯色的。 |
9 dt201909 2024-10-21 12:44:27 +08:00 @Visitor233 #5 矩形框判断是必须的,目的还是提效,特别是针对批量的情况 |
10 dt201909 2024-10-21 12:47:45 +08:00 @Visitor233 #5 看到曲线了,能不能转多段线再判断。多边形相交貌似可以通过投影的算法来做。 最粗暴的方式就是,判断是否有任意线有交点(遍历),效率最低,但是可以硬写出来 |
11 dt201909 2024-10-21 12:48:27 +08:00 coreldraw 插件给我感觉似乎很小众,咋跑进这一行的... |
12 Visitor233 OP @dt201909 我查了好多资料,大部分方案都是图形装入盒子,然后检测盒子的直线边有无重叠。STA 分离轴算法对凹图形(五角星)不好处理。 |
13 sillydaddy 2024-10-21 21:45:04 +08:00 换个思路:根据各图形合并之后的面积,是否小于图形面积的和,来判断是否有重叠。 首先计算出这 1000 个图形(G0,G1,G2,...,G999)的布尔并,得到图形 Gu ,然后计算 Gu 的面积 Au (面积公式很简单)。如果 Au 小于这 1000 个图形各自面积的和,说明有重叠。 布尔运算、求面积,都可以使用成熟高效的 clipper 库。 |