Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:使CustomPaint绘图层相互补充,而不是相互混合_Flutter_Dart_Custom Painting - Fatal编程技术网

Flutter 颤振:使CustomPaint绘图层相互补充,而不是相互混合

Flutter 颤振:使CustomPaint绘图层相互补充,而不是相互混合,flutter,dart,custom-painting,Flutter,Dart,Custom Painting,我正在一个CustomPaint上绘制两层图形。第一层将遮挡第二层的一半以上 问题 目前,我仅使用两个paints绘制第一个数据,然后使用它们的blendMode集绘制第二个数据 这将创建一个由两个数据混合而成的覆盖。但我不需要混合,只需要使用第二个绘制,即一个互补的复合视图来绘制差异区域 在性能方面,我不知道混合是否会有内部优化,以避免绘制遮挡部分 参考图像 请注意,所有这些数据图都混合在一起,但我只需要它们相互遮挡,而重叠的部分根本不会为了性能而绘制 尝试 我可以用一条新的路径来区分,但我

我正在一个
CustomPaint
上绘制两层图形。第一层将遮挡第二层的一半以上

问题 目前,我仅使用两个
paint
s绘制第一个数据,然后使用它们的
blendMode
集绘制第二个数据

这将创建一个由两个数据混合而成的覆盖。但我不需要混合,只需要使用第二个
绘制
,即一个互补的复合视图来绘制差异区域

在性能方面,我不知道混合是否会有内部优化,以避免绘制遮挡部分

参考图像

请注意,所有这些数据图都混合在一起,但我只需要它们相互遮挡,而重叠的部分根本不会为了性能而绘制

尝试 我可以用一条新的路径来区分,但我不确定这是最简单的方法

我选中了
repainboundary
,但它是一个处理不频繁数据更改的小部件,而不是我在这里需要的

类似地,
Overlay
似乎是一个独立的小部件,所以我不知道如何将它安装到
CustomPaint

问题:
有没有一个标准的方法来实现我所需要的遮挡?

你能添加一些图像以供参考吗?@dev aentgs我更新了这个问题。它会有帮助吗?图像有帮助,但还无法想出解决方案。可能在
canvas.drawPath(Path.combine)(
中使用
union
)会有所帮助,但不确定。