Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Una De Colores, Paletas Y Demás Yerbas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Una De Colores, Paletas Y Demás Yerbas 
 
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!
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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:

Public Procedure Recorrer()
im arrByt As Integer[]
Dim i As Integer

For i=0 To arrByt.Count - 1
drawingArea1.ForeColor=arrByt[i]
' Aquí haces lo que tengas que hacer para dibujar
Next
End

 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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....   )
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Una De Colores, Paletas Y Demás Yerbas 
 
¿Draw.Point no es por píxel?
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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!!!)
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"  
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Variables Por Referencia, Punteros Y Demás soplo General 4 Lunes, 22 Febrero 2010, 21:34 Ver último mensaje
soplo
No hay nuevos mensajes Sobre Control Heredado De GridView (para F... shordi Controles/Librerías/Componentes 7 Martes, 10 Agosto 2010, 20:04 Ver último mensaje
shordi
No hay nuevos mensajes Colores En ListBox jsoto61 Controles/Librerías/Componentes 3 Martes, 22 Febrero 2011, 11:15 Ver último mensaje
Shell
No hay nuevos mensajes Gráficos De Tarta, Columnas Y Demás shordi General 7 Jueves, 27 Febrero 2014, 11:02 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No 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



  

 

cron