Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#9

Re: Kreise die sich berühren...

  Alt 10. Jan 2005, 19:42
edit: erstmal respekt, dachte nicht dass gleich so viele ideen kommen
Zitat von Chewie:
Ich würde beim Zeichnen grundsätzlich zwei Ebenen betrachten: Einmal die gedankliche Ebene, die (weitgehend) stetig ist. Dort arbeitest du mit Kommazahlen. Alle Berechnungen, die du machst, machst du hier.
Wenn dein Bild soweit berechnet ist, gehts ans Zeichnen. Dann brichst du deine stetigen Zahlen in diskrete runter, am einfachsten mittels Delphi-Referenz durchsuchenTrunc.

Diese Trennung hat den Vorteil, dass du immer mit den exakten Werten (sofern mab bei Gleitkommadarstellungen von "exakt" sprechen kann; exakt heißt hier immer, der Unterschied zweier Zahlen ist nicht groß ) rechnest und nicht Pixelwerte und Werte in deiner gedachten Welt mischen musst. Außerdem kann sich die Größe deiner Darstellung ändern, in diesem Fall müsstest du sonst auch die Größe deiner Welt ändern!
also das musst du mir irgendwie nochmal erklären: die berechnungen in der gedanklichen ebene, mit welchen daten sollte ich die denn dann machen? ich kann ja die berechnung nur mit den daten der wirklichen ebene machen?! irgendwie verstehe ich nicht so ganz, wie du das meinst!
Zitat von IngoD7:
Siehst du, und mich wundert nun, wieso Meflin mit dieser (Nicht-)Lösung seines Problems zufrieden ist ...

Wo er sich doch so viel Mühe gegeben hat, genauestens zu erklären, wann eine Berührung stattfindet und wieso ein Unterschied zwischen der reinen Berechnung einer Berührung und ihrer Darstellung in einem Pixel-Raster auftreten kann.

Ich würde es bei der Berechnung von g (ohne Rundung) belassen und manuell eine erlaubte Abweichung von 2r festlegen, innerhalb derer man noch von Berührung ausgehen darf.
nun ja, das wäre kein problem gewesen, da es sich um bewegte kreise handelt, sprich bevor die 2 kreise schnittpunkte haben könnten, haben sie ja schon einen, und das programm wird gestoppt. dieses problem tritt also nicht auf, allerdings bleibt die ungenauigkeit wenn ich g aufrunde, sprich es ist nur eine halbe lösung des problems.
allerdings scheint mir eine toleranz von 2r doch etwas zu groß !? du meinst wohl 2 pixel oder?
  Mit Zitat antworten Zitat