Einzelnen Beitrag anzeigen

1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#9

Re: Zeichnen einer Linie im 45° Winkel

  Alt 21. Dez 2005, 18:59
so habs endlich geschafft:

Delphi-Quellcode:
if ssShift in Shift
then begin
          H.X:=X-SP.X;
          H.Y:=Y-SP.Y;
          if ((H.X<0) and (H.Y<0)) or ((H.X>0) and (H.Y>0))
          then begin
                      if (abs(H.X)<=abs(H.Y))
                      then begin
                                 if (SP.X=X) or (radtodeg(ArcSin(H.X/H.Y))<=22.5)
                                 then EP:=Point(SP.X,Y)
                                 else EP:=Point((SP.X+H.X),(SP.Y+H.X));
                      end
                      else begin
                                 if (SP.Y=Y) or (radtodeg(ArcSin(H.Y/H.X))<=22.5)
                                 then EP:=Point(X,SP.Y)
                                 else EP:=Point((SP.X+H.X),(SP.Y+H.X));
                           end;
                      end
          else begin
                      H.Y:=(SP.Y-Y);
                      if (abs(H.X)<=abs(H.Y))
                      then begin
                                 if (SP.X=X) or (radtodeg(ArcSin(H.X/H.Y))<=22.5)
                                 then EP:=Point(SP.X,Y)
                                 else EP:=Point((SP.X+H.X),(SP.Y-H.X));
                      end
                      else begin
                                 if (SP.Y=Y) or (radtodeg(ArcSin(H.Y/H.X))<=22.5)
                                 then EP:=Point(X,SP.Y)
                                 else EP:=Point((SP.X+H.X),(SP.Y-H.X));
                           end;
          end;
    end
else EP:=Point(X,Y);
Roman
  Mit Zitat antworten Zitat