ios - 使用 Objective c 在圆弧上点

标签 ios objective-c

我在获取圆弧上的点时遇到问题。我画了一个弧线。我想用半径、原点和角度得到圆弧上的点。在我的例子中,原点是 150,150。半径为 50。起始角度为 0,结束角度为 180。当我试图以角度 M_PI/2 获取点时,它应该在圆弧的中间对齐,但它给出了错误的 x 和 y 值。如果我遗漏了什么,请告诉我。

enter image description here

我的代码是

 - (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 4.0);
    CGContextSetStrokeColorWithColor(context,
                                     [UIColor blueColor].CGColor);
    CGContextAddArc(context, 150, 150, 50, 0, M_PI, 0);
    CGContextStrokePath(context);

}

-(CGPoint)getPoint:(float)angle
{
    float radius = 50;
    //float x = 160+radius*cos(-M_PI/2);
    //float y = 160+radius*sin(-M_PI/2);

    float x = 150+radius*cos(angle);
    float y = 150+radius*sin(angle);

    return CGPointMake(x, y);
}

最佳答案

如果您得到一个点 (177, 192),如您在评论中所写,这意味着您通过的角度大约等于 1。这不是 M_PI/2,它大约是 1.57

所以,问题在于您传递的值,而不是所提到的函数。也许您错误地将角度四舍五入为整数?

关于ios - 使用 Objective c 在圆弧上点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30076953/

相关文章:

ios - RestKit 使用外键从 JSON 导入

ios - Xcode 4 : Can I get a path to the currently active file via AppleScript?

iphone - 对 UISplitViewController 上的详细 View 之间的变化进行动画处理

objective-c - 你什么时候不想使用@synthesized 实例变量?

ios - 即使相机权限被拒绝,当前 ARFrame 也不是零

ios - 如何在 OpenGL es 2.0 中模拟累积缓冲区(尾随粒子效应)

ios - 从 JSQMessagesViewController 打开图像

objective-c - 同一 UIButton 的多个实例?

Objective-C – 两个异步方法,等待条件

objective-c - 如何检查 NSString 是否为数字