Эта процедура рисует линии уровня обратным сканирующим методом. Описание его работы читайте здесь.
//fragment of the cmath.pas
2003 (c) Meshchaninov Nick, (nsft.narod.ru)
procedure TfrmMain.InvScanLevels(Area:TDoubleRect;N:integer);
var i,j:integer;
world:TWorldPoint;
screen:TScreenPoint;
mins,s,f:double;
begin
mins:=getMin(Area);
s:=(GetMax(Area)-mins)/N;
CopyScr.Free;
CopyScr:=TBitMap.Create;
CopyScr.Height:=pbOut.Height;
CopyScr.Width:=pbOut.Width;
for i:=0 to frmMain.pbOut.Width do
for j:=0 to frmMain.pbOut.Height do
begin
screen.x:=i;screen.y:=j;
Screen2World(Area,frmMain.pbOut.ClientRect,screen,world);
f:=(func(world.x,world.y)-mins)/(s+1);
if frac(f)< GetPrecision then
begin
frmMain.pbOut.Canvas.Pixels[i,j]:=0;//rgb(trunc(255*f/N),trunc(255*f/N),trunc(255*f/N))
CopyScr.Canvas.Pixels[i,j]:=0
end;
end;{for}
pbOutPaint(pbOut);
end;