我在Quartz中看到用于绘制线条和圆圈的API。但我想要做的就是指定(x,y)笛卡尔坐标以将像素着色为特定值。我该怎么做?
答案 0 :(得分:21)
CGContextFillRect(context, CGRectMake(x,y,1,1));
答案 1 :(得分:13)
Quartz不是面向像素的API,其上下文不一定是像素缓冲区。如果要绘制像素图,请使用CGBitmapContextCreate()
创建位图上下文。您提供了一个可以直接操作的缓冲区,并可以通过使用CGImage
从同一缓冲区创建CGImageCreate()
并绘制该缓冲区来复制到另一个上下文。
答案 2 :(得分:7)
在将线帽设置为kCGLineCapRound之后,我得到了一个点(零长度线)。默认的线帽没有长度,因此无法绘制。
一个点没有大小的论点是愚蠢的。线条没有宽度,但我们可以绘制(通过使用绘制状态的“线宽”)。一个点应该以完全相同的方式绘制,并且我相信它具有不同的行数。
也许这种行为是新的?
答案 3 :(得分:7)
绘制一个非常小的椭圆/圆圈并填充它!
CGContextAddEllipseInRect(Context,(CGRectMake (x_dot, y_dot, 3.0, 3.0));
CGContextDrawPath(Context, kCGPathFill);
CGContextStrokePath(Context);
我正在使用此代码在虚线音符中创建一个小点(3x3像素)。
答案 4 :(得分:4)
您可以在相关坐标处绘制1像素长的线;应该达到你想要的效果。
答案 5 :(得分:0)
我遇到了同样的问题 - 我发现最好的解决方案与上一个类似,但至少它不会留下看起来像“破折号”的东西...当然,应该确保x / y是两者都是> 0
CGContextFillRect(context,CGRectMake(x - 0.5,y - 0.5,1.0,1.0));
答案 6 :(得分:0)
迅捷3:
UIRectFill(CGRect(x: x, y: y, width: 1, height: 1))