Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Zeichnen einer Linie im 45° Winkel

  Alt 21. Dez 2005, 17:23
Zitat von DGL-luke:
damit kann man ja nur herausfinden, ob die linie im 45° Winkel ist.
aber wie kann man aus anfangs- und endpunkt eine machen, das ist die frage.
Du meinst so eine Art "Snap-In" Einrast Funktion ?
Also erst mal schauen, in welchem Quadranten wir sind:
Delphi-Quellcode:
function Quadrant(p:TPoint):integer;
begin
   if (p.x=0) or (p.y=0) then
      result := 0
   else if p.x > 0 then
   begin
      if p.y > 0 then
         result := 1
      else
         result := 2;
   end
   else
   begin
      if p.y > 0 then
         result := 3
      else
         result := 4;
   end;
end;
Dann anhand des Quadranten den Zielpunkt rechnen.
Ich verwende hier nur die X-Koordinate; man könnte auch nur Y verwenden
oder mit Pythagoras die Länge errechnen.
Man muss alle 4 möglichen Fälle aufzeichnen, um die korrekten Vorzeichen rauszukriegen.
Delphi-Quellcode:
   case Quadrant(Point(X-SP.X,Y-SP.Y)) of
      1: EP := Point(X, X);
      2: EP := Point(X, -X);
      3: EP := Point(X, -X);
      4: EP := Point(x, X);

      0: EP := Point(X,Y); // sonderfall: Falls X oder Y gleich 0 darf man auch
        // auf den Achsen einrasten
    end;
Andreas
  Mit Zitat antworten Zitat