so ich hab mal eben nen bild gemacht.
der Rote Punkt ist der Startpunkt.
der linke rand des Bildes ist die Y-Achse und der obere die X-Achse.
die schwarzen Linien zeigen die Linien, die bei gedrückter shift Taste nur gezeichnet werden dürfen.
und die blaue linie ist ein beispiel für die Linie die als trennung dient, um zu sagen, in welchem
Bereich welche Linie gezeichnet werden soll.
Beispiel: ist der Cursor im bereich zwischen vom punkt aus senkrecht nach unte gehenden Linie und der blauen Linie, soll eine Linie
vom roten Punkt senkrecht nach unten bis zur y-Koordinate des aktuellen Punktes gezeichnet werden.
//Edit:
Im QuellCode oben ist übrigens ein Fehler es muss mit 22,5 und nicht mit 45 verglichen werden.
Delphi-Quellcode:
if ssShift in Shift
then begin
if (SP.X=X) or (radtodeg(ArcSin((X-SP.X)/(Y-SP.Y)))<=22.5)
then EP:=Point(SP.X,Y);
end
else EP:=Point(X,Y);