我希望图像根据编程代码绘制的路径移动。
我之前问过一个类似的问题(https://stackoverflow.com/questions/1571182/how-to-limit-a-uiimageview-to-move-in-a-specific-path),但我发现我问过错误的方式。图像不必是 UIImageView。另外,上面给出的答案后来发现它仅适用于 Mac OS X,不适用于 iPhone。
无论如何,这是我绘制简单路径的代码。
CGContextSetRGBStrokeColor(theContext, 1.0, 0.0, 1.0, 1.0);
// Draw them with a 2.0 stroke width so they are a bit more visible.
CGContextSetLineWidth(theContext, 2.0);
// Draw a bezier curve with end points s,e and control points cp1,cp2
CGPoint s = CGPointMake(30.0, 120.0);
CGPoint e = CGPointMake(300.0, 120.0);
CGPoint cp1 = CGPointMake(120.0, 30.0);
CGPoint cp2 = CGPointMake(210.0, 210.0);
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, s.x, s.y);
CGPathAddCurveToPoint(path, NULL, cp1.x, cp1.y, cp2.x, cp2.y, e.x, e.y);
CGPathAddCurveToPoint(path, NULL, cp2.x, cp1.y, cp1.x, cp2.y, s.x, s.y);
CGPathCloseSubpath(path);
CGContextSetRGBStrokeColor(theContext, 1.0f, 0.0f, 0.0f, 1.0f);
CGContextAddPath(theContext, self.path);
CGContextSetLineWidth(theContext, 1.0);
CGContextStrokePath(theContext);
其中 theContext 是 CGContextRef。上述代码的结果将绘制一个旋转 90 度的“8”形状。但是,如何使图像跟随路径?
更新#1:抱歉重复问题,但我想进一步询问如何根据路径进行图像旋转(即头部矢量应遵循路径的切线)。任何人都可以提出一些想法吗?
更新#2:如何使路径动态变化?