Eug*_*din 5 cocoa objective-c nsbezierpath
我很难弄清楚如何确定cocoa中两个NSBezierPath闭合对象的交集.我在网上做了一些研究,到目前为止找不到答案.
这就是我所拥有的.
我需要编写一种在所有这些情况下都会返回true的方法.
我到目前为止所想的是使用bezierPathByFlatteningPath展平矩形,然后使用elementAtIndex:associatedPoints:取每个元素(作为线段)来 遍历其中的每个点并检查第二个对象(矩形或椭圆)是否包含point(使用containsPoint :).
但是,我不知道如何通过细分的所有要点......
如果有人有任何可能有帮助的暗示或想法,我会非常感激!
如果您有 2 个贝塞尔曲线路径矩形并且知道它们的每个框架,那么您可以使用NSIntersectsRect()
:
NSRect rect1 = NSMakeRect(20.0, 150.0, 300.0, 100.0);
NSRect rect2 = NSMakeRect(100.0, 100.0, 100.0, 200.0);
[[NSColor redColor] set];
[NSBezierPath strokeRect:rect1];
[NSBezierPath strokeRect:rect2];
BOOL intersects = NSIntersectsRect(rect1, rect2);
NSLog(@"intersects == %@", (intersects ? @"YES" : @"NO"));
Run Code Online (Sandbox Code Playgroud)
生产:
在这种情况下,它将记录intersects == YES
.
归档时间: |
|
查看次数: |
1220 次 |
最近记录: |