Als Infoprojekt in der Schule fangen wir nach den Ferien damit an ein Gitter aus Höhenpunkten grafisch darzustellen. Ich hab mir mal ein paar Gedanken gemacht und eine procedure geschrieben, die mir einen Ausschnitt schon mal darstellen kann. Nur leider gibt's da einen unschönen Effekt (siehe Bild) bei dem ich nicht weiss, wie er entsteht. Kann man jemand einen Blick auf den Code werfen?
Die Idee ist eine Art Vektoraddition mit den Vebindungslinien der Messpunkte als Richtungsvektoren.
Delphi-Quellcode:
procedure TForm1.Square(a,b,c,d: integer);
var
x,y: integer;
ab, ac,
db,
dc : real;
// Steigung der Querstrecken
hab,hac,hdb, hcd ,h: real;
begin
// Links unten
ab:= (b-a)/L;
// Steigung der Seitenlinien
ac:= (c-a)/L;
// rechts oben
db:= (b-d)/L;
dc:= (c-d)/L;
for x:=0
to L
do
for y:=0
to L
do
begin
if x<y
then // links untern
begin
hac:= (L-y)*ac;
// Steigung in c-Richtung
hab:= ( x)*ab;
// in B-Richtung
h := a+hac+hab;
// aufsummiert und fertig ???
end
else // rechts oben
begin
hcd:= (L-x)*
dc;
hdb:= ( y)*
db;
h := d+hcd+hdb;
end;
Img.Canvas.Pixels[x,y]:=color(round(h));
end;
end;
Erwarte das Beste und bereite dich auf das Schlimmste vor.