CGRect和CGPath的交集

本教程将介绍CGRect和CGPath的交集的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

CGRect和CGPath的交集 教程 第1张

问题描述

有什么检测CGPath和CGRect是否相交的有效方法?

我想过循环遍历CGRect中的每个点,就像这样:

for (CGPoint point in rect) {
if (CGPathContainsPoint(path, nil, point, NO)) {
intersects = YES;
break;
}

但我想知道是否有更好的方法。

在我的应用程序中,有许多CGrect和一个可能会改变其形状的CGPath。我只需要检查哪些矩形与路径相交,如下图所示。

推荐答案

    在位图中绘制路径(Alpha上为白色)

    然后检查位图的矩形部分。检查该区域是否有白色,这意味着重叠

--为使其更具性能,仅绘制位于矩形中的位图部分。


我还没有试过,它不会提供实时性能,但听起来还可以

好了关于CGRect和CGPath的交集的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。