Cita:
Empezado por gusspagano
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
ArchivoTXT:= TStringList.Create;
If OpenDialog1.Execute Then
ArchivoTXT.LoadFromFile(OpenDialog1.FileName);
For Desde:= 0 To (ArchivoTXT.Count -1) Do
Begin
Linea:= ArchivoTXT.Strings[Desde];
Valores:= Linea.Split([' ']); X := StrToInt(Valores[0]); Y := StrToInt(Valores[1]); Color:= StrToInt(Valores[2]);
Image1.Canvas.Pixels[X, Y]:= Color;
End;
ArchivoTXT.Free
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Image1.Canvas.Rectangle(0, 0, 101, 101);
end;
Componentes usado
Datos cargados
Zoom de los datos cargados