- type
- TVertex2D = Record
- X, Y: Single;
- end;
- var
- Dreieck: Array[1..3] of TVertex2D;
- Linie: Array[1..2] of TVertex2D;
- function LineInTriangle(Triangle: Array[1..3] of TVertex2D; Line: Array of TVertex2D): Boolean;
- var
- i: Integer;
- begin
- for i:=Low(Line) to High(Line) do begin
- if (Line[i].X > Triangle[1].X) and (Line[i].X < Triangle[2].X) then begin
- if (Line[i].Y > Triangle[3].Y) and (Line[i].Y < Triangle[1].Y) then begin
- if Line[i].X < Triangle[3].X then begin
- if Line[i].Y < (Triangle[3].Y - Triangle[1].Y) / 100 * (Line[i].X - Triangle[1].X) then
- Result:=true;
- Exit;
- end else begin
- if Line[i].Y < (Triangle[2].Y - Triangle[3].Y) / 100 * (Triangle[3].X - Line[i].X) then
- Result:=true;
- Exit;
- end;
- end;
- end;
- end;
- Result:=False;
- end;