gpt4 book ai didi

iOS 画圈

转载 作者:可可西里 更新时间:2023-11-01 03:13:35 25 4
gpt4 key购买 nike

我正在尝试在我的 iOS 应用程序中创建下面的圆圈。我知道如何制作圆圈,但不完全确定如何沿着弧线获得点。它必须是代码而不是图像。下面也是我目前拥有的代码。

enter image description here

 - (void)drawRect:(CGRect)rect
{
CGPoint point;
point.x = self.bounds.origin.x + self.bounds.size.width/2;
point.y = self.bounds.origin.y + self.bounds.size.height/2;

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGRect circle = CGRectMake(point.x/2,point.y-point.x/2,point.x,point.x);

CGContextAddEllipseInRect(context, circle);

CGContextStrokePath(context);

for (int i = 0; i<8; i++) {
CGRect circleMini = CGRectMake(??????,??????,point.x/4,point.x/4);

CGContextAddEllipseInRect(context, circleMini);
CGContextStrokePath(context);
}

}

更新回答

 float cita = 0;
for (int i = 0; i<8; i++) {

CGPoint pointCir = CGPointMake(point.x/2 + radius * cos(cita) , (point.y-point.x/2) + radius * sin(cita) );
CGRect circleMini = CGRectMake(pointCir.x,pointCir.y,radius/4,radius/4);

CGContextAddEllipseInRect(context, circleMini);
CGContextStrokePath(context);
cita += M_PI / 4.0;
}

enter image description here

最佳答案

如果 (x,y) 是圆心,r 是大圆的半径,则第 i 个外圆的圆心将是:

  center(i) = ( x + r * cos(cita) , y + r * sin(cita) )

从 0 开始 cita 并为下一个圆(或 45 度)递增 PI/4 弧度

工作实现

CGFloat cita = 0;
CGFloat bigCircleRadius = point.x / 2.0;
CGFloat smallCircleRadius = bigCircleRadius / 4.0;
for (int i = 0; i < 8; i++) {

CGPoint smallCircleCenter = CGPointMake(point.x + bigCircleRadius * cos(cita) - smallCircleRadius/2.0 , point.y + bigCircleRadius * sin(cita) - smallCircleRadius / 2.0 );
CGRect smallCircleRect = CGRectMake(smallCircleCenter.x,smallCircleCenter.y,smallCircleRadius,smallCircleRadius);

CGContextAddEllipseInRect(context, smallCircleRect);
CGContextStrokePath(context);
cita += M_PI / 4.0;
}

编辑:添加了实现并重命名了变量。

关于iOS 画圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15235302/

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