Ich schreibe ein Programm mit SDL. Ich habe den Bildschirm als 600x600 eingerichtet. Ich zeichne dann einen Kreis an den Fenstern. Ich schieße zufällig den ganzen Bildschirm mit Punkten und zähle schließlich, wie viele Punkte sich im Kreis befinden, mit denen man die Fläche des Kreises schätzen kann. Aber ich fand, dass, wenn ich das Fenster zu größerem initialisiere (wie 1024 * 768), dieselbe Methode die Genauigkeit der Gebietsberechnung (zu kleinem Ausmaß aber noch nicht so klein) senkt. Ich möchte wissen, erhöhen Sie die Auflösung der Fenster nicht dazu beitragen, die Auflösung dieses Problems zu verbessern? Wie kann ich die größere Auflösung nutzen?bezüglich der Auflösung und Genauigkeit in SDL
Antwort
Ich zeichne dann einen Kreis auf den Fenstern. Ich schieße zufällig den ganzen Bildschirm mit Punkten und zähle schließlich, wie viele Punkte sich im Kreis befinden, mit denen man die Fläche des Kreises schätzen kann.
Die Fläche des Kreises ist gleich pi*(r^2)
. Wobei "r" der Kreisradius ist.
Aber ich fand, dass, wenn ich initialisieren das Fenster zu vergrößern
Ihre Methode wird keine zuverlässigen Ergebnisse, es sei denn Zufallszahlengenerator ist perfekt Es bedeutet, dass es absolut perfekt gleichmäßige Verteilung von Punkten erzeugen müssen was nicht passieren wird. Auch Sie müssen Bereich von einem "Schlag" kennen, der ein großes Problem sein wird.
Wenn Sie darauf bestehen, das Rad neu zu erfinden (und vermeiden Sie pi*(r^2)
aus unbekannten Gründen), dann statt "zufällige Punkte". Scannen Sie Bild für Zeile einfach und berechnen Sie die Anzahl der Punkte innerhalb des Kreises. Es wird auch wahrscheinlich viel schneller als der Versuch, Pseudozufallszahlengenerator zu missbrauchen. Und Sie können den Prozess beschleunigen (indem Sie die Genauigkeit verlieren) und anstatt jedes Pixel zu überprüfen, prüfen Sie jedes zweite Pixel (und jede Zeile), jedes 3., jedes 4. usw. (perfekte gleichmäßige Verteilung). Es wird viel zuverlässiger und berechenbarer sein als Ihr PRNG-Missbrauch.
- 1. SDL Zweifel bezüglich Rendering
- 2. Task Verzögerung vs Thread Sleep Auflösung Genauigkeit
- 3. Misclassification Fehlerrate und Genauigkeit
- 4. SDL beenden Vollbild
- 5. Messung der VAR-Genauigkeit mit Genauigkeit() von der Prognose
- 6. Genauigkeit der Nachkommastellen
- 7. Unterschied zwischen SDL und GLUT
- 8. Erhöhung der Genauigkeit der Gleitkommazahlen
- 9. MLP: Beziehung zwischen der Anzahl der Iterationen und der Genauigkeit
- 10. Texteingabefeld in SDL
- 11. Architekturfrage bezüglich der Implementierung und Erweiterbarkeit von Schnittstellen
- 12. Sicherheitsfragen bezüglich Links in PHPBB2
- 13. Bezüglich Platzierung neu in C++
- 14. Was ist der Unterschied zwischen einem physischen SDL-Schlüsselcode und einem virtuellen SDL-Schlüsselcode?
- 15. Unterschied in der Genauigkeit zwischen AVG-Funktion und Summenaufteilung
- 16. Klarstellung bezüglich der Verwendung von Shell-Variablen
- 17. Erläuterung der Knotenpfade bezüglich .pipe schlingen()
- 18. Abfrage bezüglich der Antwort von Mixpanel.track Ereignis
- 19. Problem bezüglich SWRevealViewController Anzeige der Tabelleninhalte
- 20. Genauigkeit von Math.Sin() und Math.Cos() in C#
- 21. Überraschende Äquivalenzen und Nicht-Äquivalenzen bezüglich this.type
- 22. Mathematischer Fehler bezüglich Arrays und Klassen
- 23. Überladung der Auflösung
- 24. Genauigkeit von ZHEEV und ZHEEVD
- 25. Bezüglich der Installation von SciPy von PyCharm
- 26. Argument vorbei bezüglich ivars
- 27. Abfrage bezüglich rethinkdb changefeed
- 28. Abfrage bezüglich DynamoDB Pricing
- 29. Verwechslung bezüglich boost :: shared_ptr
- 30. Probleme bezüglich java.lang.NumberFormatException
Vielleicht, weil 1024x768 nicht quadratisch ist, also gibt es mehr Punkte außerhalb des Kreises? – Kos
Nur aus Interesse, konnten Sie nicht die Fläche des Kreises herausarbeiten, indem Sie stattdessen seinen Radius finden und 'pi * r^2' auswerten? Oder fehlt mir etwas? –
Wie generieren Sie Ihre Zufallszahlen? 'rand()' ist nicht zufällig genug, wenn Sie Numerik machen wollen. '' und verwenden Sie 'std :: mt19937', überprüfen Sie, ob das hilft –
Kos