# Fraktionsterretorien zufällig generieren



## Death_Vader97 (21. Mai 2015)

Hallo 

Für ein kleines Projekt bräuchte ich eine Zufallsgenerierung von Fraktionsterretorien. Im Prinzip sollte das Ergebnis in die Richtung der Verteilung von Minecraft-Biomen gehen, hier ein Bild dazu (natürlich bei mir dann ohne die Flussstrukturen und mit etwas regelmäßigeren Kanten):
http://mlkshk.com/r/692O

Kann mir wer einen Ansatz dazu geben? Ich habe keine Idee wie ich das umsetzen könnte (außer der schlechten Alternative sowas wie Perlin/Simplex Noise zu nehmen und mit Kontrast etc. rumzuwerkeln). Ich weiß auch nicht wonach ich in diesem Fall googlen sollte. :rtfm:

Ich würde mich über eventuelle Antworten sehr freuen.

Grüße
Death_Vader97


----------



## lord239123 (21. Mai 2015)

Falls du ein Raster besitzt, könntest du vielleicht einen Starpunkt für eine Fraktion nehmen.
Danach weist du den Punkten um diesen Punkt herum per Zufall entweder die gleiche Fraktion zu, oder nichts. Falls du ihnen eine Fraktion zuweist, wiederholst du den Schritt.
Wenn du eine vorgegebene Anzahl an Fraktionen besitzt, kannst du das so für jede Fraktion machen. Das Problem ist nur, dass vermutlich am Ende Freiraum übrig bleiben wird. Wahrscheinlich gibt es da bessere Möglichkeiten.


----------



## Death_Vader97 (21. Mai 2015)

lord239123 hat gesagt.:


> Falls du ein Raster besitzt, könntest du vielleicht einen Starpunkt für eine Fraktion nehmen.
> Danach weist du den Punkten um diesen Punkt herum per Zufall entweder die gleiche Fraktion zu, oder nichts. Falls du ihnen eine Fraktion zuweist, wiederholst du den Schritt.
> Wenn du eine vorgegebene Anzahl an Fraktionen besitzt, kannst du das so für jede Fraktion machen. Das Problem ist nur, dass vermutlich am Ende Freiraum übrig bleiben wird. Wahrscheinlich gibt es da bessere Möglichkeiten.


Es ist vermutlich auch extrem kompliziert damit geschlossene, einigermaßen regelmäßig geformte Zonen zu generieren...


----------



## Saheeda (22. Mai 2015)

@Death_Vader97

Nicht unbedingt. Ich habe in JavaScript mal was ähnliches gebastelt und hatte dort eher das Problem, dass es zu gleichmäßig war. Ich hatte auf meinem Feld aber auch keine natürlichen Hindernisse wie Flüsse, Meere oder Berge, wenn man die mit einbezieht, könnten denke ich realistische Flächen herauskommen.

Vielleicht hilft dir der Begriff "occupancy grid mapping" weiter.


----------



## Gucky (22. Mai 2015)

Könntest du nicht auch Floodfill mit einem Zufallsgenerator kombinieren?
Du erstellst ein Raster und zufällig wählst du ein Quadrat aus, dass als Ausgangspunkt für die "Flut" dienen soll.
Mit einer Wahrscheinlichkeit von 99,999% wird weiter gezeichnet. Sind alle aktuell verfolgten Pfade beendet setzt du einen neuen Punkt und das Ganze geht von vorne los. Erreicht ein Pfad ein schon eingefärbtes Quadrat, so wird er auch beendet.

Eine andere Möglichkeit wäre die, dass du zuerst einen großen Bereich einfärbst und dadurch "intelligent zufällig" einen/mehrere Pfad/e zeichnest. Intelligent, damit er keine Bereiche von der Größe eines Quadrates absteckt und zufällig erklärt sich von selbst.


----------



## InfectedBytes (22. Mai 2015)

Du könntest es auch Polygon basiert machen. D.h. eine Fraktion wird durch die Punkte eines Polygons definiert und dieses wird anschließend passend gefüllt. 
Beispiel: 
Du platzierst zufällig zwei Punkte (hier rot), welche das Zentrum einer Fraktion darstellen. In der "nähe" dieser Punkte erzeugst du dann zufällig ein paar Eckpunkte (3-7 Stück), im Beispiel sind diese orange. 
Anschließend werden die Eckpunkte verbunden und du kannst den Inhalt dieses Polygons entsprechend der Fraktion füllen. Natürlich musst du noch aufpassen, dass die Eckpunkte sich nicht überlagern etc.
Anhang anzeigen 7794


----------

