Tôi đang cố gắng tìm ra cách vẽ một vòng cung trong CoreGraphics. Tôi hiểu phương thức nào cần thực hiện và cách tính các góc trong kịch bản sau đây.iOS CoreGraphics: Vẽ vòng cung, xác định góc cung từ định lý hợp âm giao nhau
----------
| |
*--------*
Khi cả hai điểm ở dưới cùng của trực tràng. Tuy nhiên khi hai điểm ở các vị trí khác, tôi không biết cách tính góc đúng.
---------*
| |
*---------
Xem phần dưới cùng của hình ảnh của tôi.
Ray Wenderlich có great tutorial về việc tạo vòng cung cho chỉ ở các vị trí điểm cần chú ý đầu tiên.
// sample code for creating arc for path from bottom of rect
CGMutablePathRef createArcPathFromBottomOfRect(CGRect rect, CGFloat arcHeight) {
CGRect arcRect = CGRectMake(rect.origin.x, rect.origin.y + rect.size.height
- arcHeight, rect.size.width, arcHeight);
CGFloat arcRadius = (arcRect.size.height/2) + (pow(arcRect.size.width, 2)/
(8 * arcRect.size.height));
CGPoint arcCenter = CGPointMake(arcRect.origin.x + arc.size.width/2,
arcRect.origin.y + arcRadius);
CGFloat angle = acos(arcRect.size.width/ (2*arcRadius));
CGFloat startAngle = radians(180) + angle;
CGFloat endAngle = radians(360) - angle;
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, arcCenter.x, arcCenter.y, arcRadius, startAngle,
endAngle, 0);
return path;
}
Làm cách nào để tính góc khi ở các tình huống khác như được mô tả ở cuối hình ảnh của tôi?