【发布时间】:2019-07-19 00:41:14
【问题描述】:
我想找出 UIBezierPath 路径下的所有 cgpoints,因为我有 3 个点用于创建 UIBezier 路径。我试过下面的代码,但它没有提供准确的结果。请检查所附图片 任何人都可以帮助我解决这个问题。
提前致谢:)
func getPathElementsPointsAndTypes() -> ([CGPoint],[CGPathElementType]) {
var arrayPoints : [CGPoint]! = [CGPoint]()
var arrayTypes : [CGPathElementType]! = [CGPathElementType]()
self.forEach { element in
switch (element.type) {
case CGPathElementType.moveToPoint:
arrayPoints.append(element.points[0])
arrayTypes.append(element.type)
case .addLineToPoint:
arrayPoints.append(element.points[0])
arrayTypes.append(element.type)
case .addQuadCurveToPoint:
arrayPoints.append(element.points[0])
arrayPoints.append(element.points[1])
arrayTypes.append(element.type)
arrayTypes.append(element.type)
case .addCurveToPoint:
arrayPoints.append(element.points[0])
arrayPoints.append(element.points[1])
arrayPoints.append(element.points[2])
arrayTypes.append(element.type)
arrayTypes.append(element.type)
arrayTypes.append(element.type)
default: break
}
}
return (arrayPoints,arrayTypes)
}
【问题讨论】:
-
我需要该路径下的每个坐标(CGPoint)。
-
没有附加图片。
-
贝塞尔路径是一条连续的曲线,上面有无数个点。
-
我想在贝塞尔路径上绘制一些在贝塞尔路径之外但靠近贝塞尔路径的点,因此我需要一些坐标,通过它可以将它们与最近的点进行比较
标签: swift uibezierpath cgpoint