elementAtIndex:associatedPoints:
方法获取路径中每个向量元素的点.要获取路径中的每个点,您必须迭代所有元素并获取关联点.对于直线,此方法将为您提供端点,但如果您跟踪上一个点,则可以在它们之间使用任意数量的点. 对于曲线,您需要实现代码以确定曲线沿曲线查找点的路径.使用bezIErPathByFlatteningPath展平路径要简单得多,后者返回一条新路径,所有曲线都转换为直线.
这是一个展平路径并打印结果中所有行的端点的示例.如果路径包含长直线,则需要根据长度沿线添加点.
NSBezIErPath *originalPath;NSBezIErPath *flatPath = [originalPath bezIErPathByFlatteningPath];NSInteger count = [flatPath elementCount];NSPoint prev,curr;NSInteger i;for(i = 0; i < count; ++i) { // Since we are using a flattened path,no element will contain more than one point NSBezIErpathelement type = [flatPath elementAtIndex:i associatedPoints:&curr]; if(type == NSlinetoBezIErpathelement) { NSLog(@"line from %@ to %@",NsstringFromPoint(prev),NsstringFromPoint(curr)); } else if(type == NSClosePathBezIErpathelement) { // Get the first point in the path as the line's end. The first element in a path is a move to operation [flatPath elementAtIndex:0 associatedPoints:&curr]; NSLog(@"Close line from %@ to %@",NsstringFromPoint(curr)); }}总结
以上是内存溢出为你收集整理的objective-c – 有没有办法获得NSBezierPath对象的所有点的x,y坐标?全部内容,希望文章能够帮你解决objective-c – 有没有办法获得NSBezierPath对象的所有点的x,y坐标?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)