Trong ứng dụng iPad, tôi muốn di chuyển lớp ngược chiều kim đồng hồ theo vòng cung có điểm trung tâm là (768, 512) và bán kính 512. Tôi muốn nó bắt đầu lúc 12 giờ (đó là góc trên bên phải của màn hình) và kết thúc lúc 6 giờ (góc dưới cùng bên phải).Gặp vấn đề khi hiểu về CGPathAddArc
Sau rất nhiều cố gắng-và-thất bại, Tôi đã nhận mã làm việc
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"];
Nhưng vấn đề là tôi không thể hiểu được những thông số góc và góc cuối bắt đầu. Tại sao tôi nên sử dụng -M_PI_2 và M_PI_2 tương ứng và đặt chiều kim đồng hồ thành CÓ?
Tôi nghĩ rằng tôi đang di chuyển các đối tượng từ 90 độ đến 270 độ chống chiều kim đồng hồ, do đó mã nên được
CGPathAddArc(curvedPath, NULL, 768, 512, 512, -M_PI_2, M_PI_2, YES);
Tôi có thể sai ở nhiều nơi và tình cờ nhận được kết quả chính xác.
Xin vui lòng sửa tôi và giúp tôi hiểu các thông số hai góc:
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.
Cảm ơn
Leo
trục y lộn ngược gây nhầm lẫn cho tôi. cũng, cảm ơn, nó đã giúp tôi :) – codrut