Frage Wie zeichne ich einen Punkt mit Core Graphics?


Ich sehe APIs in Quartz zum Zeichnen von Linien und Kreisen. Aber ich möchte nur die kartesische (x, y) -Koordinate angeben, um ein Pixel mit einem bestimmten Wert zu versehen. Wie mache ich das?


16
2017-11-23 21:55


Ursprung


Antworten:


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

21
2017-11-26 22:58



Quartz ist keine pixelorientierte API und seine Kontexte sind nicht unbedingt Pixelpuffer. Wenn Sie Pixmaps zeichnen möchten, erstellen Sie einen Bitmap-Kontext mit CGBitmapContextCreate(). Sie stellen einen Puffer bereit, den Sie direkt bearbeiten können, und können in einen anderen Kontext kopieren, indem Sie einen erstellen CGImage aus dem gleichen Puffer mit CGImageCreate() und zeichne das.


13
2017-11-24 08:59



Ich habe einen Punkt (Null-Länge-Linie) zu zeichnen, nachdem ich die Line-Caps auf kCGLineCapRound gesetzt habe. Die Standard-Zeilenbegrenzung hat keine Länge und kann daher nicht gezeichnet werden.

Das Argument, dass ein Punkt keine Größe hat, ist albern. Die Linien haben keine Breite, aber wir können diese zeichnen (indem wir die "Linienbreite" aus dem Zeichnungszustand verwenden). Ein Punkt sollte genau so gezeichnet werden, und mit unterschiedlichen Linienzahlen glaube ich, dass es das tut.

Vielleicht ist dieses Verhalten neu?


7
2018-02-06 01:01



Zeichne eine sehr kleine Ellipse / Kreis und fülle sie!

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

Ich verwende diesen Code, um einen kleinen Punkt (3x3 Pixel) in einer punktierten Musiknote zu erzeugen.


6
2017-11-28 00:47



Sie können eine 1 Pixel lange Linie an der betreffenden Koordinate zeichnen. das sollte erreichen, was du willst.


4
2017-11-23 22:27



Ich habe das gleiche Problem - ich finde die beste Lösung ist ähnlich wie die letzte, aber zumindest nicht etwas, das aussieht wie ein "Strich" ... natürlich sollte x / y sind beide> 0 .

CGContextFillRect (Kontext, CGRectMake (x - 0,5, y - 0,5, 1,0, 1,0));


0
2017-12-29 23:05



schnelle 3:

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

0
2018-04-29 09:19