Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#14

AW: Bildbearbeitung - Astronomie-Aufgabe

  Alt 19. Dez 2010, 19:55
1.) Ein Break bei zwei FOR Schleifen verlässt nur die innere Schleife
2.) Du musst nach Punkten suchen nicht nach Integern
3.) Rückwärtsschleifen funktionieren nur mit DOWNTO
For i := 100 to 0 wird nie durchlaufen
4.) Image3 soll ja ein Differenzbild enthalten hier interessiert nur ob ein Punkt einen Wert >= 10 hat, der Nachbarpunkt interssiert nicht


Deine Suchroutine sollte eher so aussehen
Delphi-Quellcode:
var
  x,y:Integer;
  P1,P2:TPoint;
begin
  P1.X := -1;
  for y:=0 to image3.Height-1 do
    begin
    for x:=1 to image3.width-1 do
      begin
      if (((image3.Canvas.pixels[x,y]) and 255) > 10) then
        begin
         P1.X := x;
         p1.Y := y;
         break;
        end;
      end;
    if P1.X > 0 then Break;
    end;

  P2.X := -1;
  for y := image3.Height-1 Downto 0 do
    begin
    for x:= image3.width-1 Downto 0 do
      begin
      if (((image3.Canvas.pixels[x,y]) and 255) > 10) then
        begin
         P2.X := x;
         P2.Y := y;
         break;
        end;
      end;
    if P2.X > 0 then Break;
    end;
....
....
// und noch zwei Punkte ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat