AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fläche berechnen

Ein Thema von Eggimaa · begonnen am 12. Aug 2004 · letzter Beitrag vom 17. Aug 2004
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz