Select Page
Latest 1.1.0 https://github.com/louisdh/bezierpath-length MIT ios 8.0, osx 10.10, tvos 9.0, watchos 2.0 Louis D’hauwe

# [UI/NS]BezierPath + Length

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+

## Installation

### CocoaPods

To install, add the following line to your `Podfile`:

``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.

Any `CGPath` can be split into subpaths. Of which there are three types:

• Linear
• Cubic curve

See calculations.md for a detailed mathematical explanation of how the length of these three can be calculated.

### Latest podspec

```{
"name": "BezierPathLength",
"version": "1.1.0",
"summary": "A simple API to get the length of a CGPath, UIBezierPath or NSBezierPath, written in Swift.",
"homepage": "https://github.com/louisdh/bezierpath-length",
"authors": {
"Louis D'hauwe": "[email protected]"
},
"source": {
"git": "https://github.com/louisdh/bezierpath-length.git",
"tag": "1.1.0"
},
"platforms": {
"ios": "8.0",
"osx": "10.10",
"tvos": "9.0",
"watchos": "2.0"
},
"source_files": "Source/*.swift",
"pushed_with_swift_version": "3.0.2"
}```