Einzelnen Beitrag anzeigen

Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Scanline zeichnet nur einmal

  Alt 21. Mai 2007, 01:50
Moin!

Ich frag mich grad, wie das beim 1. mal zeichnen gehen soll?
Du zeichnest ja nur die Pixel in der 1. Spalte.

inc(pix); Bei einem Pointer net grad zu empfehlen

Delphi-Quellcode:
// Bitmap einfärben
  // Scanline-Methode
  var Line:PByteArray;
  ...
  for y := 0 to AHeight - 1 do
  begin
    Line := iMap.Picture.Bitmap.ScanLine[y];
    for x := 0 to AWidth - 1 do
    begin
      if map[x][y] <= 0 then // Wasser
      begin
        pix:=@Line[x * 3];

        i := Trunc(map[x][y] / Mi * 100);
        pix^.rgbtBlue := 255 - i * 2;
        pix^.rgbtGreen := 51;
        pix^.rgbtRed := 51;
      end else // Land
      begin
        pix:=@Line[x * 3];

        i := Trunc(map[x][y] * 160 / Ma);
        pix^.rgbtBlue := 32 + (i div 4);
        pix^.rgbtGreen := 240 - i;
        pix^.rgbtRed := 32 + (i div 4);
      end;
    end;
  end;
Korrigiert und nicht getestet
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat