Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 15, 2025 20:16

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: "gleichmässiges Rauschen"
BeitragVerfasst: Mo Jan 17, 2011 18:17 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
sorry mir ist aber nix anderes eingefallen... Vielleicht habt ihr da eine Lösung..

Ich brauche einen Algo welcher mir ein Quadrat mit Punkten füllt. Die Fläche soll möglichst gleichmässig mit punkten befüllt werden. Doch die punkte sollen nicht in einer Reihe sein. Egal ob ich von links nach rechts oder von oben nach unten schaue, die Anzahl der punkte sollte gleich sein..

Ist vielleicht ganz simpel, doch ich hab volln Brett vorm schädel..

Mercie
Thomas

ADD: Achso und die Anzahl der Punkte bzw die Dichte sollte man auch angeben können ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: "gleichmässiges Rauschen"
BeitragVerfasst: Mo Jan 17, 2011 18:51 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
So etwas wie eine Gleichverteilung (also, dass es dann auch so aussieht) kann man natürlich nur bei ausreichend großer Fläche und ausreichend großer Punktanzahl erreichen. Ich würde dafür erstmal die Brute-Force-Lösung vorschlagen. Das heißt, du nimmst dir einfach die normale Random-Funktion (die sollte recht gleichverteilt sein), lässt dir von dieser Koordinaten für deine Punkte berechnen. Wenn an der Stelle schon ein Punkt ist, dann „würfelst“ du neu.
Gegebenenfalls kannst du eine zu lange Rechenzeit durch mehrfachtreffer verhindern, indem du ab 50% Füllung den anderen Weg gehst: Erst alles mit Punkten füllen und dann zufällig die Punkte wieder weg machen.

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: "gleichmässiges Rauschen"
BeitragVerfasst: Mo Jan 17, 2011 19:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Doch die punkte sollen nicht in einer Reihe sein. Egal ob ich von links nach rechts oder von oben nach unten schaue, die Anzahl der punkte sollte gleich sein..

Wie ist das gemeint?

Ansonsten ist die Methode von Lord Horazont wohl das Mittel der Wahl.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: "gleichmässiges Rauschen"
BeitragVerfasst: Di Jan 18, 2011 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
Alternativ könnte man (wenns relativ wenige Punkte sein sollen zB) die Punkte erst regelmäßig verteilen, und dann ein Bisschen verschieben. Halt weit genug, dass es zufällig aussieht, aber nicht so weit, dass zB alle in einem Eck landen können.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: "gleichmässiges Rauschen"
BeitragVerfasst: Di Jan 18, 2011 12:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Coolcat hat geschrieben:
Wie ist das gemeint?

Ich das vielleicht so gemeint, dass in jeder Zeile und Spalte des Bildes genau gleich viele Punkte sein sollen? Dann wäre das so eine Art Sudoku mit nur 0 und 1. In dem Fall sollte man wahrscheinlich zuerst ein paar Punkte zufällig setzen und dann das ganze als eine Art Gleichungssystem formulieren. Da 0 und 1 die einzigen Lösungen sind brauchst du kein normales Gleichungssystem sondern ein "binary integer program", kurz BIP. Ist ein Spezialfall von linearen Programmen (LP). Es sollte sich aber eine Library mit einem Solver für sowas finden lassen.

Man sollte anmerken das dieses BIP Probleme NP-hart sind und du für eine effiziente Lösung (*) vermutlich 1 Mio. Dollar bekommst, weil du dann eines der wichtigsten Informatik-Probleme der heutigen Zeit, nämlich N = NP, bewiesen hättest. Wenn du beweist, dass N != NP ist auch schon toll....hat auch noch keiner geschafft und gibt ebenfalls 1 Mio. Dollar ;)

=> Du wirst vermutlich nur für ein kleines Bild ein Rauschen berechnen können....100x100 ist wahrscheinlich schon toll.

(*) effizient heißt hier polynomielle Laufzeit, also du kannst mit einem Polynom eine obere Grenze für die Anzahl der nötigen Rechenschritte berechnen.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: "gleichmässiges Rauschen"
BeitragVerfasst: Di Jan 18, 2011 12:24 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
Ne es geht hier um lichtstrahlen.. und die Punkte sind zielpunkte. Darum sollte das alles gleichmässig und zufällig aussehen. Habs jetzt mit Random realisiert und sieht toppi aus.
Danke für eure Hilfe
Thomas


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]