Autor |
Mensaje |
Alaplancha
Pablo
Aprendiz
Registrado: Agosto 2012
Mensajes: 58
Edad: 58 Ubicación: Madrid
|
Cómo Pintar Un Píxel En Un Drawing Area
Hola,
¿sabéis de qué forma se puede pintar un píxel de coordenadas determinadas x e y, en un Drawing Area? La clase Paint posibilita pintar segmentos, pero me parece excesivo emplearla para pintar un píxel, sería como matar gambas a arponazos.
Gracias y saludos
|
#1 Martes, 26 Enero 2016, 16:45 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
|
#2 Martes, 26 Enero 2016, 17:35 |
|
|
Alaplancha
Pablo
Aprendiz
Registrado: Agosto 2012
Mensajes: 58
Edad: 58 Ubicación: Madrid
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Hola vuott,
gracias por tu respuesta. Como la clase Draw está "deprecated" desde la versión 3.4 de gambas, ya no querría recurrir a ella. Utilizo desde hace tiempo la clase Paint. Con esta última se podría dibujar un segmento, arco, círculo, elipse, etc. de dimensiones mínimas, pero como decía, me parece excesivo. Se echa de menos un método Paint.Point() del mismo modo que existe el Draw.Point().
Saludos
última edición por Alaplancha el Martes, 26 Enero 2016, 18:21; editado 3 veces
|
#3 Martes, 26 Enero 2016, 18:17 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Con esta última se podría dibujar un segmento, arco, círculo, elipse, etc. de dimensiones mínimas, pero como decía, me parece excesivo.
...¿No es formado un segmento quizás de muchos puntos, de muchos elementos de dimensiones mínimas?
|
#4 Miercoles, 27 Enero 2016, 10:10 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Seguí estudiando el asunto.
Probé usando la función externa " XPutPixel( ) " del sistema gráfico X, además de a investigar en la área de memoria de la Estructura " CDRAWINGAREA " del archivo fuente /..../gb.qt4/src/CDrawingArea.h .
Por ahora conseguí otras informaciones, pero no lo que esperé.
última edición por vuott el Jueves, 28 Enero 2016, 01:29; editado 1 vez
|
#5 Jueves, 28 Enero 2016, 00:47 |
|
|
Alaplancha
Pablo
Aprendiz
Registrado: Agosto 2012
Mensajes: 58
Edad: 58 Ubicación: Madrid
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Hola vuott,
gracias por tu interés. Yo no sé tanto como para meterme por ahí.
Saludos
|
#6 Jueves, 28 Enero 2016, 16:08 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Yo no sé tanto como para meterme por ahí.
Yo sería concreto: usaría los recursos de Paint.
Saludos
|
#7 Jueves, 28 Enero 2016, 16:24 |
|
|
Alaplancha
Pablo
Aprendiz
Registrado: Agosto 2012
Mensajes: 58
Edad: 58 Ubicación: Madrid
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Hola vuott y gracias,
tienes razón, toda otra solución, hoy por hoy, es mucho más complicada. Utilizaré los recursos disponibles en la clase Paint. No obstante, pienso que se podría pedir a Benoît que piense en añadir el método Paint.Point() para alguna próxima versión.
Saludos
|
#8 Jueves, 28 Enero 2016, 18:24 |
|
|
vicr
Técnico Programador
Registrado: Septiembre 2013
Mensajes: 158
Edad: 47
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Hola, Alaplancha
De cierta manera una linea es un punto que se mueve y va dejando su rastro, y según eso un punto no sería una linea que comienza y termina en el mismo lugar.
Digo con afán de ayudar, aunque sea un arponazo. (Creo que eso es lo dijo Vuott anteriormente)
(por cierto nunca he hecho dibujos en gambas, creo que algo vi en Javascript para Canvas y allí tampoco hay punto).
Hasta pronto...
|
#9 Jueves, 28 Enero 2016, 19:36 |
|
|
Alaplancha
Pablo
Aprendiz
Registrado: Agosto 2012
Mensajes: 58
Edad: 58 Ubicación: Madrid
|
Re: Cómo Pintar Un Píxel En Un Drawing Area
Hola vicr,
esto del punto y la recta nos daría para largas e interesantes conversaciones. Para el arte son una cosa, para las matemáticas otra y para la informática otra distinta. La Tierra misma, como diría más o menos Carl Sagan, es un hermoso punto azul perdido en las inmensidades del océano cósmico (qué porrón de gambas me imagino, ¡cielos!, en un océano cósmico). No conozco el algoritmo para dibujar una línea, pero imagino que hace un barrido horizontal y otro vertical, intersecta esas líneas horizontales y verticales con nuestro segmento, y esos píxeles intersección son los que pinta. A lo mejor el algoritmo calcula cuanto mide la huella y la contrahuella de la escalera de píxeles que hay que subir y eso es más fácil que dos barridos horizontal y vertical, un algoritmo alternativo. A todo eso hay que añadirle el anti-aliased que hace la clase Paint, por lo que cada píxel de los anteriores se rodea de una nube de puntos de distintas tonalidades más claras creando una gradación suave en lugar de un efecto de escalera. Eso por no hablar del grosor de una línea, sus extremidades, su textura, su patrón de trazos... Pintar un solo punto ha de requerir forzosamente un algoritmo más sencillo y eficiente. Espero que en alguna próxima versión de gambas Benoît se marque un puntazo incluyendo Paint.Point().
Saludos
|
#10 Sabado, 30 Enero 2016, 09:28 |
|
|
|