Veo las API en Cuarzo para dibujar líneas y círculos. Pero todo lo que quiero hacer es especificar la coordenada cartesiana (x, y) para colorear un píxel de un valor particular. ¿Cómo puedo hacer eso?¿Cómo hago un punto usando Core Graphics?
Respuesta
Puede dibujar una línea de 1 píxel de longitud en la coordenada en cuestión; eso debería lograr lo que quieres.
Quartz no es una API orientada a píxeles, y sus contextos no son necesariamente búferes de píxeles. Si desea dibujar pixmaps, cree un contexto de mapa de bits con CGBitmapContextCreate()
. Proporciona un búfer, que puede manipular directamente y puede copiar a otro contexto creando un CGImage
desde el mismo búfer usando CGImageCreate()
y dibujando eso.
CGContextFillRect(context, CGRectMake(x,y,1,1));
estoy teniendo el mismo problema - me parece la mejor solución es similar a la anterior, pero al menos no dejar algo que se parece a un "guión" ... por supuesto, debe asegurarse x/y son ambos> 0
CGContextFillRect (contexto, CGRectMake (x - 0.5, y - 0.5, 1.0, 1.0));
Obtuve un punto (línea de longitud cero) para dibujar después de establecer los límites de línea a kCGLineCapRound. El límite de línea predeterminado no tiene longitud, por lo que no se puede dibujar.
El argumento de que un punto no tiene tamaño es tonto. Las líneas no tienen ancho pero podemos dibujarlas (usando el "ancho de línea" desde el estado de dibujo). Un punto debe dibujar exactamente de la misma manera, y con diferentes límites de línea, creo que sí.
Tal vez este comportamiento es nuevo?
¡Dibuja una elipse/círculo muy pequeño y llénalo!
CGContextAddEllipseInRect(Context,(CGRectMake (x_dot, y_dot, 3.0, 3.0));
CGContextDrawPath(Context, kCGPathFill);
CGContextStrokePath(Context);
Estoy utilizando este código para crear un pequeño punto (3x3 píxeles) en una nota musical punteada.
rápida 3: “El argumento de que un punto no tiene tamaño es tonta”
UIRectFill(CGRect(x: x, y: y, width: 1, height: 1))
- 1. Core Image vs Core Graphics
- 2. Learning Core Graphics
- 3. Core Graphics sistema de coordenadas
- 4. Core Graphics & GIF Color Table
- 5. Biselando una ruta/forma en Core Graphics
- 6. Ventajas de utilizar Core Graphics
- 7. Cómo dibujar un rectángulo redondeado en Core Graphics/Quartz 2D?
- 8. Ruido Gaussiano solo con Core Graphics?
- 9. ¿Cómo hacer un degradado cónico en iOS usando Core Graphics/Quartz 2D?
- 10. Cómo dibujaría algo como esto en Core Graphics
- 11. Core Graphics Vs Imágenes para un botón personalizado
- 12. ¿Cómo hago un punto simple "." en HAML?
- 13. Cambiar el tamaño de la imagen en Core Graphics
- 14. Usando Core Graphics/Cocoa, ¿puedes dibujar en un contexto de mapa de bits desde un hilo de fondo?
- 15. ¿Obliga a una ventana a redibujarse utilizando Core Graphics?
- 16. iPhone Core Graphics línea discontinua más gruesa para la subvista
- 17. ¿Qué partes de UIKit, Core Graphics, Core Animation, OpenGL están permitidas en no main-thread?
- 18. ¿Es seguro este hilo del código de Core Graphics?
- 19. ¿Cómo hago esto usando guayaba?
- 20. Cómo dibujar una línea de degradado (fundido de entrada/salida) con Core Graphics/iPhone?
- 21. Cómo crear efectos en relieve o en la sombra con Core Graphics (para pintura de dedos)
- 22. ¿Cómo almacenar CLLocation usando Core Data (iPhone)?
- 23. En el desarrollo de iOS, usando Core Graphics y/o Quartz 2D, ¿cómo puedo dibujar un círculo lleno de un degradado de tal manera que parezca una esfera?
- 24. ¿cómo hago una solicitud $ .get usando coffeescript?
- 25. ¿Por qué UIBezierPath es más rápido que la ruta de Core Graphics?
- 26. Seleccionar un punto por ID usando Highcharts
- 27. Java Graphics library
- 28. GROUP BY con SUM() usando Core Data
- 29. ¿Cómo hago un recurso PNG?
- 30. ¿Cómo hago un subproyecto con Qt?
No, no lo es. Un punto es solo eso: un solo punto. El tamaño es la distancia entre al menos un par de puntos. Los límites de línea son adicionales a la longitud de la línea que dibuja; en el caso de una tapa redonda, el radio es la mitad del ancho de la línea, por lo que una línea de longitud cero con tapas redondas con un ancho de línea de 1 pt dibuja dos tapones de radio de 1/2 pt sin nada en medio, formando así un círculo de 1 diámetro de pt. Y no, ese comportamiento no es nuevo: los límites de línea, y la mayoría del resto de Quartz, vinieron a través de PDF desde PostScript, que data de 1985. –
No quise sugerir que un punto tenga tamaño, solo que su falta de el tamaño es una excusa tonta para no poder dibujarlo. Una línea (como concepto matemático) no tiene ancho, pero podemos dibujarlo bien. Dibujar una "línea de longitud cero" con tapas redondas representa un punto en la pantalla con el diámetro del ancho de línea. Las tapas redondas ofrecen esencialmente un ajuste de "diámetro de punto". Pero, si el póster original busca específicamente establecer el color de un píxel de pantalla, debe hacerse estableciendo los valores directamente en un contexto de mapa de bits y no con las rutinas de dibujo basadas en rutas. – Chad
¡Esto es lo que estaba buscando! CGContextSetLineWidth (desiredWidth); CGContextSetLineCap (UIGraphicsGetCurrentContext(), kCGLineCapRound); Luego dibuja una línea desde el punto a sí mismo. – rmp251