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?Wie zeichne ich einen Punkt mit Core Graphics?
Antwort
Sie können eine Linie mit einer Länge von 1 Pixel an der betreffenden Koordinate zeichnen; das sollte erreichen, was du willst.
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 zur Verfügung, den Sie direkt manipulieren können, und können in einen anderen Kontext kopieren, indem Sie CGImage
aus demselben Puffer erstellen und dazu CGImageCreate()
verwenden.
CGContextFillRect(context, CGRectMake(x,y,1,1));
ich das gleiche Problem habe - ich finde, die beste Lösung für die letzten ähnlich ist, aber zumindest ist es nicht etwas hinterlassen, das wie ein „Strich“ ... natürlich aussieht, soll sicherstellen, x/y sind beide> 0.
CGContextFillRect (Kontext, CGRectMake (x - 0,5, y - 0,5, 1,0, 1,0));
Ich habe einen Punkt (Null-Länge-Linie) zu zeichnen nach dem Setzen der Line-Caps auf kCGLineCapRound. Das Standard-Line-Cap 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?
Zeichnen Sie eine sehr kleine Ellipse/Kreis und füllen Sie es!
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 erstellen.
swift 3: „Das Argument, dass ein Punkt hat keine Größe albern ist“
UIRectFill(CGRect(x: x, y: y, width: 1, height: 1))
- 1. Wie zeichne ich einen Punkt innerhalb einer Instanz von UIImageView?
- 2. Draw Text Core Graphics in iphone
- 3. Wie zeichne ich einen Kreis mit java.awt.Graphics?
- 4. Learning Core Graphics
- 5. Wie kann ich binäre Bilddateien mit Core Graphics lesen?
- 6. Wie zeichne ich mit den Graphics- oder Graphics2D-Klassen von Java einen String?
- 7. Rechteck zeichnet Auf UIImage mit Core Graphics
- 8. Core Graphics für Retina-Display
- 9. Core Graphics Rotieren eines Pfades
- 10. Wie würde ich so etwas in Core Graphics zeichnen
- 11. Wie kann ich mit Core Graphics einen Kreis an meinem Touch-Ort zeichnen?
- 12. Wie zeichne ich einen Ellipsenbogen mit CoreGraphics?
- 13. iOS SDK Core Graphics Spielobjekt Rotation?
- 14. Wie kann ich Bogen mit Core Graphics ziehen und wie kann ich drehen, dass arc
- 15. Wie zeichne ich einen String mit dem vorletzten Punkt (.) In Java?
- 16. Wie zeichne ich einen Würfel (3D-Box) um einen Punkt in MATLAB?
- 17. Wie zeichne RGBA Punkt auf der Bühne?
- 18. Core Graphics Text ist viel schneller als Core-Text - ich fühle mich wie ich bin fehlt etwas
- 19. Wie zeichne ich einen Kreis in UILabel?
- 20. Wie zeichne ich einen BitmapFont in LibGDX?
- 21. Wie zeichne ich einen Pfeil in Silverlight
- 22. iOS: Wie zeichne ich einen Keil?
- 23. Core Graphics zeichnet nicht wie erwartet, wenn Steigung gegeben
- 24. zeichne Grafiken mit MIT-Schema
- 25. Wie zeichne ich einen Knoten in gegebenen Koordinaten mit JUNG
- 26. Wie zeichne ich einen Stern mit Leinwand HTML5?
- 27. Wie zeichne ich einen festen Kreis mit cocos2d für iPhone
- 28. Wie zeichne ich einen GdkPixbuf mit GTK3 und PyGObject
- 29. Wie zeichne ich einen Kreis in swift mit SpriteKit?
- 30. Wie zeichne ich einen Kreis in Silverlight mit Koordinaten?
Nein ist es nicht. Ein Punkt ist genau das: Ein einzelner Punkt. Größe ist der Abstand zwischen mindestens einem Punktepaar. Die Linienkappen sind zusätzlich zur Länge der Linie, die Sie zeichnen; im Fall einer runden Kappe ist der Radius die halbe Linienbreite, so dass eine Nulllinie mit runden Kappen bei einer Linienbreite von 1 pt zwei Kappen mit einem Radius von 1/2 pt mit nichts dazwischen zieht und somit einen Kreis von 1 bildet pt Durchmesser. Und nein, dieses Verhalten ist nicht neu: Line-Caps und die meisten anderen Quartz-Dateien kamen mit PostScript aus dem Jahr 1985. –
Ich wollte damit nicht sagen, dass ein Punkt eine Größe hat, nur dass es fehlt Größe ist eine alberne Entschuldigung, um nicht zeichnen zu können. Eine Linie (als ein mathematisches Konzept) hat keine Breite, aber wir können das gut zeichnen. Das Zeichnen einer "Null-Längenlinie" mit runden Kappen bringt einen Punkt auf den Bildschirm mit dem Liniendurchmesser. Die runden Kappen bieten im Wesentlichen eine "Punktdurchmesser" -Einstellung. Wenn jedoch das ursprüngliche Poster speziell die Farbe eines Bildschirmpixels festlegen soll, sollte dies durch Setzen von Werten direkt in einem Bitmap-Kontext und nicht mit den pfadbasierten Zeichenroutinen erfolgen. – Chad
Das ist, was ich gesucht habe! CGContextSetLineWidth (gewünschteWeite); CGContextSetLineCap (UIGraphicsGetCurrentContext(), kCGLineCapRound); Zeichnen Sie dann eine Linie vom Punkt zu sich selbst. – rmp251