是否有一种有效的方法来检测 CGPath 和 CGRect 是否相交?
我考虑过像这样循环遍历 CGRect 中的每个点:
for (CGPoint point in rect) {
if (CGPathContainsPoint(path, nil, point, NO)) {
intersects = YES;
break;
}
但我想知道是否有更好的方法。
在我的应用程序中,有许多 CGrect 和一个可能会改变其形状的 CGPath。我只需要检查哪些矩形与路径相交,如下图所示。
最佳答案
- 在位图中绘制路径(alpha 为白色)
- 然后检查位图的矩形部分。检查该区域是否有任何白色,这意味着重叠
-- 为了提高性能,只绘制矩形中的位图部分。
我没试过这个,它不会提供实时性能,但我觉得还可以
关于ios - CGRect 和 CGPath 的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22417736/