Registriert seit: 8. Jun 2009
Ort: Bayern
1.134 Beiträge
Delphi 11 Alexandria
|
AW: Schnittpunkte beliebiger Polygone mit einem beliebigem Achsen-parallelem Rechteck
26. Jun 2012, 08:57
hier ist mal ein Code fragment zum Ergänzen , kannst Du damit etwas anfangen ?
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
btntest: TButton;
procedure btntestClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
tLineType = (Horizontal, Vertikal, unbekannt);
tSimpleLine = record
StartPunkt : TPoint;
EndPunkt : TPoint;
LineType : TLineType;
end;
function Line_Intersection ( Line1 , Line2 : tSimpleLine) : Boolean;
var
Form1: TForm1;
implementation
///
/// Linie1 ist eine Linie des Rechtecks
/// Linie2 kommt vom Polygon
///
function Line_Intersection ( Line1 , Line2 : tSimpleLine) : Boolean;
begin
case Line1.LineType of
Horizontal: begin
end;
Vertikal: begin
end;
unbekannt: begin
end;
end;
end;
{$R *.dfm}
procedure TForm1.btntestClick(Sender: TObject);
var a, b : tSimpleLine;
begin
a.StartPunkt.x := 0;
a.StartPunkt.y := 10;
a.EndPunkt.x := 10;
a.EndPunkt.y := 10;
a.LineType := Horizontal;
b.StartPunkt.x := 5;
b.StartPunkt.y := 5;
b.EndPunkt.x := 12;
b.EndPunkt.y := 15;
b.LineType := unbekannt;
if Line_Intersection(a,b) then
Memo1.Lines.Add(' Line schneidet PolyGon')
else
Memo1.Lines.Add(' Line schneidet PolyGon NICHT ')
end;
end.
|
|
Zitat
|