Hola!
Tengo una pregunta más....y me temo no será la última
Tengo una paleta de 256 colores, codificados cada uno como un byte, de 00 a FF. Tengo que dibujar cosas usando esa paleta. Se trata de ...."caracteres" de 16x16 pixeles, donde cada pixel está representado por un byte que determina su color. O sea...cada caracter ocupa 256 bytes (lo mismo que la paleta, pero es casualidad)
Asigno el color de dibujo con draw.ForeColor = ...... pero no quiero tener que hacer 256 "IF" por pixel para ver si tengo que usar el color 1, el dos, el tres...etc.
Lo primero que se me ocurre es usar un array de 256 elementos, que tenga para cada valor del indice el RGB correspondiente a ese valor dentro de la paleta (siento que lo estoy explicando fatal...perdon!)
¿Esa será la mejor forma?
Estoy seguro que asi va a funcionar, y que será razonablemente rápido. Pero como tengo que dibujar 240 de esos boloques de 16x16, me interesa que sea lo más rápido posible, por eso me animé a exponerles el problema a ver si tenian algun otro enfoque que valga la pena analizar.
Gracias!
Una De Colores, Paletas Y Demás Yerbas
Objetivo: Re: Una De Colores, Paletas Y Demás Yerbas
Pues no he entendido muy bien, pero parece que es dibujar en un DrawingArea algo, por píxel. Como has dicho, haces un array y lo recorres con For...Next:
Objetivo: Re: Una De Colores, Paletas Y Demás Yerbas
Perfecto!
Me parecia que era la forma adecuada, pero siempre es bueno tener la opinion de los que saben
Ya que estamos, te pregunto: Cada "pixel" van a ser en realdiad 4. Es decir, pienso hacer (por cada bit) algo como
pongo_punto(x,y)
pongo_punto(x+1 ,y)
pongo_punto(x,y+1)
pongo_punto(x+ 1,y+1)
por supuesto cuidando de que X e Y siempre sean numeros pares (o impares) como para no superponer nada. Eso ya lo tengo funcionando, sin problemas.
Pero....tengo que hacer 4 veces mas cosas que si pudiese poner puntos "de 2x2 pixeles". ¿Se puede hacer eso? Se como cambiar el grosor de una linea (draw.LineWidth = n).....pero....¿existe algo parecido para los puntos?
Creo que con eso no pregunto mas (por hoy.... )
Me parecia que era la forma adecuada, pero siempre es bueno tener la opinion de los que saben
Ya que estamos, te pregunto: Cada "pixel" van a ser en realdiad 4. Es decir, pienso hacer (por cada bit) algo como
pongo_punto(x,y)
pongo_punto(x+1 ,y)
pongo_punto(x,y+1)
pongo_punto(x+ 1,y+1)
por supuesto cuidando de que X e Y siempre sean numeros pares (o impares) como para no superponer nada. Eso ya lo tengo funcionando, sin problemas.
Pero....tengo que hacer 4 veces mas cosas que si pudiese poner puntos "de 2x2 pixeles". ¿Se puede hacer eso? Se como cambiar el grosor de una linea (draw.LineWidth = n).....pero....¿existe algo parecido para los puntos?
Creo que con eso no pregunto mas (por hoy.... )
Objetivo: Re: Una De Colores, Paletas Y Demás Yerbas
Exacto, y es eso es lo que uso.
Pero lo que necesito es dibujar "pixeles" de 2x2, SIEMPRE....por eso pensaba en si no habria una forma de predeterminar que Draw.Point los haga de ese tamaño, o bien de que el "paño" de dibujo este "escalado" a 2x, de forma que todo se vea el doble de grande...(estoy delirando de lo lindo, pero si existe algo asi, disminuyo el tiempo de dibujo en un factor de 4!!!)
Pero lo que necesito es dibujar "pixeles" de 2x2, SIEMPRE....por eso pensaba en si no habria una forma de predeterminar que Draw.Point los haga de ese tamaño, o bien de que el "paño" de dibujo este "escalado" a 2x, de forma que todo se vea el doble de grande...(estoy delirando de lo lindo, pero si existe algo asi, disminuyo el tiempo de dibujo en un factor de 4!!!)
Objetivo: Re: Una De Colores, Paletas Y Demás Yerbas
Pues no, ya habría que modificar el código fuente en C++, para ver si el tamaño (4) está definido por el componente, o por causas más "internas" es decir, el propio DrawingArea de QT. Iba a preguntarte que gambas usas, pero ya me di cuenta debido al "ForeColor"
Objetivo: Re: Una De Colores, Paletas Y Demás Yerbas
Igual y si usas lineas en vez de puntos, y "seteando" el ancho de linea.
http://gambasdoc.org/help/comp/gb.qt/draw
http://gambasdoc.org/help/comp/gb.qt/draw
Objetivo: Re: Una De Colores, Paletas Y Demás Yerbas
Si, lo habia pensado!
Tengo que comprobar que sea más rápido hacer una linea de ancho 2 y largo 2 que poner cuatro puntos individuales. Dibujar unos cuantos miles y tomar el tiempo, a ver que conviene mas.
Tengo que comprobar que sea más rápido hacer una linea de ancho 2 y largo 2 que poner cuatro puntos individuales. Dibujar unos cuantos miles y tomar el tiempo, a ver que conviene mas.
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.4196s (PHP: -83% SQL: 183%)
Consultas SQL: 45 - Debug off - GZIP Activado