[UI/NS]BezierPath + Length
This project provides a simple API to get the length of either a
let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 300)) let path = UIBezierPath(ovalIn: rect) // Length in pt. let length = path.length
There's also an API for getting a point on a path at a certain percentage, example:
// CGPoint at 50% of path let point = path.point(at: 0.5)
- iOS 8.0+ / macOS 10.9+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 9.0+
To install, add the following line to your
pod 'BezierPathLength', '~> 1.0.0'
How does it work?
The actual calculations are implemented on a
CGPath extension, but a
[UI/NS]BezierPath extension is available for convenience.
CGPath can be split into subpaths. Of which there are three types:
- Quadratic curve
- Cubic curve
See calculations.md for a detailed mathematical explanation of how the length of these three can be calculated.
This project is available under the MIT license. See the LICENSE file for more info.