CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

BezierPathLength 1.1.0

BezierPathLength 1.1.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Dec 2016
SwiftSwift Version 3.0.2
SPMSupports SPM

Maintained by Louis Dhauwe.



[UI/NS]BezierPath + Length

Code Climate

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)

Requirements

  • iOS 8.0+ / macOS 10.9+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 8.2+

How does it work?

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.

License

This project is available under the MIT license. See the LICENSE file for more info.