Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schnittpunkte einer Geraden mit einem Kreis berechnen (https://www.delphipraxis.net/33662-schnittpunkte-einer-geraden-mit-einem-kreis-berechnen.html)

mirage228 10. Nov 2004 20:11


Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Hi,

ich habe mich gerade an etwas in Delphi versucht. Aber irgendwie kriege ich das nicht vernünftig hin.

Ich habe einen Kreis an X/Y mit Radius (Werte sind im Programm bekannt).
Nun habe ich eine Gerade, die bei X/Y (Werte bekannt) startet und ich nur dessen Richtungswinkel kenne.

Jetzt wollte ich die beiden Schnittpunkte mit dem Kreis berechnen (falls es überhaupt welche gibt) - In Delphi!
Aber ich kriege es nicht hin die Formeln (Geradengleichung in Kreisgleichung etc.) so umzuformen, dass ich nach X auflösen kann :wall:

Kann mir wer auf die Sprünge helfen?

mfg
mirage228

Nikolas 10. Nov 2004 20:14

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Zitat:

Ich habe einen Kreis an X/Y mit Radius (Werte sind im Programm bekannt).
Nun habe ich eine Gerade, die bei X/Y (Werte bekannt) startet und ich nur dessen Richtungswinkel kenne.

Jetzt wollte ich die beiden Schnittpunkte mit dem Kreis berechnen (falls es überhaupt welche gibt) - In Delphi!
Die Gerade geht durch den Mittelpunkt deines Kreises und du kennst den Winkel gegen eine Achse. Also wird es doch immer zwei Schnittpunkt geben und die kannst du doch mit ein bischen Trigonometrie errechnen. :gruebel:

mirage228 10. Nov 2004 20:16

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Zitat:

Zitat von Toxman
Zitat:

Ich habe einen Kreis an X/Y mit Radius (Werte sind im Programm bekannt).
Nun habe ich eine Gerade, die bei X/Y (Werte bekannt) startet und ich nur dessen Richtungswinkel kenne.

Jetzt wollte ich die beiden Schnittpunkte mit dem Kreis berechnen (falls es überhaupt welche gibt) - In Delphi!
Die Gerade geht durch den Mittelpunkt deines Kreises und du kennst den Winkel gegen eine Achse. Also wird es doch immer zwei Schnittpunkt geben und die kannst du doch mit ein bischen Trigonometrie errechnen. :gruebel:

Hi,

sorry, ich habe mich da etwas undeutlich ausgedrückt. Die Koordinaten vom Mittelpunkt des Kreises entsprechenden nicht den Koordinaten der Startposition der Geraden.

mfG
mirage228

atreju2oo0 10. Nov 2004 20:18

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Schnittpunkt X ergibt sich durch...

Sx:= Xkreis+cos(alpha)*radius;

Analog

Sy:=Ykreis+sin(alpha)*radius;

Und dann das ganze nochmal für alpha plus 180° ...
Das sollte die Lösung sein! :angel:

[edit] Ach so...Dann ist das oben Quatsch...[/edit]

Nikolas 10. Nov 2004 20:32

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Wie genau soll es denn werden? Du kannst einfach eine Gleichung für deine Gerade aufstellen [Koordinatensystemursprung in das Zentrum des Kreises] und dann schauen wann das hier gilt:
Code:
f(x)=mx+c // Deine Gerade

Wenn du den Kreis (mit Radius r) schneidest gilt der Pythagoras
x²+f(x)²=r
->
r= x²+(mx+c)² = x²+m²x²+2mxc+c²= (1+m²)*x²+(2m)*x+c²
->

0= (1+m²)*x²+(2m)*x+(c²-r)

Jetzt die PQ-Formel und du hast ein exaktes Ergebniss

mirage228 10. Nov 2004 20:57

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Hi Toxman,

Danke für Deine Antwort.

Ich weiss nun leider nicht, wie ich auf diese Gleichung die PQ Formel anwenden soll:

Zitat:

(1+m²)*x²+(2m)*x+(c²-r)
1.) Für welches X muss ich welche X-Koordinate (Kreis, Geradenusprung?) einsetzen? Das wird für mich aus Deiner Umformung nicht ganz nachvolziehbar... :-(
2.) (1+m)²*x² -> Kann man darauf die PQ-Formel anwenden. Meineswissens ist die nur auf Formeln mit x² + px + q anwendbar. :?:

mfG
mirage228

Nikolas 10. Nov 2004 21:03

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Zitat:

0= (1+m²)*x²+(2m)*x+(c²-r)
Wenn du ein x findest, für das diese Gleichung gilt, dann hast du einen Schnittpunkt gefunden.

Die klassische PQ-Formel sieht ja so aus:
x²*px+q=0. Also musst du hier noch etwas Kosmetik machen:

Code:
(1+m²)*x²+(2m)*x+(c²-r) = 0 | *1/(1+m²)

x²+ [(2m)/(1+m²)] *x + [(c²-r)/(1+m²)] = 0

dein p ist hier also p=[(2m)/(1+m²)] und dein q steht hier: q=[(c²-r)/(1+m²)].
Wenn ich jetzt keinen Fehler gemacht habe, solltest du damit auf gute Ergebnisse kommen.

mirage228 10. Nov 2004 21:13

Re: Schnittpunkte einer Geraden mit einem Kreis berechnen
 
Hi,

Danke für Deine Antwort.

Ich werde es mir morgen mal anschauen - jetzt gehe ich erstmal schlafen :)

mfG
mirage228


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