• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iphone - 如何在 quartz 2d 中绘制 alpha < 1 的线条

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:49:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

毫无疑问,这可能是一个重复的问题,但我无法从此处的任何帖子中获得适当的解决方案。因此,我将其发布为新帖子,希望能得到一些解决方案。

在我的绘图应用程序中,我想为要绘制的线条提供不透明度功能。 但是当我将 alpha 分配给颜色时,我在线条之间得到了重叠点。

我发现在两个 View 中绘制可以解决这个问题,但我无法理解其背后的逻辑。

enter image description here

我正在使用普通 quartz 二维码在触摸事件上画线。



Best Answer-推荐答案


In CoreGraphics drawing how can I keep the point of overlap from being darker than the rest of the line? 的副本

诀窍是将笔触放在自己的缓冲区中,您可以在其中正确剪切 alpha,然后再将整个内容与背景混合。

这是一种方法:创建 2 个 View ,一个用于背景,另一个用于线条。在顶 View 中用 1 的 alpha 绘制线条!然后将整个前景 View 的 alpha 设置为 0.5(或您要使用的任何值)。

[topView setAlpha:0.5];

这将防止半透明笔触增强自身。但是 2 个相互交叉的不同笔触呢(就像你的例子一样)。你想让那个交叉点更激烈吗?如果是这样,那么您需要为每个笔触创建一个新 View 。为防止 View 过多导致内存溢出,您需要将之前的顶 View 与背景混合。

关于iphone - 如何在 quartz 2d 中绘制 alpha < 1 的线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407546/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap