W aplikacji na iPada chcę przesunąć warstwę w kierunku przeciwnym do ruchu wskazówek zegara wzdłuż łuku, który ma punkt środkowy (768, 512) i promień 512. Chcę, aby rozpoczynał się o godzinie 12 (który znajduje się w prawym górnym rogu ekranu) i kończy się o godzinie 6 (prawy dolny róg).Po rozpoznaniu problemu CGPathAddArc
Po wielu spróbować-i-nie, mam kod roboczy
CGPoint origin = logo.layer.position;
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = YES;
CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, origin.x, origin.y);
CGPathAddArc(curvedPath, NULL, 768, 512, 512, -M_PI_2, M_PI_2, YES);
pathAnimation.path = curvedPath;
CGPathRelease(curvedPath);
pathAnimation.duration = 2;
[logo.layer addAnimation:pathAnimation forKey:@"curve"];
Ale problem jest nie mogę zrozumieć początkowy kąt i kąt końcowy parametr. Dlaczego powinienem używać odpowiednio -M_PI_2 i M_PI_2 i ustawić zgodnie z ruchem wskazówek zegara na TAK?
myślę, że jestem w ruchu obiektu od 90 stopni do 270 stopni w lewo, a więc kod powinien być
CGPathAddArc(curvedPath, NULL, 768, 512, 512, -M_PI_2, M_PI_2, YES);
jestem chyba źle w wielu miejscach i przez przypadek dostał poprawny wynik.
proszę mnie poprawić i pomóc mi zrozumieć parametry dwa Kąt:
startAngle
The angle (in radians) from the horizontal that determines the starting point of the arc.
endAngle
The angle (in radians) from the horizontal that determines the ending point of the arc.
Dzięki
Leo
odwrócona do góry dno osi Y mnie. również dzięki, pomogło mi :) – codrut