Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi prüfen ob punkt sich im kreis befindet (https://www.delphipraxis.net/29858-pruefen-ob-punkt-sich-im-kreis-befindet.html)

glkgereon 15. Sep 2004 16:04


prüfen ob punkt sich im kreis befindet
 
hi
einige werden es erraten haben, ja ich will mir eine monte-carlo-simulation machen

dazu muss man ja prüfen, ob ein punkt im kreis is (oder eben nicht)
ich wollte es mit nem viertelkreis machen

hab irgendwo gehört, man müsste sinus*cosinus und dann wenn >1 dann isses drin, wenn <1, dann halt nit oder so....

weiss das einer genau?

Matze 15. Sep 2004 16:06

Re: prüfen ob punkt sich im kreis befindet
 
[dp]monte* *carlo*[/dp]

glkgereon 15. Sep 2004 16:28

Re: prüfen ob punkt sich im kreis befindet
 
also um ehrlich zu sein finde ich in den beiträgen nichts, wo dieses problem besprochen wird, und den einen qt kapier ich nicht

shmia 15. Sep 2004 16:37

Re: prüfen ob punkt sich im kreis befindet
 
Delphi-Quellcode:
function IsPointInCircle(point, center : TPoint; radius:double): boolean;
var
   distance2 : double;
begin
   // Berechnung des Abstands des Punktes vom Mittelpunkt nach Pythagoras
   distance2 := Sqr(point.x-center.x) + Sqr(point.y-center.y);
   // das Wurzelziehen sparen wir uns, stattdessen wird der Radius ebenfalls quadriert

   result := (distance2 <= Sqr(radius));
end;
Und jetzt das Ganze als Einzeiler (zwecks Performance und Vermeidung von Rundungsfehlern):
Delphi-Quellcode:
function IsPointInCircle(point, center : TPoint; radius:double): boolean;
begin
   // Berechnung des Abstands des Punktes vom Mittelpunkt nach Pythagoras
   // das Wurzelziehen sparen wir uns, stattdessen wird der Radius ebenfalls quadriert
   result := ((Sqr(point.x-center.x) + Sqr(point.y-center.y)) <= Sqr(radius));
end;

woki 15. Sep 2004 17:51

Re: prüfen ob punkt sich im kreis befindet
 
Hi,

1. Vermeide Sinus, Cosinus, Wurzelziehen, alles sehr erchenaufwendig un hier überflüsssig
2. Pythagoras ist ein guter Ansatz.
3. Die Umformungen nochmal überprüfen

Grüsse
Woki

alcaeus 15. Sep 2004 17:57

Re: prüfen ob punkt sich im kreis befindet
 
Hi woki,

Zitat:

Zitat von woki
2. Pythagoras ist ein guter Ansatz.

shmias Lösung funktioniert (bei mir) einwandfrei, Ansätze brauchts also nicht mehr ;)
@glkbkk: wenn du nur einen viertelkreis willst, dann musst du die Koordinaten relativ zum Mittelpunkt betrachten, falls es sich bei den Winkeln um 0-90, 90-180 usw. handelt. Falls es nicht die Viertelkreise sind, kommst du um Trig-Funktionen nicht herum..

Greetz
alcaeus

glkgereon 15. Sep 2004 17:59

Re: prüfen ob punkt sich im kreis befindet
 
danke...

klar:

Delphi-Quellcode:
if sqr(x)+sqr(y)<sqr(radius)
das is die lösung!!!
danke fürs stichwort

woki 19. Sep 2004 12:07

Re: prüfen ob punkt sich im kreis befindet
 
Zitat:

Zitat von alcaeus
Hi woki,

Zitat:

Zitat von woki
2. Pythagoras ist ein guter Ansatz.

shmias Lösung funktioniert (bei mir) einwandfrei, Ansätze brauchts also nicht mehr ;)

nun, das soll sie wohl auch, hatte beim lesen sqr und sqrt verwechselt.

Grüsse
Woki


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 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