Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

1

13.11.2011, 14:13

Mathematisches Problem: Ellipse koolidiert mit Gerade.

Tach

Wie ihr dem Thema schon entnehmen könnt, hab ich ein Problem mit einer Koolisionserkennung zwischen einer Ellipse und einer Geraden.
Also ich hab mir bei Wikipedia die Ellipsengleichung angeguckt und habe diese dann mit der Geradengleichung verknüpft.
Das ganze sieht dann so aus:

Nur Ellipsengleichung (Tut mir leid, auch nach mehren Versuchen zeigt er die Gleichungen kommisch an, deshalb 2 Varianten):

x² y²
---- + ---- = 1
a² b²

bzw.

x²/a² + y²/ b² = 1

Geradengleichung eingesetzt:

(p.x + s*u.x)² (p.y + s*u.y)²
----------------- + --------------- = 1
a² b²

bzw.

(p.x + s*u.x)²/ a² + (p.y + s*u.y)²/b² = 1

So das Problem ist, wenn ich das jetzt auflöse, kommt eine schone pq-Formel raus, ABER diese sieht so aus:

s²(a²h² + b²g²) + s(2a²fh + b²eg) - (a²b² - af² - b²e²) = 0

So wenn ich das in jedem Frame prüfe, (ob in meinem Fall die Billardkugel in ein Loch fällt, ) wird das ein Ruckel-Simulator!!


Hat jemand eine Idee wie man diese ganzen Quadrate wegbekommt bzw. ob es einen anderen Weg gibt, dass zu prüfen.
Mathematiker erwünscht! :P

Danke schon mal im Voraus!

ProAmateur
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

13.11.2011, 14:33

Worauf basiert diese Aussage, dass das zu langsam wäre? Hast du es getestet? Ich glaube nicht!
Du wärst überrascht, wie viel Fließkommarechenleistung heutige Prozessoren haben. Normalerweise kriegt man die Daten gar nicht schnell genug aus dem Speicher in die CPU, um sie voll auszulasten.
Für Billardkugeln reicht das definitiv, da du ja nicht beliebig viele davon hast.

PS: Warum eigentlich eine Ellipse, reicht nicht ein Kreis? Die Löcher sind doch Kreise.
PPS: Premature optimization is the root of all evil!

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

3

13.11.2011, 14:40

Ich kenn mich noch nit so aus, aber ich hätte gedacht, dass das ganz schon viel für den Prozessor wäre, das zu berechnen.

Da ich das Modell selbst gemacht hab, sieht es besser aus, wenn ich Ellipsen benutze.
Dann werd ich es einfach mal versuchen.

ps: der Spruch is nit schlecht :P
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

13.11.2011, 14:48

Der Spruch ist von Donald Knuth (vermutlich). ;)

Schau dir die Formel mal an.
Wie viele Rechenoperationen sind wohl nötig, um die zu lösen? Sagen wir mal maximal 50.
Wie schnell taktet der Prozessor? Sagen wir mal 2 GHz.

Pessimistisch geschätzt braucht im Schnitt jede Operation 10 Zyklen, wenn man davon ausgeht, dass die Daten (Ellipse und Gerade) schon im Cache sind. Dann braucht die gesamte Abfrage 500 Zyklen. Bei 2 GHz sind das 0.00000025 Sekunden.

Das ist jetzt nur eine Abschätzung. Könnte schneller sein oder auch langsamer und hängt natürlich vom Prozessor ab. Aber die Größenordnung sollte schon stimmen.

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

5

13.11.2011, 17:27

Ja ok das überzeugt mich :P

Nur jetzt merke ich, dass, wenn ich es ausprobiere mit der Formel, ein falsches ergebnis rauskommt, bzw. die Diskriminante 8000 irgendwas ist, obwohl die Gerade meilenweit davon entfernt ist!
Stimmt die Ellipsengleichung überhaupt, weil ich da noch so meine Zweifel hab?

Edit: Ich hab jetzt rausgefunden, dass man dafür diese 2 brennpunkte braucht, nur wie finde ich diese?
Weiß das jemand? Google hilft nicht so richtig
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

Bu1

Frischling

Beiträge: 66

Beruf: Schüler

  • Private Nachricht senden

6

13.11.2011, 17:46

Da ich das Modell selbst gemacht hab, sieht es besser aus, wenn ich Ellipsen benutze.
Dann werd ich es einfach mal versuchen.
Wofür Elipsen benutzen?

Für die Berechnung doch einfach mit Kreisen aus und benutz die Ellipsen doch nur in der Grafik :)

Zitat

Sämtliche Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt :!:
Sie können nach belieben kopiert und weiterverwändet werden. :P

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

7

13.11.2011, 18:37

Ja ok das würd auch funktionieren, hoffe mal, dass das nit auffällt...

Würd mich aber auch trotzdem rein aus wissensbegierde wie das funktioniert!
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

13.11.2011, 20:25

Wo liegt das Problem mit den Quadraten?
Du kannst deine Gerade zuerst auch einfach in ein Koordinatensystem transformieren, in dem die Ellipse ein Kreis ist ;)

9

13.11.2011, 20:31

Sorry, aber: TeX bitte!

MfG
Check

ProAmateur

Alter Hase

  • »ProAmateur« ist der Autor dieses Themas

Beiträge: 434

Wohnort: Bei Simmern, Koblenz

Beruf: Schüler

  • Private Nachricht senden

10

13.11.2011, 20:38

Das mit den Quadraten hat sich schon geklärt.
Ich hab gedacht, dass es zu viele Berechnungen wären.

Die transformation in ein anderes koordinatensystem is auch ne idee.
Aber ich machs glaub ich lieber anders.
Und du weist nit wie das mit der ellipsengleichung is??
"Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will."
Galileo Galilei
________________________________________________________________________

"Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“

Werbeanzeige