Подтвердить что ты не робот

Как рисовать точку с помощью Core Graphics?

Я вижу API в Quartz для рисования линий и кругов. Но все, что я хочу сделать, это указать (x, y) декартовую координату для цветного пикселя определенного значения. Как это сделать?

4b9b3361

Ответ 1

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

Ответ 2

Quartz не является ориентированным на пиксели API, и его контексты не обязательно являются пиксельными буферами. Если вы хотите рисовать pixmaps, создайте контекст растрового изображения с помощью CGBitmapContextCreate(). Вы предоставляете буфер, который вы можете манипулировать напрямую, и можете копировать в другой контекст, создав CGImage из того же буфера с помощью CGImageCreate() и рисуя его.

Ответ 3

У меня есть точка (линия нулевой длины) для рисования после установки строк в kCGLineCapRound. По умолчанию длина линии не имеет длины, поэтому ее нельзя рисовать.

Аргумент о том, что точка не имеет размера, глупо. Линии не имеют ширины, но мы можем их нарисовать (используя "ширину линии" из состояния рисования). Точка должна рисоваться точно так же, и с разными строками, я считаю, что это так.

Возможно, это новое поведение?

Ответ 4

Нарисуйте очень маленький эллипс/круг и заполните его!

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

Я использую этот код для создания маленькой точки (3 × 3 пикселя) в пунктирной нотной записке.

Ответ 5

Вы можете нарисовать линию длиной 1 пиксель в соответствующей координате; который должен выполнить то, что вы хотите.

Ответ 6

У меня такая же проблема - я считаю, что лучшее решение похоже на последнее, но по крайней мере оно не оставляет что-то похожее на "тире"... конечно, должно гарантировать, что x/y обa > 0.

CGContextFillRect (контекст, CGRectMake (x - 0,5, y - 0,5, 1,0, 1,0));

Ответ 7

swift 3:

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