是否有任何核心或其他框架方法来返回表示路径对象的填充部分的某种类型的 CGPath 或集合?
我正在寻找基本上与CGPathCreateCopyByStrokingPath相反的东西。
在一篇关于低级文本渲染的文章的帮助下,我能够想出一个代表字母表中每个字母的路径。
问题是路径是字母的轮廓,而我真正想要的是一条仅代表字母填充部分而不是笔划的路径。例如,字母“A”将仅包含 3 个不同的行。
我目前正在尝试使用类似于过于复杂的 16 段显示的类来解决这个问题。以下是该工作的一些示例代码,供有兴趣的人使用:
const NSUInteger segmentsPerDimension = 4;
const CGFloat oneOverTheNumberOfSegments = 1.0 / segmentsPerDimension;
@implementation PathSegments
- (instancetype)initWithRect:(CGRect)rect {
self = [super init];
[self setSegmentBounds:rect];
_segments = [[NSMutableArray alloc] init];
...
[self addVerticalSegments];
...
return self;
}
- (void)addVerticalSegments {
for (NSUInteger i = 0; i <= segmentsPerDimension; i++) {
[self createColumnSegmentsForRow:i];
}
}
- (void)createColumnSegmentsForRow:(NSUInteger)row {
for (NSUInteger i = 0; i < segmentsPerDimension; i++) {
CGFloat x = _segmentBounds.size.width * oneOverTheNumberOfSegments * row;
CGFloat yEnd = _segmentBounds.size.height * oneOverTheNumberOfSegments * i;
CGFloat yStart = _segmentBounds.size.height * oneOverTheNumberOfSegments * (i + 1);
[self addLineSegmentWithXStart:x YStart:yStart XEnd:x YEnd:yEnd];
}
}
...
@end