Also eigentlich ist das Programm für dich schon vorbereitet, du musst nur noch das Array füllen...
Delphi-Quellcode:
procedure TForm1.SetMyArray;
var x, y: Integer;
begin
for x := 0 to 150 do
for y := 0 to 150 do
HFData[x, y] := ...
GLHeightField1.StructureChanged; // HeightField neu zeichnen
end;
Dabei sollte beachtet werden dass die Werte 1,5 nicht überschreiten sollten. Also eine Scalierung durchfüren:
Delphi-Quellcode:
// Datenwerte an HeightField ubergeben
procedure TForm1.Formula(const x, y: Single; var z: Single;
var color: TColorVector; var texPoint: TTexPoint);
const
Scale = 100; // <-------<<<
begin
z := VectorNorm(x, y);
// x & y-Pos vom Array umrechnen
z := HFData[Trunc(x * 100), Trunc(y * 100)] / Scale;
// nach Höhe einfärben
VectorLerp(clrBlue, clrRed, z, color);
end;
max. 150 : 100 = max 1,5
Wegen dem "Fehler" musst du noch die
Unit VectorTypes mit einbinden:
Code:
[b][color=#0000AF]uses[/color][/b]
Windows, ..., GLScene, ..., [b][color=#df0000]VectorTypes[/color][/b];