如何使用Core Graphics绘制点?

我在Quartz中看到绘制线条和圆圈的API。 但是我想要做的就是指定(x,y)笛卡尔坐标来给像素着色一个特定的值。 我怎么做?

CGContextFillRect(context, CGRectMake(x,y,1,1)); 

Quartz不是一个面向像素的API,其上下文不一定是像素缓冲区。 如果要绘制像素图,请使用CGBitmapContextCreate()创build一个位图上下文。 您提供了一个缓冲区,您可以直接操作该缓冲区,并可以使用CGImageCreate()从相同缓冲区创buildCGImageCreate()并将其绘制到另一个环境中。

在将线条大小设置为kCGLineCapRound之后,我得到了一个点(零长度线)。 默认的线帽没有长度,所以不能绘制。

一个点没有大小的论点是愚蠢的。 线没有宽度,但我们可以绘制这些(通过使用“线宽”从绘制状态)。 一点应该以完全相同的方式绘制,并且我相信它具有不同的线帽。

也许这个行为是新的?

画一个非常小的椭圆/圆形并填充它!

 CGContextAddEllipseInRect(Context,(CGRectMake (x_dot, y_dot, 3.0, 3.0)); CGContextDrawPath(Context, kCGPathFill); CGContextStrokePath(Context); 

我正在使用此代码在虚线音乐笔记中创build一个小点(3×3像素)。

您可以在所讨论的坐标上绘制1像素长度的线; 那应该完成你想要的。

我有同样的问题 – 我发现最好的解决scheme是类似于最后一个,但至less它不会留下看起来像一个“破折号”的东西…当然,应该确保x / y都> 0 。

CGContextFillRect(context,CGRectMake(x – 0.5,y – 0.5,1.0,1.0));

迅捷3:

  UIRectFill(CGRect(x: x, y: y, width: 1, height: 1))