gpt4 book ai didi

objective-c - PaintCode:Circle 维护 A/R?

转载 作者:太空狗 更新时间:2023-10-30 03:44:28 24 4
gpt4 key购买 nike

在 Paintcode 2 中,我在 Canvas 的框架内有一个圆圈。

圆上的约束是这样设置的:

enter image description here

为了让圆变大而不是变成椭圆,我必须

  1. 了解预期的纵横比
  2. 自己用 Objective-C 编写代码

有什么办法绕过这种类型的代码吗?

-(void)drawRect:(CGRect)rect {
if (rect.size.width > rect.size.height) {
rect.origin.x = (rect.size.width - rect.size.height) * .5f;
rect.size.width = rect.size.height;
} else {
rect.origin.y = (rect.size.height - rect.size.width) * .5f;
rect.size.height = rect.size.width;
}
NSLog(@"Frame=%@", NSStringFromCGRect(rect));
[CircleDraw drawCircleWithFrame:rect];
}

最佳答案

  1. 创建 Canvas ,150x120
  2. 创建一个椭圆,10, 10, 100, 100
  3. 创建一个名为 frame 的新变量,类型为矩形:10, 10, 150, 100
  4. 创建一个名为 smallestSide 的新表达式:min(frame.height, frame.width)
  5. 创建一个名为position 的表达式(如下)
  6. 拖动smallestSide到椭圆的高度和宽度
  7. 拖动position到椭圆的位置


位置(表达)

 makePoint(
frame.x+(frame.width-smallestSide)*0.5,
frame.y+(frame.height-smallestSide)*0.5
)


输出

- (void)drawCanvas1WithFrame: (CGRect)frame
{

//// Variable Declarations
CGFloat smallestSide = MIN(frame.size.height, frame.size.width);
CGPoint position = CGPointMake(frame.origin.x + (frame.size.width - smallestSide) * 0.5, frame.origin.y + (frame.size.height - smallestSide) * 0.5);

//// Oval Drawing
UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(position.x, position.y, smallestSide, smallestSide)];
[UIColor.grayColor setFill];
[ovalPath fill];
}

注意: 我在 PaintCode 的 Matt Dunik 的帮助下解决了这个问题,但解决方案实际上非常简单。

关于objective-c - PaintCode:Circle 维护 A/R?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373880/

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