Thema: Delphi Fläche berechnen

Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: Fläche berechnen

  Alt 17. Aug 2004, 19:44
hmm, versteh ich das problem nicht, oder wie?

das einzige problem ist ja wohl, aus den 3 graphiken die koordinaten rauszukriegen

danach isses einfach

hier meine lösung:

Delphi-Quellcode:
procedure get3Dpoints(pxy, pxz, pyz: array[1..2,1..1000]; var p3d: array[1..3,1..1000]);
var
i:integer;
begin
for i:=1 to 1000 do
  begin
  p3d[1,i]:=pxy[1,i];
  p3d[2,i]:=pxy[2,i];
  p3d[3,i]:=pxz[2,i];
  end;
end;
da brauch man sogar nur 2 projektionen...

das problem ist jetzt, die koordinaten zu kriegen, aber das ist ja kein mathematisches problem, sondern eher ein farb-erkennungsproblem...

man könnte das so in etwa machen:

Delphi-Quellcode:
function getpoints(bild:TPicture):array[1..2,1..1000];
var
i, j, panz:integer;
points:array[1..2,1..1000];
begin
for i:=1 to bild.width do //breite
  for j:=1 to bild .heigth do //höhe
    begin
    if bild.Pixels[i,j]:=clBlack //wenn punkt bestandteil eines objektes
    then begin
         if ((bild.Pixels[i-1,j]) xor (bild.Pixels[i+1,j]))
             or ((bild.Pixels[i,j-1]) xor (bild.Pixels[i,j+1]))
             or ((bild.Pixels[i-1,j-1]) xor (bild.Pixels[i+1,j+1]))
             or ((bild.Pixels[i+1,j-1]) xor (bild.Pixels[i-1,j+1]))
         then begin //Wenn die linie nicht gerade über den punkt verläuft
              panz:=panz+1; //dann isser ein eckpunkt
              points[1,panz]:=i; //anzahl+1
              points[2,panz]:=j; //in array eintragen
              end;
         end;
    end;
getpoints:=points; //rückgabewert
end;
so, die if abfrage:

es wird geguckt ob die linie nicht gerade drüber verläuft
-> gerade drüber wäre statt xor immer and
-> wenns bei einer zutrifft reichts, daher or

es werden 4 richtungen geprüft:

nummer 1: -
nummer 2: |
nummer 3: \
nummer 4: /

man könnte das in ne schleife packen, aber das hab ich (noch) nicht parat...

ich hoffe das hilft erst mal
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat