Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2012
gusspagano gusspagano is offline
Miembro
 
Registrado: mar 2012
Posts: 47
Poder: 0
gusspagano Va por buen camino
ok, si conozco los valores extremos de x y de y, entonces con esto creo un bitmap. Ahora, solo tengo un valor de Z, me parece que hay forma de determinar el color con un solo valor ¿o no?

Y bueno, la imágen que trato de crear es precipitación. Tengo el valor de lluvia para cada ubicación y ahorra quiero crear la imagen para darle mayor sentido visualmente, ya que no es lo mismo ver una tabla con un monton de números. Después de la tener la imagen, tal vez puda encimar un mapa de una ciudad o una cuenca, algo por el estilo. ¿Creen que se pueda o me voy a complicar demasiado?
Responder Con Cita
  #2  
Antiguo 22-10-2012
Avatar de bosster_018
bosster_018 bosster_018 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Bolivia
Posts: 127
Poder: 15
bosster_018 Va por buen camino
Tal vez sea esto

No puede entender tu duda, pero por el título me hizo recordar un ejemplo que una vez postearon en el ClubDelphi titulado: "Código sin utilidad"

Y en ese Hilo muestran como dibujar un texto usando letras:

http://www.clubdelphi.com/foros/showthread.php?t=41240

Saludos
Responder Con Cita
  #3  
Antiguo 22-10-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por gusspagano Ver Mensaje
Ahora, solo tengo un valor de Z, me parece que hay forma de determinar el color con un solo valor ¿o no?
Supongo que sí, si te restringes, por ejemplo, a 256 colores. Pero tienes, creo, que manejar una paleta de colores, o sea, decir a qué coor corresponde cada entero. Pero esto escapa de mis conocimientos.

// Saludos
Responder Con Cita
  #4  
Antiguo 22-10-2012
gusspagano gusspagano is offline
Miembro
 
Registrado: mar 2012
Posts: 47
Poder: 0
gusspagano Va por buen camino
Bueno, creo que tengo que invetigar algo sobre como asignar colores a los valores que tengo, y tambien sobre los bitmap.

Creo que el problema es demasiado simple para ustedes, tanto que teminan buscando mas allá, y terminan sin entender. La cuestion es como crear una imagen, eso es todo.

Gracias Roman, Casimiro Notevi, y bosster_018 por tu ayuda.
Responder Con Cita
  #5  
Antiguo 22-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No es que sea muy simple para nosotros (ni muy dificil), el problema es que no has dicho exactamente qué es lo que quieres hacer. ¿Hacer una imagen?, ¿pero cómo quieres usar esos valores para crear una imagen?
Realmente parece que tienes los puntos para una proyección "3D", ya que pueden ser los valores x,y,z para una imagen de este tipo:
Imágenes Adjuntas
Tipo de Archivo: jpg xyz.jpg (4,9 KB, 9 visitas)
Responder Con Cita
  #6  
Antiguo 22-10-2012
gusspagano gusspagano is offline
Miembro
 
Registrado: mar 2012
Posts: 47
Poder: 0
gusspagano Va por buen camino
Pues si mi estimado Casimiro, lo que quiero es hacer una imagen, dónde según yo el valor de X me dice en qué columna estoy, el valor de Y me dice la fila, y el valor de Z No es una componente espacial, Z es el atributo, o sea, el valor con el cual voy a asignarle un color al pixel correspondiente.

El resultado seria una imagen 2D de 8 bits (0-255 colores, como dice Roman).

Ahora, no tengo por ejemplo, columna1 fila1, coluna1 fila2. Más bien tengo proyecciones (coordenadas UTM) x,y (latitud, longitud, por decirlo así) y mi Z son valores de reflectividad (perdón hace rato dije lluvia), que quiero representar mediante colores.

No tengo problemas en convertir mis proyecciones en valores de filas y columnas (si es que se requiere), lo que pasa es que no sé cómo se hace una imagen, ni cómo asignar colores a mis valores de Z.
Responder Con Cita
  #7  
Antiguo 22-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, si te he entendido bien, te sirve un componente TChart, le puedes pasar los valores y elegir el tipo de gráfico además del color.
Échale un vistazo a ver si es lo que necesitas. No recuerdo en qué pestaña está
Responder Con Cita
  #8  
Antiguo 23-10-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Si dices que puedes asociar cada punto (X,Y) con el pixel (X,Y) de la imagen no debiera de ser problemas entonces de pintar dicho pixel.

Si buscas sobre Scanline() encontrarás varios hilos con muestras de código, Con ScanLine() te puedes posicionar en una fila determinada de la imagen. De hecho ScanLine() regresa un puntero al primer elemento de dicha fila. Ahora para moverse sobre las "columnas" basta con incrementar dicha cantidad de veces el puntero para acceder a dicho pixel en cuestión.

Por ejemplo: acceder al pixel (14, 50):

Código Delphi [-]
p := Picture.Bitmap.Scanline(14);
inc(p,50);

Ahora en el puntero p estamos en (14,50), recordando que en realidad el sistema de coordenadas en una imagen es (columna, fila).

Para pintar el pixel, si el formato es de 24bits (RGB) entonces:

Código Delphi [-]
p^[0] := tono_rojo;
p^[1] := tono_verde;
p^[2] := tono_azul;

Siendo tono_x un valor comprendido entre [0,255]. En lo que estoy dudando es si 0 correspondía al rojo o al azul. No estoy con delphi ahorita como para comprobar.

Tu problema es tu falta de criterio en determinar que color asociar a cada posible valor de Z. Naturalmente en última se resumirá en hacer alguna forma de relacionar el rango [Z-menor, Z-mayor] con el rango [color-min, color-max]. Pero no te podemos ayudar en eso... es algo que tu debes definirlo. Si tu idea es pintar un mapa con colores que distingan los niveles de precipitaciones debes entonces tu mismo definir que colores... Los colores habituales que usan la mayoría es verde, amarillo, naranja, rojo. y asocian entonces a cada uno ciertos rangos que estén entre los máximos y mínimos.

Como ves, eso ya no es cosa nuestra. sino tu falta de comprensión de como componer un color. Como he dicho: revisa los foros sobre Scanline(), y ni que decir... ¡estudia algo sobre RGB! El rojo se forma con (255,0,0) mientras que verde es (0,0,255), amarillo es (255,0,255) por mencionar algunos.

Si accedes mediante Scanline() debes descomponer la imagen en sus componentes RGB para formar el color... si accedes mediante Pixels[] lo accedes de forma numérica, el tipo cardinal para ser exacto, y no hay que "descomponerlo". Lee la ayuda sobre Pixels[].... básicamente el rango de cardinal se hace corresponder a los posibles colores... está pensado de modo tal que en su representación hexadecimal sea $RRGGBB.
Se recomienda ScanLine() por sobre Pixels ya que es más rápido, sobre todo en imágenes enormes.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 23-10-2012 a las 00:08:19.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear un Reporte a partir de archivos de texto franciscobucio Impresión 4 18-01-2007 18:49:09
Como descargar una imagen a partir de la url Oxis Internet 2 20-07-2006 20:04:56
¿Crear email con imagen como parte del contenido del texto? burasu Varios 6 07-04-2006 19:11:30
Crear tabla pdx a partir de dbf lbidi Tablas planas 7 30-03-2004 16:58:55
Crear un EXE a partir de un TXT o CPP aleidania Varios 1 25-10-2003 18:36:45


La franja horaria es GMT +2. Ahora son las 03:02:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi