AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck
Thema durchsuchen
Ansicht
Themen-Optionen

Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck

Ein Thema von ohkay · begonnen am 25. Jun 2012 · letzter Beitrag vom 26. Jun 2012
Antwort Antwort
schlagzu

Registriert seit: 11. Okt 2010
86 Beiträge
 
Delphi XE Starter
 
#1

AW: Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck

  Alt 25. Jun 2012, 20:14
testen ob der erste Punkt in dem Rechteck liegt und der zweite nicht (oder umgekehrt).
Das nächste wäre dann die die diagonal durch gehen und beide außerhalb liegen und trotzdem schneiden.

Dann denn Schnittpunkt berechnen mit Dreieck (Rechtwinklig)

PS:

die die diagonal gehen so abfangen: 1 Punkt x liegt zwischen xmin xmax, 2Punkt y liegt zwischen ymin ymax

Geändert von schlagzu (25. Jun 2012 um 20:21 Uhr) Grund: Idee
  Mit Zitat antworten Zitat
schlagzu

Registriert seit: 11. Okt 2010
86 Beiträge
 
Delphi XE Starter
 
#2

AW: Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck

  Alt 25. Jun 2012, 20:18
Mal zur Anschauung
PS: der eine strich sollte noch rot sein
Angehängte Grafiken
Dateityp: png Unbenannt.png (12,4 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
ohkay

Registriert seit: 25. Jun 2012
6 Beiträge
 
#3

AW: Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck

  Alt 25. Jun 2012, 20:38
also ich bin so weit (als neuling) gekommen

Delphi-Quellcode:
var
    n,m,xmin,ymin,xmax,ymax:integer;
    p1:boolean;
    xp,yp:array [1..100] of integer;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
  begin //Recheck zeichnen
      if button=mbleft then
      if radiogroup1.ItemIndex=0 then
      begin
          if p1 then
          begin
              xmin:=x;
              ymin:=y;
              p1:=false;
              image1.Canvas.Rectangle(x-3,y-3,x+3,y+3);
          end
          else
          begin
              xmax:=x;
              ymax:=y;
              p1:=true;
              image1.Canvas.Rectangle(xmin,ymin,xmax,ymax);
              image1.Canvas.Rectangle(x-3,y-3,x+3,y+3);
          end;
      end
      else
      begin //Poligohnpunkte
          n:= n+1;
          xp[n]:=x;
          yp[n]:=y;
          image1.Canvas.Rectangle(x-3,y-3,x+3,y+3);
      end;
  end;

procedure TForm1.Button1Click(Sender: TObject); //poligon zeichnen

  var
      i,s: Integer;
      sr: real;
  begin
      for i := 1 to n-1 do
      begin
          image1.Canvas.MoveTo(xp[i],yp[i]);
          image1.Canvas.LineTo(xp[i+1],yp[i+1]);
      end;
      image1.Canvas.LineTo(xp[1],yp[1]);
      image1.Canvas.Pen.Color:=clblack;
  end;

procedure TForm1.Button3Click(Sender: TObject); //berechnung und ausgabe visuel

  var
      x1,y1,x2,y2,x3,y3,x4,y4: integer; //...
      x5,y5: integer; //...
      ok: boolean; //...
  begin
          ????
  end;

end.


aber was du jetzt genau willst, was ich machen soll versteh ich net bzw ich weiß was du mienst aber ich kann das nicht umsetzen
  Mit Zitat antworten Zitat
ohkay

Registriert seit: 25. Jun 2012
6 Beiträge
 
#4

AW: Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck

  Alt 25. Jun 2012, 20:55
ok ich versuchs

Geändert von ohkay (26. Jun 2012 um 18:45 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 23:37 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