Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Strecke zeichnen (https://www.delphipraxis.net/95437-strecke-zeichnen.html)

kevSTAR 6. Jul 2007 13:05


Strecke zeichnen
 
Halloo!

Ich habe ein viereck auf einer paintbox gezeichnet, wovon eine strecke ausgeht, sie soll 100 pixel lang sein und immer vom selben punkt ausgehen.
Wenn ich nun die pfeiltaste links z.B drücke verringert sich der X wert und die gerade soll nach links gehen, aber immer die gleiche länge haben. wenn ich es so mache wie ich es mit dachte, Y immer gleich und X immer größer oder kleiner je nach dem ob ich nach links oder rechts drücke, wird die gerade aber auch entsprechend länger :( sie soll aber immer wie gesagt 100px lang sein.

3_of_8 6. Jul 2007 13:27

Re: Strecke zeichnen
 
Dann soll sie sich auf eine Kreisbahn bewegen. Berechne das ganze doch mit sin und cos.

kevSTAR 6. Jul 2007 13:29

Re: Strecke zeichnen
 
x+y ist der punkt wo die gerade aufhört und beide zusammen sind der punkt der sich auf dem kreisbogen bewegt aber wie berechne ich das?

3_of_8 6. Jul 2007 13:40

Re: Strecke zeichnen
 
Nehmen wir mal an, du hast den Startpunkt (x1|y1) und die x-Koordinate des Endpunktes x2.

Dann berechnest du die y-Koordinate des Endpunkts y2 so: (du brauchst nicht mal sin und cos)

Delphi-Quellcode:
y2:=y1+round(sqrt(10000-sqr(x2-x1)));
oder
y2:=y1-round(sqrt(10000-sqr(x2-x1)));
(Satz des Pythagoras)

kevSTAR 6. Jul 2007 13:50

Re: Strecke zeichnen
 
invalid float pointing operation

das is der fehler den ich bekomme wenn ich zu weit nach links oder rechts gehe

Nikolas 6. Jul 2007 14:31

Re: Strecke zeichnen
 
hast du dir den Code auch mal angeschaut, oder nur Copy Paste gemacht? Im ersten Fall sollte dir recht schnell auffalen, dass da eine Wurzel gezogen wird und die negative Zahlen nicht allzu gut verträgt...

3_of_8 6. Jul 2007 14:38

Re: Strecke zeichnen
 
Logisch, wenn du zu weit nach rechts oder links gehst, kann es irgendwann gar keine Strecke an den Punkt hin mehr geben, die eine Länge von 100 hat. Das würde sonst der Dreiecksungleichung wiedersprechen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz