This project provides a simple API to get the length of either a UIBezierPath
or NSBezierPath
. Example:
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 Podfile
:
pod 'BezierPathLength', '~> 1.0.0'
The actual calculations are implemented on a CGPath
extension, but a [UI/NS]BezierPath
extension is available for convenience.
Any CGPath
can be split into subpaths. Of which there are three types:
- Linear
- 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.