1

我必须使用鼠标移动在 C# 中开发一个绘画应用程序,所以我决定使用一个 GraphicsPath 列表,在其中存储每个绘图的路径(将绘图视为在 mouseDown 和 mouseUp 事件之间绘制的路径)。每条路径由先前和当前鼠标位置之间的线组成。

同时,重写 OnPaint 事件使我能够以良好的刷新率显示这些路径。问题出现在特定场景中,用户采用具有一定透明度的笔颜色并在现有路径上绘制路径,导致颜色重叠......:

在此处输入图像描述

这种情况打破了项目的要求之一,因为不能有任何颜色混合。最后绘制的颜色必须保留。我尝试使用 Regions 和 Exclude 方法,但结果不是我们想要的,因为 region 不能准确地拟合线的路径,并且执行时间急剧增加。

我已经为此工作了数周,但我无法为这个问题找到任何好的解决方案。

有什么建议么?

4

0 回答 0