【问题标题】:Is it possible to detect intersection of CGMutablePathRef and CGRect ?是否可以检测到 CGMutablePathRef 和 CGRect 的交集?
【发布时间】:2011-12-29 20:29:58
【问题描述】:

我有一个带有边界框的精灵,我想检测它与 CGMutablePathRef 的交集。我该怎么做?

【问题讨论】:

    标签: iphone objective-c ios ipad cocos2d-iphone


    【解决方案1】:

    没有现成的解决方案。它还取决于您使用的 CGPath 的哪些功能。如果只是一系列点,可以使用普通的line with rectangle intersection test

    其他一切(例如贝塞尔曲线和矩形交点)都将非常复杂。

    【讨论】:

    • 感谢您的回复。我确实没有曲线,而是六边形。我是否必须将这些线与六边形分开创建,还是将它们作为单独的线处理?
    【解决方案2】:

    如果是纯矩形比较,可以使用CGPathGetBoundingBox获取路径的边界框,然后使用CGRectIntersectsRect判断是否有交集。

    【讨论】:

    • 这也很有用,谢谢,但对我来说这只是一个临时解决方案,因为我不想检测路径的边界框,而是它的正确形状。
    【解决方案3】:

    根据性能需要,绘制一个 1 位深的位图,剪切到 CGRect。然后扫描一个像素。 (这种技术往往更适合测试到某个点。)

    【讨论】:

    • 这种方式也很吸引我,非常感谢,我试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多