Need help with ios-curve-interpolation?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

jnfisher
201 Stars 22 Forks MIT License 16 Commits 4 Opened issues

Description

iOS app demonstrating curve interpolation with Hermite and Catmull-Rom curves.

Services available

!
?

Need anything else?

Contributors list

No Data

Synopsis

iOS Curve Interpolation consists of two main components: - A category on UIBezierCurvePath, UIBezierCurvePath+Interpolation. - A small iOS app that demonstrates the categories use.

Example

#include "UIBezierCurvePath+Interpolation.h"

const char *encoding = @encode(CGPoint);

NSMutableArray *array = [NSMutableArray new];

// Add 4 CGPoints as NSValue [array addObject:[NSValue valueWithBytes:&CGPointMake(0.0, 0.0) objCType:encoding]; [array addObject:[NSValue valueWithBytes:&CGPointMake(0.0, 1.0) objCType:encoding]; [array addObject:[NSValue valueWithBytes:&CGPointMake(1.0, 1.0) objCType:encoding]; [array addObject:[NSValue valueWithBytes:&CGPointMake(1.0, 0.0) objCType:encoding];

UIBezierPath *path = [interpolateCGPointsWithCatmullRom:array closed:NO alpha:0.5]; // Use the path

Motivation

To add an easy-to-use category for curve interpolation onto UIBezierPath. Also to provide a small iOS app for demonstrating/testing the interpolation inputs (Hermite vs. Catmull-Rom, alpha value effects, and open/closed option).

Installation

Clone the repo, open the Xcode project in Xcode 5+.

The UIBezierPath+Interpolation.h/.m is standalone, provided you also include CGPointExtension.h/.m (which are also included in the Xcode project).

API Reference

// pointsAsNSValues must be NSValue objects containing CGPoints.
//
// ex:
//     const char *encoding = @encode(CGPoint);
//     NSValue *pointAsValue = [NSValue valueWithBytes:&cgPoint objCType:encoding];

// 0.0 <= alpha <= 1.0 +(UIBezierPath *)interpolateCGPointsWithCatmullRom:(NSArray *)pointsAsNSValues closed:(BOOL)closed alpha:(float)alpha; +(UIBezierPath *)interpolateCGPointsWithHermite:(NSArray *)pointsAsNSValues closed:(BOOL)closed;

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.