繁体   English   中英

如何使用 Core Graphics 绘制点?

[英]How do I draw a point using Core Graphics?

我在 Quartz 中看到了用于绘制线条和圆形的 API。 但我想要做的就是指定 (x,y) 笛卡尔坐标以将像素着色为特定值。 我怎么做?

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

Quartz 不是面向像素的 API,它的上下文不一定是像素缓冲区。 如果要绘制像素图,请使用CGBitmapContextCreate()创建位图上下文。 您提供了一个可以直接操作的缓冲区,并且可以通过使用CGImageCreate()从同一缓冲区创建一个CGImage并绘制它来复制到另一个上下文。

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

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

我正在使用此代码在带点音符的音符中创建一个小点(3x3 像素)。

将线帽设置为 kCGLineCapRound 后,我得到了一个要绘制的点(零长度线)。 默认线帽没有长度,因此无法绘制。

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

也许这种行为是新的?

您可以在相关坐标处绘制一条 1 像素长的线; 这应该完成你想要的。

我遇到了同样的问题 - 我发现最好的解决方案与最后一个类似,但至少它不会留下看起来像“破折号”的东西......当然,应该确保 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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM