gpt4 book ai didi

macos - Core Graphics 笔划宽度在直线和圆弧之间不一致?

转载 作者:可可西里 更新时间:2023-11-01 03:38:24 25 4
gpt4 key购买 nike

用例:我正在对 UIView 进行子类化以创建一个自定义 View ,该 View 将 UIImage 与圆角矩形“ mask ”(将图像剪辑为圆角矩形)。代码正在运行;我使用了类似于 this question 的方法.

但是,我想描边剪切路径来创建一个“框架”。这可行,但弧形笔划看起来与直线笔划明显不同。我试过将笔划宽度调整到更大的值(我一开始以为是像素化),但抗锯齿似乎以不同方式处理弧线和线条。

这是我在模拟器上看到的:

Uneven stroke image

这是绘制它的代码:

CGContextSetRGBStrokeColor(context, 0, 0, 0, STROKE_OPACITY);
CGContextSetLineWidth(context, 2.0f);
CGContextAddPath(context, roundRectPath);
CGContextStrokePath(context);

谁知道如何让这些排列顺利?

最佳答案

… but the anti-aliasing seems to handle arcs and lines differently.

不,不是。

你的笔画宽度是一致的——一直都是 2 pt。

错误的是你已经剪裁成一个矩形,而你的形状的边恰好在这个矩形的边缘之上,所以只有矩形内部的边的一半被绘制。这就是为什么边缘看起来只有 1 像素宽。

解决方案要么不裁剪,要么在裁剪之前将裁剪矩形在每个轴上增加 2 pt,要么将形状的边缘在每一侧向内移动 1 pt。 (ETA:或者,是的,进行内划。)

关于macos - Core Graphics 笔划宽度在直线和圆弧之间不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4473786/

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