如何在NSView中避免形状之间的抗锯齿切口?

时间:2014-10-29 21:46:51

标签: cocoa quartz-graphics quartz-2d

我尝试根据bezier路径构建某种“三角形混合”。到目前为止,我得到了很好的结果,有一个问题,我不知道如何解决。 我的形状由数百个小三角形构成,每个三角形都填充有RGBA颜色。但是形状之间是可见的狭缝,(可能)是由抗锯齿引起的。使用抗锯齿关闭结果要差得多。 是否存在一种在NSView中“调整”抗锯齿的方法? 还是一些不同的方法?

Triangles, triangles! Triangles everywhere!

3 个答案:

答案 0 :(得分:1)

只有一种方法! 在没有抗锯齿的情况下分离渲染alpha和颜色,并在最后将它们组合起来。

在:enter image description here 之后:enter image description here

答案 1 :(得分:0)

一种方法是将它们拉得稍大。开始每条路径。 您也可以将路径划分为相同的效果。 然后设置混合模式,使它们不会相互混合。

答案 2 :(得分:0)

如果您认为它是抗锯齿,那么您可以将其关闭以用于图形上下文......

// about to draw
CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
CGContextSetAllowsAntialiasing ( context, false );
// or
CGContextSetShouldAntialias ( context, false );
//draw