ios - CGRect 和 CGPath 的交集

标签 ios core-graphics

是否有一种有效的方法来检测 CGPath 和 CGRect 是否相交?

我考虑过像这样循环遍历 CGRect 中的每个点:

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

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

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

最佳答案

  • 在位图中绘制路径(alpha 为白色)
  • 然后检查位图的矩形部分。检查该区域是否有任何白色,这意味着重叠

-- 为了提高性能,只绘制矩形中的位图部分。


我没试过这个,它不会提供实时性能,但我觉得还可以

关于ios - CGRect 和 CGPath 的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22417736/

相关文章:

ios - 如何为 CAShapeLayer 绘制圆点描边图案?

swift - 在 CALayer 上过滤,除了形状是(不一定不同的)矩形的并集

c# - 从 Application.persistentDataPath 保存和加载数据适用于 Unity,但不适用于 iOS

ios - navigationItem.setHidesBackButton 隐藏了箭头,但是 "Back"这个词仍然存在

ios - 如何快速打印 Alamofire 中发布请求的响应的 json 内容?

ios - Cocoa Touch 获取用户全名

android - 在 ionic 框架中保存和加载应用程序

iOS 图片编辑开源库——或者只是一些小技巧

iOS:将 View 转换为圆柱形

ios - 当我在图片上实现类似 Snapchat 的涂鸦时出现内存问题(包括详细信息)