gpt4 book ai didi

objective-c - iOS CoreGraphics : Draw arc, 根据相交弦定理确定弧角

转载 作者:可可西里 更新时间:2023-11-01 03:44:16 27 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 CoreGraphics 中绘制弧线。我了解在以下场景中调用哪些方法以及如何计算角度。

----------
| |
*--------*

当点都在矩形的底部时。但是当两个点在其他位置时,我不知道如何计算正确的角度。

---------*
| |
*---------

请看我图片的底部。

enter image description here

Ray Wenderlich 有一个 great tutorial关于仅在第一个提到的点位置创建圆弧。

// 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;
}

在图像底部描绘的其他情况下,如何计算角度?

最佳答案

我发现制作圆弧的更简单方法是使用:

void CGContextAddArcToPoint (
CGContextRef c,
CGFloat x1,
CGFloat y1,
CGFloat x2,
CGFloat y2,
CGFloat radius
);

如果您从 Ray Wenderlich 的网站 (https://www.raywenderlich.com/33330/core-graphics-tutorial-glossy-buttons) 查看这张图片,点 (x1,y1) 是曲线的起点,点 (x2,y2) 是曲线的终点。然后只需指定拐角半径,瞧!看起来这可能是一个更容易用于您想要做的事情的 API。

关于objective-c - iOS CoreGraphics : Draw arc, 根据相交弦定理确定弧角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com