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

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 09-08-2023
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 21
MAXIUM Va camino a la fama
Cita:
Empezado por gusspagano Ver Mensaje
Gracias por el aporte MAXIUM!

Intengo dibujar una imagen de precipitación estimada por radar, no hay puntos lineas y polígonos, solo pixeles de colores cuyo color indica la intensidad de lluvia en el momento del escaneo de la atmosfera.

Puede ser por ejemplo que la mayor intensidad de lluvia se represente con rojo intenso y la menor intensidad con verde suave. Los pixeles cuyas ubicaciones registren intensidades de cero o por inferiores de cierto umbral pueden ser transparentes o sin color.
Bueno, te dejo la primera parte que lee el txt y dibuja. Por supuesto hay formas más elegantes para cada proceso, pero mi idea es que sea facil de entender.

Le faltan cosas como escoger una mejor paleta de colores, poder limpiar y volver a dibujar, escalar, exportar la imagen, etc. Espero te sirva y me queda la duda si te pidieron usar Delphi u otro lenguaje, no porque no se pueda sino por curiosidad.

Archivo TXT de prueba
Código:
1 1 20
10 20 32
12 23 54
40 56 72
45 78 62
62 38 60
Código fuente
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
   ArchivoTXT: TStringList;
   Desde, X, Y, Color: Integer;
   Valores: TArray<string>;
   Linea: String;
begin
  // Estructura para manejar archivos.
     ArchivoTXT:= TStringList.Create;

  // Abre un cuadro de dialogo para cargar un archivo en la estructura ArchivoTXT.
     If OpenDialog1.Execute Then
        ArchivoTXT.LoadFromFile(OpenDialog1.FileName);

  // Ciclo que va leyendo linea a linea el archivo cargado.
     For Desde:= 0 To (ArchivoTXT.Count -1) Do
     Begin
          Linea:= ArchivoTXT.Strings[Desde];
          Valores:= Linea.Split([' ']);      // Extrae los valores de la linea (sepadaos por espacio)-
          X    := StrToInt(Valores[0]);      // El primer valor lo convierte a número y lo usa para la posición X
          Y    := StrToInt(Valores[1]);      // El segundo valor lo convierte a número y lo usa para la posición Y
          Color:= StrToInt(Valores[2]);      // El tercer valor lo convierte a número y lo usa para el color.

       // Dibuja un pixel en la posición y color.
          Image1.Canvas.Pixels[X, Y]:= Color;
     End;

  // Libera la estructura.
     ArchivoTXT.Free
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  // Dibuja un rectangulo para resaltar el área de dibujo.
     Image1.Canvas.Rectangle(0, 0, 101, 101);
end;

Componentes usado


Datos cargados


Zoom de los datos cargados
Responder Con Cita
 



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
saber valores de base de piramide a partir de su resultado aguml Varios 19 05-03-2015 14:02:03
Crear Imagen A Partir De Texto (x,y,z) gusspagano Gráficos 17 23-10-2012 22:49:33
Como descargar una imagen a partir de la url Oxis Internet 2 20-07-2006 20:04:56
Alineacion de valores numericos en Printer JOMABRI Impresión 11 27-07-2005 17:55:27
Como manipular los pixeles la matriz de valores en una imagen en escala de grises erocha Gráficos 4 30-11-2003 06:20:32


La franja horaria es GMT +2. Ahora son las 15:47:23.


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