Iphone 如何确定通过核心图形绘制的正方形中每个像素的位置?
我正在尝试使用核心图形绘制正方形的每个像素点。在这里,通过使笔划颜色为黑色,我正在绘制正方形。请告诉我如何获得绘制该正方形的所有像素点Iphone 如何确定通过核心图形绘制的正方形中每个像素的位置?,iphone,cocoa,cocoa-touch,core-graphics,Iphone,Cocoa,Cocoa Touch,Core Graphics,我正在尝试使用核心图形绘制正方形的每个像素点。在这里,通过使笔划颜色为黑色,我正在绘制正方形。请告诉我如何获得绘制该正方形的所有像素点 - (void)drawRect:(CGRect)rect { CGMutablePathRef path = CGPathCreateMutable(); CGContextRef ctx = UIGraphicsGetCurrentContext(); CGPathMoveToPoint(path, NULL, 30.0f, 3
- (void)drawRect:(CGRect)rect
{
CGMutablePathRef path = CGPathCreateMutable();
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGPathMoveToPoint(path, NULL, 30.0f, 30.0f);
CGPathAddLineToPoint(path, NULL, 130.0f, 30.0f);
CGPathAddLineToPoint(path, NULL, 130.0f, 130.0f);
CGPathAddLineToPoint(path, NULL, 30.0f, 130.0f);
CGPathCloseSubpath(path);
CGPathRetain(path);
CGContextSetFillColorWithColor(ctx, [UIColor clearColor].CGColor);
CGContextSetStrokeColorWithColor(ctx,[UIColor blackColor].CGColor);
CGContextSetLineWidth(ctx, 2.0);
CGContextSaveGState(ctx);
CGContextAddPath(ctx, path);
CGContextRestoreGState(ctx);
CGContextStrokePath(ctx);
CGContextRestoreGState(ctx);
CGContextRestoreGState(ctx);
[self setNeedsDisplay];
CGPathRelease(path);
}
你为什么要做这些工作而不是仅仅使用
CGContextFillRect()
和CGContextStrokeRect()
您的上述代码可以简化为:
CGRect r = CGRectMake(30.0, 30.0, 100.0, 100.0);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(ctx, CGColorGetConstantColor(kCGColorClear));
CGContextFillRect(ctx, r);
CGContextSetLineWidth(ctx, 2.0);
CGContextSetStrokeColorWithColor(ctx, CGColorGetConstantColor(kCGColorBlack));
CGContextStrokeRect(ctx, r);
另外,从不发送
-setNeedsDisplay
在-drawRect:
方法中显示。你会得到一个无限循环。我需要为我的iPhone应用程序做一些类似的事情,虽然我意识到有点晚了,但我还是决定响应
首先,初始化可变数组(点)
接下来,找到CGRect的最小X和Y坐标。
对最大值执行相同的操作
找出最小值和最大值之间的差异
现在,创建一个for循环,如下所示:
for(int x = minX; x<diffX+minX; x++){
for(int y = minY; y<diffY+minY; y++){
[points addObject:[NSValue valueWithCGPoint:CGPointMake(x,y)]];
}
}
for(int x=minX;xIs)这是一个技巧性问题吗?我会毫不犹豫地说,分数是(30,30)、(130,30)、(130,130)和(30,130)。我遗漏了什么吗?请详细说明你的意思。