Autor Beitrag
Sven
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: Sa 06.03.04 18:04 
Kennt jemand einen Algorythmus für die Schnittpunkte von Kreis mit Ellipse?

Ich habe schon gegoogelt und nichts gefunden :cry:

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
scrooge
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 200



BeitragVerfasst: Sa 06.03.04 20:55 
Hab mal ne Frage zur Aufgabe: Willst du lediglich die Punkte finden, oder was ??
Ich Bins
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 197

Win XP Prof
D5 Prof
BeitragVerfasst: So 07.03.04 13:25 
Am einfachsten wäre es wenn du die Kriesgleichung und die Geradengleichung in folgender Form vorliegen hast:
Kreis: x² + y² = a
Ellipse: x²/a² + y²/b² = c

Wenn du jetzt beide Gleichungen nach y umformst und dann gleichsetzt kannst du ium Prinzip die Lösungen für x ausrechnen. Wenn du die X-Werte hast dürften die y-Werte kein Problem mehr sein, und dann hast du die Schnittpunkte.
Zumindest wenn ich dein Problem richtig verstanden habe

_________________
Diese Nachricht wurde mit einer Taschenlampe in das offenliegende Ende eines Glasfaserkabels gemorst!
Gandalfus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 129



BeitragVerfasst: So 07.03.04 13:51 
Ich Bins hat folgendes geschrieben:

Ellipse: x²/a² + y²/b² = c

a= Nullstelle
b= y-Achse Schnittpunkt

_________________
Wennn man feststellt, dass es drei Moeglichkeiten gibt, die einen Vorgang schiefgehen lassen koennen und man diese ausschaltet, entstehen automatisch drei neue Moeglichkeiten.
Sven Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: So 07.03.04 18:43 
Die Mittelpunkte von Kreis und Ellipse sind nicht identisch und ich habe auch keinen X oder Y-Wert.

Ich möchte die Funktion in meinem CAD-Programm verwenden.

Ich hätte da auch schon eine Idee, aber dann benötige ich, maximal, ~400 Schleifendurchläufe. Ich hatte gehofft es gebe da evtl. eine einfache mathematische Lösung.

Trotzdem Danke.

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
Seniman
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 42


D6 Pers
BeitragVerfasst: So 07.03.04 21:28 
Hallo,

maximal 400 Schleifendurchgänge? Das klingt nicht besonders optimal. Beschreib doch mal, wie genau du das machst. Das kann man bestimmt noch optimieren. Wenn die Koordinaten nicht gegeben sind, was ist denn dann gegeben??

Grüße
Seniman
Urba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47



BeitragVerfasst: Mo 08.03.04 02:50 
Hallo,

Vielleicht hilft www.zum.de/Faecher/M...TML_2/ellkreis2.html weiter

Urba

_________________
Es gibt keine blöden Fragen, nur blöde Antworten :)
Sven Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: Mo 08.03.04 14:30 
Seniman hat folgendes geschrieben:
Hallo,

maximal 400 Schleifendurchgänge? Das klingt nicht besonders optimal. Beschreib doch mal, wie genau du das machst. Das kann man bestimmt noch optimieren. Wenn die Koordinaten nicht gegeben sind, was ist denn dann gegeben??

Grüße
Seniman


Gegeben sind die Mittelpunkte, sowie die Radien von Kreis und Ellipse.

Meine Idee:

Ich fange an bei 0 Grad den Punkt auf der Ellipse zu berechnen (Routine vorhanden) anschließend prüfe ich den Abstand zum Kreismittelpunkt. Ist das Ergebnis größer liegt der Punkt ausserhalb des Kreises, ist er kleiner, so liegt dieser innerhalb des Kreises.
Ausgehend von dieser ersten Prüfung, prüfe ich nun in 1 Grad-Schritten, ob das Ergebnis nun innerhalb, oder außerhalb des Kreises liegt.
Beispiel: War der Punkt bei der ersten Prüfung außerhalb, und liegt nun innerhalb, gehen 1 Grad zurück und verringere die Schrittweite auf 1/10 des vorherigen Wertes. diesen Vorgang wiederhole ich z.B. 5 mal. Damit dürfte eine ausreichend große Genauigkeit erreicht werden.
Ausgehend von diesem Punkt versuche ich nun den zweiten Punkt auf demselben Wege zu ermitteln. Hat der zweite Punkt dieselben Kordinaten wie der erste handelt sich um eine Berührung und es gibt nur den einen Schnittpunkt.

Da im ungünstigsten Fall ein Umlauf stattfinden kann, sind dies 360 Vergleiche und dann noch für 0.1, 0.01, 0.001, 0.0001 Grad.
Also, 360 + 40 = 400.

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
Sven Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: Mo 08.03.04 14:32 
Urba hat folgendes geschrieben:
Hallo,

Vielleicht hilft www.zum.de/Faecher/M...TML_2/ellkreis2.html weiter

Urba


Danke, das hat aber mit meinem Problem nicht viel zu tun.

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
Gandalfus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 129



BeitragVerfasst: Mo 08.03.04 15:14 
Sven hat folgendes geschrieben:

Gegeben sind die Mittelpunkte, sowie die Radien von Kreis und Ellipse.

Erkläre mir doch bitte mal was du unter Radius einer Ellipse verstehst.

_________________
Wennn man feststellt, dass es drei Moeglichkeiten gibt, die einen Vorgang schiefgehen lassen koennen und man diese ausschaltet, entstehen automatisch drei neue Moeglichkeiten.
Sven Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: Mo 08.03.04 19:59 
Gandalfus hat folgendes geschrieben:
Sven hat folgendes geschrieben:

Gegeben sind die Mittelpunkte, sowie die Radien von Kreis und Ellipse.

Erkläre mir doch bitte mal was du unter Radius einer Ellipse verstehst.


Ist die Kurzform für die beiden Halbachsen :D

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
Gandalfus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 129



BeitragVerfasst: Mo 08.03.04 20:04 
also sind a und b ja doch gegeben!?

_________________
Wennn man feststellt, dass es drei Moeglichkeiten gibt, die einen Vorgang schiefgehen lassen koennen und man diese ausschaltet, entstehen automatisch drei neue Moeglichkeiten.
Seniman
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 42


D6 Pers
BeitragVerfasst: Mo 08.03.04 22:03 
Hallihallo,
Mein Vorschlag:
Schnapp dir nen Bleistift und ein Blatt Papier stellt die Kreisgleichung und die Ellipsengleichen in abhängigkeit von den Mittelpunkt und den Radien/Halbachsen auf. Dann setz beide gleich. Dann solltest du den Schnittpunkt ausrechnen können. Danach kannst du das dann in Delphi Implementieren und vermutlich brauchst du dann gar keinen Schleifendurchlauf, sondern hast direkt eine Lösungsformel. Falls du Probleme mit den Gleichungen hast, dann melde dich.

Grüße
Seniman
Urba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47



BeitragVerfasst: Mo 08.03.04 23:08 
Hallo,

Also 1.) Oben genannter Link kann dir schon viel bringen weil dort steht wie man die Schnittpunkte ausrechnet.

und 2.) @ Seniman : Ich habe aus dem besagten Link versucht auf eine Formel zu kommen. Ich treffe dabei an meine mathematischen Grenzen, da ich eine Gleichung bekomme die ich nicht lösen kann - entweder habe ich mich verrechnet oder es geht irgendwie anders. Wäre interessant wenn du deinen Vorschlag mal posten könntest

Urba

_________________
Es gibt keine blöden Fragen, nur blöde Antworten :)
Ich Bins
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 197

Win XP Prof
D5 Prof
BeitragVerfasst: Mo 08.03.04 23:24 
Wenn der Mittelpunkt des Kreises die Koordinaten x1,y1 hat dann is die Kreisgleichung:

(x-x1)² + (y-y1)² = a² ; a...Radius des Kreises

Der Mittelpunkt der Ellipse hat die Koordinaten x2,y2, dann bekommste als Ellipsengleichung:

(x-x2)²/a² + (y-y2)²/b² = c ; a,b....Radien der Ellipse

a,b und c sind jeweils feste Parameter, x1,x2,y1,y2 sind die Koordinaten der Mittelpunkte von Kreis und Ellipse, also auch fest gegeben.
Jetzt musst du im Prinzip nur noch die beiden Gleichungen gleich setzen und bekommst die Koordinaten für die Schnittpunkte raus.

_________________
Diese Nachricht wurde mit einer Taschenlampe in das offenliegende Ende eines Glasfaserkabels gemorst!
Urba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47



BeitragVerfasst: Di 09.03.04 00:38 
genau so habe ich mir es auch überlegt. Probiers doch mal aus - ich bin zu keiner Lösung gekommen. Das heisst genauer ich bin zu einer Lösung gekommen, aber dort war dann x in so vielen verschiedenen Abhängigkeiten, dass es nicht lösbar war

_________________
Es gibt keine blöden Fragen, nur blöde Antworten :)
Sven Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 314


D6 Ent, K3 Pro (patched)
BeitragVerfasst: Di 09.03.04 11:42 
Also erst einmal Danke für eure Bemühungen. Ich habe jedoch das Problem, das ich nicht die höhere Töchterschule besucht habe.:lol: Deshalb wäre es nett von Euch, wenn Ihr das ganze in eine klare einfache Formel packen könntet, die auch meine Computer versteht.
Eigentlich frage ich nicht nach Code, aber dieses Problem mit Glecihsetzen, einsetzen usw. übersteigt meine einfachen mathematischen Realschul-Kenntnisse doch ein wenig.

Danke :D

_________________
MDK 9.1, Kernel 2.4.21, KDE 3.1 Kylix 3 Pro (patched), nutze aber auch Windows
Ich Bins
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 197

Win XP Prof
D5 Prof
BeitragVerfasst: Di 09.03.04 18:29 
Hm, merk grad das es doch schwerer zu lösen ist als ich gedacht hätte!

Das Problem ist das man nicht weiß wieviel Lösungen es gibt, und es sind bis zu 4 möglich, wodurch du ne Gleichung bekommst wo sowohl x^2 als auch Wurzel X drin vorkommt, und die bekommste net gelöst.
Von daher musste warhscheinlich doch mit nem Näherungsverfahren arbeiten. Sorry aber wüsst net wies sonst gehen könnte.

_________________
Diese Nachricht wurde mit einer Taschenlampe in das offenliegende Ende eines Glasfaserkabels gemorst!
Urba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47



BeitragVerfasst: Di 09.03.04 18:37 
Das Verfahren dass anfangs beschrieben wurde sieht doch nicht schlecht aus. Benutze das doch. Schreibe einfach ne Funktion in der die Genauigkeit (z.B.) übergeben wird und du sie dann rekursiv aufrufen kannst - damit ersparst du dir die 400! Schleifen

Urba

_________________
Es gibt keine blöden Fragen, nur blöde Antworten :)