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