In Erstellen einer realistischen Weltkarte – Wasserstraßen habe ich danach gefragt, welche Prozesse genau beeinflussen, wie Flüsse fließen und sich schlängeln. Angesichts dieses Wissens bin ich neugierig, wie ein Weltenbauer (wie ich zum Beispiel!) vorgehen könnte, um einen Fluss auf einer Karte zu erstellen, insbesondere in flachen Regionen. Wie es bei Küstenlinien der Fall war , bei denen ich glaube ich besser geworden bin, besteht meine aktuelle Methode darin, kleine verschnörkelte Kurven zu zeichnen, die auf einer vorhandenen Topologie basieren, die ich herausgefunden habe. Aber das nervt trotzdem. Gibt es eine bessere Möglichkeit, dies üblicherweise zu simulieren?
Einige Dinge, die ich suche:
Ich habe in meiner Antwort unten ausführlich auf den Fraktalalgorithmus eingegangen. Die Antworten müssen nicht so sehr ins Detail gehen oder sogar ein fertiges Produkt zeigen. Eine einfache Beschreibung des Algorithmus ist in Ordnung.
Ich kann Ihnen beim Codieren nicht viel helfen, aber ich kann Ihnen helfen, worauf Sie achten müssen, um festzustellen, ob Sie es richtig gemacht haben.
Allein die Höhe wird sich um eine Menge kümmern, sobald Sie wissen, wo sich die Becken befinden, kennen Sie die Richtung und Größe Ihrer Flusssysteme. Das bedeutet, dass Sie Ihre Berge vor den Flüssen zeichnen müssen. Schauen wir uns eine Karte der Flusseinzugsgebiete in den USA an.
Vergleichen Sie es jetzt mit der Platzierung in einer Bergkette.
Beachten Sie, dass der äußere Rand jedes Beckens entweder durch eine Küstenlinie definiert ist, an der der Fluss in den Ozean mündet, oder durch Berge / Hochland. Beachten Sie, dass die Anzahl der Becken dramatisch abnimmt, je weiter Sie in die Landmasse vordringen, während es entlang der Küste viele, viele kleine Becken (und damit kleine Flüsse) gibt. Sie können eine grobe Darstellung eines Flusssystems erstellen, indem Sie einfach planen, wie Sie von jedem Punkt zur Küste gelangen, ohne höhere Erhebungen zu überqueren. Wasser folgt dem Weg des geringsten Widerstands und im Allgemeinen von den Bergen zum Ozean. Dann müssen Sie einige Zufallseffekte hinzufügen, um die lokale Variation zu berücksichtigen, die Sie nicht modellieren. Jemand anderes muss Ihnen helfen, wie Sie solche mehr oder weniger Variationen hinzufügen können.
Darüber hinaus hängt es von der Neigung des Flusses ab, wie stark ein Fluss hin und her wandert. Steileres, schnell fließendes Wasser schneidet eine direktere Linie (wenn auch niemals gerade), während flach geneigtes (und sich daher langsam bewegendes) Wasser schlängelt, wenn das Land flach ist genug, dieses Wandern kann sehr extrem werden. .
Völlig isolierte landumschlossene Becken sind selten und treten nur auf, wenn ein vollständiger Ring von Bergen besteht. Diese speisen isolierte Seen, die hypersalzig (salzig) werden. Der Salzsee von Utah ist ein großartiges Beispiel. Normale Seen entstehen durch lokale Tiefs, die sich füllen und überlaufen, wodurch ein Auslass entsteht. Die überwiegende Mehrheit der Seen wird einen Abfluss haben, das heißt einen reißenden Fluss.
Nicht große Flüsse erzeugen oft Deltas, wenn sie das Meer erreichen, sie sind so flach, dass sie sich so langsam bewegen, dass sie Sedimente abladen, die sich selbst blockieren und ein Verzweigungsmuster erzeugen. Diese sehen am Ende aus wie Fächer oder dichte Bäume, die in den Ozean hinausragen.
Ich beantworte meine Frage selbst, aber bitte lassen Sie sich dadurch nicht von anderen Antworten abhalten! Ich bin auf jeden Fall gespannt, ob es noch andere gängige Techniken gibt.
In der vorherigen Frage zu Küstenlinien wies Samuels Antwort darauf hin, dass fraktale Landschaftstechniken sehr gut für die Simulation von Küstenlinien funktionieren können. Der Grad der Selbstähnlichkeit ist oft erschreckend. Ich habe dafür einen Algorithmus implementiert, der sehr gute Ergebnisse liefert. Es stellt sich auch heraus, dass auch Flüsse fraktalartige Muster aufweisen und über relativ flachen Gebieten können sie simuliert werden - durch Fraktale! Die fraktale Flussmodellierung ist tatsächlich eine sehr effektive Technik und wird häufig verwendet.
Der erste Schritt zur Generierung eines solchen Flusses besteht darin, das Gelände zu bestimmen. Wenn Sie möchten, können Sie beispielsweise Fraktaltechniken mit dem Diamant-Quadrat-Algorithmus verwenden . Sie können es auch mit verschiedenen anderen Methoden herausfinden; Ich habe zufällige Methoden verwendet, die mit einem kreisförmigen Bereich beginnen und dann die Erhöhung zufällig erhöhen, während ich mich nach innen bewege - natürlich gewichtet mit einer Tendenz, nach oben statt nach unten zu gehen. Danach könnten Sie noch mehr Details hinzufügen, indem Sie Erosionsmuster modellieren, indem Sie beispielsweise zelluläre Automaten verwenden. Jasper McChesney hat einen großartigen Beitrag im Worldbuilding-Blog geschriebendarüber. Auch ohne den Algorithmus von Jasper zu verwenden, habe ich bereits einige Ergebnisse gefunden, die mir gefallen. Hier sind einige Beispiele (diese werden als Höhenlinienkarten dargestellt; grün, gelb, orange und rot liegen über dem Meeresspiegel):
Ich erwähne diese besonders, weil sie interessante Merkmale aufweisen: Täler und starke Gefälle sowie flache Landabschnitte, die zum Meer hin abfallen. Die Täler bedeuten, dass ich herausfinden kann, wohin ein Fluss führen könnte. An Stellen, an denen es einen klaren Weg bergab gibt, ist es einfach, den Verlauf eines Flusses herauszufinden. Einige der Täler sind jedoch immer noch breit und enden schließlich alle und führen zu flachen Gebieten ohne klaren Weg für die Flüsse. Wie kann ich dann simulieren, wohin die Flüsse fließen werden? Eine Antwort sind natürlich Fraktale.
Hier ist eine Version der (häufig verwendeten) Methode, die ich für Küsten verwendet habe, angepasst und modifiziert für Flüsse:
Sie haben jetzt einen Abschnitt eines Flusses! Fügen Sie es einfach zwischen den gewünschten Punkten auf Ihrer Karte ein und sehen Sie, wie sich die Welt entwickelt. Führen Sie dies für beliebig viele Segmente und Flüsse durch, achten Sie jedoch darauf, dies hauptsächlich in flachen Regionen zu tun, in denen die Topographie keine großen Auswirkungen hat.
Die besten Ergebnisse, die ich bekommen habe, sind eigentlich für und , über vier Iterationen. Natürlich gibt es einige Blindgänger – zum Beispiel Fälle, in denen sich der Fluss selbst überquert –, aber es gibt auch einige Juwelen, in denen Sie richtige, wiederholte Mäander bekommen, wie bei einem echten Fluss:
(Der Code, mit dem diese erstellt wurden, befindet sich jetzt auf GitHub .)
Beachten Sie, dass die vertikale Skala für den Effekt erweitert wird. Die Schaukeln sind nicht wirklich so wild, wie sie erscheinen; Sie sind tatsächlich viel kleiner und der Fluss weicht nicht drastisch von einer geraden Linie ab – gerade genug, um ein realistisches Mäandern zu erzeugen.
Ich weiß, was manche Leute jetzt denken. „Aber HDE, könntest du nicht einfach einen Random Walk verwenden?“ Nun, ja, Sie könnten eine Gaußsche Random-Walk-Methode verwenden . Das ist ziemlich einfach und könnte tatsächlich rechnerisch einfacher sein. Um es realistisch zu machen, müssten Sie lediglich die Schrittweite zufällig variieren. Es gibt jedoch ein paar Probleme, die ich in diesem Fall mit der Verwendung eines Random Walk habe:
Aus diesem Grund eignen sich Fraktale viel besser für die Flussmodellierung, die Erstellung von Küstenlinien und die Generierung von Gelände als Random Walks. Sie haben mehr Kontrolle und sorgen gleichzeitig dafür, dass es im Flusslauf genügend gesunde Abwechslung gibt.
Hier ist ein weiterer Gedanke. Vielleicht möchten Sie nicht, dass Ihr Fluss perfekt gerade verläuft. Sie haben Ihr Terrain bereits erstellt und einen allgemeinen Pfad festgelegt, dem der Fluss entsprechend der Höhe folgen soll. An dieser Stelle mag es den Anschein haben, dass die fraktale Methode sinnlos ist. Es ist nicht. Alles, was Sie tun müssen, ist, den Algorithmus an eine gerade Linie anzupassen und zu ersetzen mit der Bogenlänge entlang der Kurve ab Punkt zu , und die Steigung der Linie, die senkrecht (und durch) den Mittelpunkt jedes (jetzt gekrümmten) Segments verläuft, mit einer Linie, die an diesem Punkt senkrecht zur Kurve (dh senkrecht) steht. Der Rest ist einfach; Tatsächlich können Sie nach jedem Schritt den Spline neu erstellen und jedes Mal eine neue Kurve mit mehr Details erstellen. Alternativ können Sie bis zum Ende warten und etwas Ähnliches wie zuvor tun, indem Sie den ursprünglichen Pfad nur als Grundlage für die erste Iteration verwenden. Ich habe nichts davon selbst ausprobiert, aber es ist eine vielversprechende Methode.
Hier gibt es ein paar Dinge zu beachten:
Sie könnten - wenn Sie wirklich wollen - diese Schritte im Auge behalten, aber ich würde sie lieber berechnen.
Hier ist ein Fall von dem, worüber ich spreche, mit allen Parametern und Kurven, die von Hand geschätzt wurden (na ja, von Paint). Der Fluss im Westen ist nur eine modifizierte gerade Linie mit einer Iteration des ursprünglichen Algorithmus. Der Fluss im Osten nimmt einen zunächst vom Gelände vorgegebenen gekrümmten Weg mit einer zweiten Biegung:
Ich sollte noch eine letzte Anmerkung hinzufügen, da einige Leute, die dies lesen, jetzt vielleicht verwirrt sind. Fraktale und Selbstähnlichkeit werden auch oft auf Flüsse angewendet, aber in Bezug auf die Erzeugung von Nebenflüssen, dh wie ein Fluss abzweigt. Dies sind zwei verschiedene Dinge und sollten absolut nicht verwechselt werden. Ich entschuldige mich, wenn ich jemanden verwirrt habe; der Zufall ist nicht ideal.
Für die Codierungsseite könnten Sie einfach Perlin Noise verwenden . Suchen Sie einfach nach, wenn Sie nicht wissen, was es ist. Es bietet auch nahezu vollständige Kontrolle über Ihr Endprodukt.
Okay, ich beschäftige mich nicht mit Code, aber ich habe an mehreren Straßen-/Radwegprojekten gearbeitet, die die Koordination mit hydraulischen Analysen beinhalteten. Diese waren jedoch auf lokaler Ebene, also werde ich versuchen, es für Ihre Welt zu verbessern.
Von Ihrer Konturkarte, da wir Ihre Bodensituation nicht kennen (müssen nicht, wenn wir nur eine Momentaufnahme machen).
Informationen, die Sie wissen möchten ("Eingabe"? Ich weiß nichts über Computermodellierung). Dies sind die Variablen, die unsere Wasserleute in ihren Modellen verwenden würden, und wenn Sie mehr über Computer wissen als ich - ich weiß bereits, dass Sie HDE machen - dann vielleicht Sie sind auch die Überlegungen, die Sie verwenden möchten.
Geschwindigkeitsverteilung - siehe oben. Dies wird auch durch Volumen und Kartographie beeinflusst. Wenn Sie wissen, wie Sie die beiden Verteilungsarten kombinieren können, sehen Sie allmählich eine zweidimensionale Karte eines Flusses.
Höhe der Wasseroberfläche! - am wichtigsten, da das Wasser bergab fließt. Dies wirkt sich auf die Verteilung aus.
Geschwindigkeitsgröße - sollte selbsterklärend sein.
Geschwindigkeitsrichtung - sollte selbsterklärend sein.
Fließtiefe - Die Tiefe ist wichtig, wenn Sie berechnen, wie viel Volumen Sie auf einmal erhalten können. Sie können ein Polynom verwenden, um einen Querschnitt Ihres gewünschten Flusses zu erhalten, und diesen dann entlang des Flusses multiplizieren: irgendwie kann ein Computer das schnell für einen komplexen Fluss tun.
Sie haben also Ihre Konturkarte, jetzt zaubern Sie Ihre Computermagie mit der ersten Eingabe, die das Volumen ist. Regenwasser in den Bergen, artesische Brunnen aus Grundwasserleitern und nicht zu vergessen menschliches Abwasser (das ist tatsächlich signifikant) wird es im Quellgebiet beginnen, und dann werden die obigen Variablen, die aus Ihrer Konturkarte modelliert wurden, allgemein die Route der Flüsse definieren . Dies ist nur eine Momentaufnahme, wie @shufflepants feststellte.
Ihre Flüsse enden in einem Delta in flachen Sedimentgebieten oder in einer Schlucht direkt in den Ozean in Gebieten mit steilen, tiefen Flüssen.
Flussarten werden ausführlich in der angenommenen Antwort auf Ihre Frage zu realistischen Weltkarten – Wasserstraßen erläutert .
Damit bleibt mir am Ende, wie wenig Erfahrung und Wissen ich habe. Der nächste Schritt ist der schwierige Teil.
Vor etwa 40 oder 45 Jahren wurde im Scientific American ein Artikel über durch Sünde erzeugte Kurven geschrieben. Es ist der Prozess, den Flüsse, Zugwracks und Blutgefäße verwenden, um zu kollabieren, während die Energie gleichmäßig über den Prozess verteilt wird. Aus diesem Grund können Flussmäander wie Blutgefäße aussehen. Ich habe gerade gefunden, dass sich der Artikel auf Folgendes bezieht: ers. Wissenschaftlicher Amerikaner, 214, 60-70. http://dx.doi.org/10.1038/scientificamerican0666-60
Ich denke, es ist auf den Punkt für Sie. Es gibt auch andere gute Artikel zum Thema sin-generierte Kurven.
Wenn ich meine Fähigkeiten zum Erstellen von Fantasy-Karten übe, neige ich dazu, Höhenschichten zu zeichnen und dann einen Filter zu verwenden, um den Eindruck zu erwecken, dass das Land nicht flach ist, bevor ich den Fluss auf dem Weg des geringsten Widerstands zeichne Ursprung zum Meer.
Ausschnitt aus einer meiner Karten: Ich bin mir nicht sicher, ob Sie die Höhenunterschiede sehen können, da die Farbe es etwas schwierig macht, sie zu erkennen, aber ich hoffe, Sie verstehen es.
Um das zu erweitern, was John gesagt hat (ich liebe übrigens die Flusskarte), sehr wenig ist tatsächlich flach. Jede Ebene, die kein See ist, hat ein Gefälle und das Wasser fließt durch diese Ebene bis zum tiefsten Punkt. Die Ebene hat im Allgemeinen Höhen und Tiefen (von weniger als einem Meter bis zu 10 Metern) und die Flüsse neigen dazu, diesen zu folgen. Das Gefälle und das Gelände und die "Unebenheit" bestimmen also die Form des Flusses.
Wenn das Gelände flach und das Gefälle gering ist, bekommen Sie tendenziell "schnörkeligere" Flüsse. Auf dem ersten Foto in Johns Beitrag überwindet die Kraft des Wassers die Geländemerkmale. Da das Wasser auf der Außenseite einer Kurve schneller fließt als das Wasser auf der Innenseite, erodiert der Fluss das äußere Ufer schneller als das innere Ufer. Dadurch dehnen sich die Schleifen mit der Zeit nach außen aus. Dann können sie vom Wasser abgeklemmt werden und einen direkteren Weg finden, und Sie landen bei diesen "Bogenseen" rund um den Fluss.
Wenn Sie einen Algorithmus schreiben, würde ich die Brownsche Bewegung durch die Steigung und die Unebenheit des Geländes voreingenommen haben. Wenn das Wasser irgendwo ohne Abfluss landet, machen Sie einen See und erhöhen Sie den Wasserspiegel bis zum niedrigsten Abfluss und beginnen Sie einen neuen Fluss. Mit dieser Methode erreicht das Wasser schließlich den Meeresspiegel. Berücksichtigt man jedoch die Verdunstung, gelangt das Wasser in trockenen Gebieten möglicherweise nie ins Meer.
Eine passende Antwort für Pi Day. Wie ein Fluss fließt, schlängelt er sich durch die Landschaft, er folgt einem geschwungenen Pfad. Wenn Sie die Länge des Flusses nehmen und ihn durch die direkte Route vom Anfang bis zum Ende des Flusses teilen, erhalten Sie die "Schlangen" des Flusses. Dies ist ein Maß dafür, wie gebogen der Fluss ist. Jeder Fluss kann eine Reihe von Windungen haben, aber Sie können zeigen, dass die durchschnittliche Windung aller Flüsse auf der Welt ... Pi sein sollte. Ernsthaft. Sehen Sie sich dieses fantastische Video von Numberphile an, um mehr zu erfahren . Es ist eine merkwürdige Tatsache, dass Flüsse Altwasser bilden und sich dabei begradigen. In der Praxis finden Sie keine Sinuositäten größer als 3,5 und nicht wirklich unter 2,7.
Denken Sie daran, dass Pi der erwartete Durchschnitt aller Flüsse ist, und dies unter idealen Bedingungen. Die reale Topographie wird dazu führen, dass dies variiert, aber dies dient als gute Annäherung dafür, wie gerade oder gebogen ein bestimmter Fluss sein sollte.
IMHO scheint keine Ihrer Grafiken plausible Flüsse zu sein.
Zum einen (offensichtlich) ist ihre Länge winzig. Der Meeresspiegel ist ein willkürliches Artefakt der globalen Temperatur und des verfügbaren Oberflächenwassers. Kontinente hingegen sind das Ergebnis (zumindest auf diesem Planeten) der Entstehung, Kollision und Subduktion tektonischer Platten. Ein Flusssystem entwässert einen Grundwasserleiter. Wenn ein Gebiet flach angelegt würde, gäbe es wenig Grund zu der Annahme, dass sich ein Fluss bildet.
Das Flusssystem wäre höchstwahrscheinlich auf allen Längenebenen stark verzweigt ausgebildet. Als Freizeitbiker kann ich Ihnen sagen, dass es nur wenige Gebiete auf der Erde gibt, die "flach" sind (Salzebenen sind die Ausnahme).
Das Problem mit Ihrer Annahme der Flachheit ist, dass es keine Entwässerung geben wird, was bedeutet, dass es keinen Grund für die Existenz eines Flusses gibt.
So würde ich eine Welt erschaffen:
Der Unterschied zwischen diesem Ansatz und Ihrem ist ziemlich tiefgreifend, imho. Sie möchten zwei Punkte verbinden. Ich sage, entleeren Sie das ganze Land, beginnend mit dem Hochland, arbeiten Sie sich in Richtung des Tieflandes vor. Nicht von Punkt 1 nach 2, 3 nach 4. Sondern von den Bereichen A, B, C, ... zu den Punkten α, ß, Γ, ..., während Sie sich gleichzeitig in der Höhe nach unten arbeiten.
Übrigens sollten Sie sowohl Mäander, Zöpfe als auch Anastomosen einbeziehen (siehe https://en.wikipedia.org/wiki/Channel_types ) - zumindest in einigen Fällen.
Gehen Sie zuerst zu YouTube und suchen Sie nach Why Do Rivers Curve und klicken Sie auf die erste. Ich fand dieses Video sehr hilfreich. Das meiste, was ich Ihnen sagen kann, stammt aus diesem Video, also hier sind einige wichtige Punkte:
Die Länge eines "s" in einem Fluss ist ungefähr sechsmal so breit wie der Fluss.
Wenn irgendwelche Störungen im Weg sind, wird der Fluss einfach um die Störung herumfließen.
Ein Mäander kann durch fast alles verursacht werden, also aßen sie ziemlich häufig. Manchmal ist das s dünner als andere, weil es einen Altwassersee gebildet hat.
Sieht so aus, als hätte Ihr Diagramm mindestens ein Beispiel für die Flusserfassung (der Fluss fließt auf einer Route ins Meer und über eine andere auf demselben Fluss in einen See), was nicht so häufig vorkommt und am Erfassungspunkt, an dem Wasser beide Zweige hinunterfließen kann Situation wird sehr kurzlebig sein („H“-förmig).
Die meisten Flüsse münden schließlich ins Meer, obwohl die Verdunstung in einigen Fällen in heißen Gebieten zu Verdunstungsbecken führen kann. Sie haben einige davon mit Seen, was in Ordnung ist, aber denken Sie an die ungewöhnlichen Umstände.
Wenn Sie einen realistischen Fluss erzeugen möchten, schlage ich vor, dass Sie am obersten Oberlauf oder am Abfluss beginnen und von dort aus flussabwärts oder flussaufwärts arbeiten. Wenn Sie stromaufwärts arbeiten, sollten Sie sich einige Fragen stellen: Erstens, wie viel Wasser fließt ab? Wenn alle anderen Dinge gleich sind, hilft dies bei der Bestimmung der Fläche des Einzugsgebiets und der Länge des Flusses.
Sie können dann stromaufwärts mit verzweigten Nebenflüssen arbeiten, während Sie weiterfahren. Jede Meile des Flusses und jeder Nebenfluss sollte die Größe des Flusses verringern. Offensichtlich (wenn man den Fluss auf seine Weise berechnet) ist die Strömung bergauf, so dass im Laufe der Zeit die Wahrscheinlichkeit von Hügeln oder Bergen steigen sollte. Der Fluss wird also definieren, wo sich die Anhöhe befindet.
Die andere Möglichkeit besteht darin, flussabwärts zu arbeiten, wenn Sie im Landesinneren beginnen. In diesem Fall muss die Annahme von niedrigerem Land voraus sowie die Möglichkeit der Zusammenführung von Nebenflüssen bestehen. In diesem Fall definieren die Flüsse, wo das Meer ist. In sehr großen Flüssen in niedrigen Lagen in Meeresnähe besteht auch die Möglichkeit, dass sich Nebenarme bilden und der Fluss sich zu einem Delta auffächert.
Ich würde die „H“-förmigen Flussabschnitte vermeiden, außer vielleicht in einer Deltaregion. Ich würde sorgfältig darüber nachdenken, auch Flüsse in Binnenseen folgen zu lassen. Es ist möglich und es gibt viele Beispiele, aber es ist weitaus seltener als Flüsse, die um mehrere Größenordnungen ins Meer fließen.
Möglicherweise möchten Sie einen anderen Algorithmus für die verschiedenen Stadien in der Flussentwicklung von schnellen Gebirgsbächen bis hin zu langsameren Flachlandflüssen mit immer mehr Schleifen und Überschwemmungstopologien (Ochsenbogenseen) schließlich und optional einem Delta verwenden. Übrigens kann ein Fluss in einem flachen Gebiet durchaus so eine Schleife bilden, dass er einen Teil von sich selbst abschneidet. Das sind Altarme. https://en.wikipedia.org/wiki/Oxbow_lake
Mormacil
HDE226868
Mormacil
Schlurfhose
Monika Cellio
Therat
Mawg sagt, Monica wieder einzusetzen
Gerrit
Markt
jamesqf
Morrison Chang
Markt