gpt4 book ai didi

c++ - 用 "layers"填充

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:34:58 25 4
gpt4 key购买 nike

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

最佳答案

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

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

选项 2:仅使用基本形状,您可以在不使用 floodfill 的情况下轻松填充,用水平线填充它们,起点和终点位于形状每条线的两个末端像素之间。那将是正方形,圆形......

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

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

关于c++ - 用 "layers"填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com