Sie können dies mit der Wykobi C++ - Bibliotheksroutine für kubische Bezierkurven tun. Wykobis Bibliothek unterstützt auch quadratische Bezier-Kurven.
Natürlich als jemand darauf hingewiesen, dass Sie nicht alle Punkte wollen (obwohl nicht unmöglich, würde es einfach unendlich dauern :).Wykobi macht es einfach, eine bestimmte Anzahl von Punkten zu erhalten - wenn Ihre Startpunkte, c1, c2 und Endpunkte (wo c1, c2 die Kontrollpunkte sind) genau dieselben sind wie die, die CGContextAddCurveToPoint gegeben werden, dann werden die Punkte perfekt liegen auf der von Core-Grafiken gezeichneten Linie - so können Sie beispielsweise ein Muster an mehreren Punkten auf dem Pfad zeichnen.
See: http://www.codeproject.com/Articles/22568/Computational-Geometry-C-and-Wykobi
Auch nachdem ich mit begann wykobi ich gehört, dass es eine ähnliche, vielleicht sogar bessere Bibliothek, die Teil von Boost ist, aber es noch nicht ausgecheckt.
Ich habe eine C++ Class WPoint als Brücke zwischen Wykobi-Punkten und CGPoints (C++ Spaß!) Erstellt. Hier ist ein Code (ohne WPOINT, aber man kann sich vorstellen, dass es genau das gleiche Layout wie ein CGPoint so, wenn Sie die richtige Besetzung tun können Sie leicht umwandeln
NSMutableArray* result = [[NSMutableArray alloc] init];
wykobi::cubic_bezier<CGFloat,2> bezier;
bezier[0] = (WPoint)p1; // start point, in CG we did a CGMoveToPoint
bezier[1] = (WPoint)b1i; // control 1
bezier[2] = (WPoint)b2i; // control 2
bezier[3] = (WPoint)p2; // end point
std::vector<WPoint> point_list;
int numPoints = p2.dist(p3) * pointDensity;
// *** here's the magic ***
wykobi::generate_bezier(bezier,std::back_inserter(point_list), numPoints);
for (int i=0; i<numPoints; i++) {
CGPoint p = (CGPoint)(point_list[i]);
[result addObject:[NSValue valueWithCGPoint:p]];
}
// result has your points!
Hier ist ein Link auf die Boost-Geometrie Bibliothek. http://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/html/geometry/introduction.html
Hier ... http://stackoverflow.com/questions/4854035/how-do-i-detect-a-touch-on-a-uibezierpath-and-move-a-ball-along-that/ 4855932 # 4855932 – Fattie