我在用Objective-C计算圆上的点时花了很多时间。即使在阅读了其他代码示例的TONS之后,我的圈子仍然偏离中心。 (并且考虑了“居中”与“原始”,并针对UIView的大小进行了调整,在本例中为UIButton。)

这是我正在使用的代码。圆正确地形成,它偏离中心。我不确定这是否是弧度与度的问题或其他问题。这是ViewController中的一个辅助函数,该函数以编程方式创建UIButton并将其添加到视图中:

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

谢谢您的帮助!

最佳答案

您按钮的中心(即圆上的点)为

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

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

09-27 12:23