在圆上放置按钮

时间:2011-05-22 07:01:45

标签: iphone objective-c ios ipad

我在Objective-C中计算一个圆圈上的点时间。即使在阅读了其他代码示例的TONS后,我的圈子仍然偏离中心。 (这是考虑到“中心”与“原点”并调整UIView的大小,在这种情况下是UIButton。)

这是我正在使用的代码。圆圈形成正确,它正好偏离中心。我不确定这是一个弧度与度数问题还是别的。这是ViewController中的一个辅助函数,它以编程方式创建UIButtons并将它们添加到视图中:

- (CGPoint)pointOnCircle:(int)thisPoint withTotalPointCount:(int)totalPoints {
    CGPoint centerPoint = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2);
    float radius = 100.0;
    float angle = ( 2 * M_PI / (float)totalPoints ) * (float)thisPoint;
    CGPoint newPoint;
    newPoint.x = (centerPoint.x / 2) + (radius * cosf(angle));
    newPoint.y = (centerPoint.y / 2) + (radius * sinf(angle));
    return newPoint;   
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

按钮的中心(即圆圈上的点)是

newPoint.x = (centerPoint.x) + (radius * cosf(angle));  // <= removed / 2
newPoint.y = (centerPoint.y) + (radius * sinf(angle));  // <= removed / 2

请注意,如果您在这些点上放置按钮(即矩形),您必须确保它们的中心位于此点(即从buttonWidth/2newPoint.x中减去buttonHeight/2 newPoint.y获取左上角。)

答案 1 :(得分:0)

不确定为什么你将第二次除以新点坐标...

这个怎么样:

newPoint.x = centerPoint.x + (radius * cosf(angle));
newPoint.y = centerPoint.y + (radius * sinf(angle));
return newPoint;