0

我想要的是创建一个带有图层的矢量绘图程序,但为了避免使用透明度/不透明度,我想将每个形状从最低层到最高层绘制到一个位图上。对于填充,我想填充形状。我的问题是,如果我有一个绘制然后填充的形状,那么下一个形状会与它重叠一点,并且新形状的边框与另一个形状的边框相同,那么填充只会部分填充它。有没有办法给定一个形状的坐标,我可以找到填充的实际边界而不是使用目标颜色?谢谢

4

1 回答 1

1

Floodfill 将无法满足您的需求...除非您进行以下操作之一:

选项1:在内存的其他部分使用floodfill,然后使用蒙版将形状blit到你想要的地方,因为你说你想避免透明度,这个选项有点被划掉......(虽然我仍然推荐它,真的,不难做一个 if 来检查那个像素是否被复制)

选项2:仅使用基本形状,无需使用填充即可轻松填充,用水平线填充它们,起点和终点位于形状每条线的两端像素之间。那将是正方形,圆形......

选项 3:与选项 2 相同,但允许使用任意三角形。

选项 4:与 3 相同,但允许您读取点列表,并用多个矩形组合对象,因此您可以制作任意形状(甚至是凸形)。那个真的很难正确实现(特别是凸形)。

于 2010-05-01T02:17:43.417 回答