Objective c 当两个CGRect在地图上重叠时,如何避免alpha分量增加?
我正在为iOS开发objective-c应用程序。我有一些与gps坐标相关的数据,这些数据是从CoreData获得的,我想在地图上表示这些数据,用一些颜色绘制一些CGRect,以制作一种热图。我可以这样做,但我的问题是,如果有两个或多个重叠的CGRect,则CGRect的alpha分量相加,因此如果有很多重叠的CGRect,我会失去透明度。我的问题是,是否存在避免这种情况的方法,并在不失去透明度的情况下绘制重叠的CGRECT。可能是对以前的CGRect进行裁剪并添加新的CGRect 有什么想法吗?Objective c 当两个CGRect在地图上重叠时,如何避免alpha分量增加?,objective-c,heatmap,cgrect,Objective C,Heatmap,Cgrect,我正在为iOS开发objective-c应用程序。我有一些与gps坐标相关的数据,这些数据是从CoreData获得的,我想在地图上表示这些数据,用一些颜色绘制一些CGRect,以制作一种热图。我可以这样做,但我的问题是,如果有两个或多个重叠的CGRect,则CGRect的alpha分量相加,因此如果有很多重叠的CGRect,我会失去透明度。我的问题是,是否存在避免这种情况的方法,并在不失去透明度的情况下绘制重叠的CGRECT。可能是对以前的CGRect进行裁剪并添加新的CGRect 有什么想法吗
谢谢您的建议。您可以将无透明度的矩形绘制到
CGLayer
或UIImage
上,然后在地图顶部以所需的透明度绘制该层/图像
或者,您可以尝试不同的混合模式,可能是
KCGBlendModeSourceTop
谢谢您的回复,我用这个CGContextSetBlendMode(ctx,KCGBlendModeDestinationTop)解决了这个问题;