Como gerar o CGPoint-Array fora do UIBezierPath (para deslizar o objeto ao longo do caminho) [duplicado]
Esta questão já tem uma resposta aqui:
Arraste UIView em torno do Shape Composto por CGMutablePaths 1 respostaEu tenho um UIBezierPath (curvo como um '8', com apenas 4 pontos nele) e eu preciso fazer algum tipo de CGPoint-Array fora dele. Alguma ideia? obrigado!
editar:
Eu tenho o meu bezier initlialized assim
-(void) initBezier
{
theBezierPath = [UIBezierPath bezierPath];
[theBezierPath moveToPoint:P(211.00, 31.00)];
[theBezierPath addCurveToPoint:P(870.00, 191.00) controlPoint1:P(432.00, -11.00) controlPoint2:P(593.00, 209.00)];
[theBezierPath addCurveToPoint:P(731.00, 28.00) controlPoint1:P(1061.95, 178.53) controlPoint2:P(944.69, 5.78)];
[theBezierPath addCurveToPoint:P(189.00, 190.00) controlPoint1:P(529.00, 49.00) controlPoint2:P(450.00, 189.00)];
[theBezierPath addCurveToPoint:P(211.00, 31.00) controlPoint1:P(-33.01, 190.85) controlPoint2:P(71.00, 37.00)];
}
e eu animo um objeto nele com
anim = [CAKeyframeAnimation animationWithKeyPath:@"emitterPosition"];
anim.path = theBezierPath.CGPath;
anim.calculationMode = kCAAnimationCubicPaced;
anim.repeatCount = HUGE_VALF;
anim.duration = tme;
Eu quero animar o objeto no caminho pixel por pixel (via touch-position). Eu quero que o objeto "encaixe" uma determinada coordenada de um toque no ponto mais próximo da curva, de modo que ele deslize o objeto ao longo do caminho.