有没有一种简单的方法可以使两个多边形之间的重叠区域透明?最好是 Qt 小部件/Qt 2D 图形C++框架内的内置函数。(不是 QML)
我正在渲染从 Openstreetmap.org 提取的地图数据,并且方式(线段)之间的一些高级关系作为形成多边形的内部和外部方式给出。
例如,一个湖可以有形成多边形的外部通道,以及形成湖内岛屿的多个内部通道。
我能够分别正确构建外部多边形和内部多边形,但我很难找到一种简单的方法来使与内部多边形重叠的区域透明。
在下图中,白色区域是用白色绘制的单独多边形,但它们应该是湖/蓝色多边形的透明区域。
我尝试将 QPainterPath 用于外部多边形并调用
QPainterPath QPainterPath::subtracted(const QPainterPath &inner) const
但结果是一个空白屏幕。
我必须在渲染之前自己创建新的多边形吗?
QPainterPath 解决方案是否应该工作而我搞砸了?
是否有一些魔法可以使用 QPen/QBrush 来绘制透明的重叠区域?
非常感谢有关如何解决此问题的任何提示。