Python Aléatoire de Génération de Carte avec le Bruit de Perlin

Récemment, j'ai été de tenter de vaincre l'une de mes principales faiblesses dans la programmation en général, de génération aléatoire. Je pensais que ce serait une chose facile à faire, mais le manque d'information simple est de me tuer sur elle. Je ne veux pas paraître idiot, mais il se sent à moi comme la plupart des informations provenant d'endroits comme cette sont écrits pour les mathématiciens qui est allé au collège d'études supérieures en mathématiques théoriques. Je ne comprends juste pas ce que je suis censé faire avec cette information afin de pouvoir l'appliquer à la programmation dans un langage comme python.

J'ai travaillé quelques jours à regarder des équations et de la tentative tentative après tentative, mais encore après tous ces jours, après l'extraction mon code à part, encore et encore, tout ce qui a été fonctionne correctement l'ensemble de ce temps, est-ce le bruit de générateur pour produire de base du bruit:

import random
import math

random.seed(0)

def generateWhiteNoise(width,height):
    noise = [[r for r in range(width)] for i in range(height)]

    for i in range(0,height):
        for j in range(0,width):
            noise[i][j] = random.randint(0,1)

    return noise

noise = generateWhiteNoise(50,12)

for i in noise:
    print()
    for o in i:
        if(o == 0):
            print('-',end='')
        else:
            print('#',end='')

Ce code donne ce résultat:

##-######--#--#-#--##-###-###---#-##-#-----#--##-#
#-#-##-##-#----##------##--#####-#-##---#--#-##---
-------#-#------#---#-#---###--#--#-###-----##-#--
######--#-#-#--####-###---#---###-##--#-#-##--####
-#----###--------##--##--##-#-#--#----###-####--##
---####-#--#--###-#-#--#--#####--####-#-##-##--#--
----#--####-#-#-#-#-#---#--###------###--#-######-
--###--#-###-------#-##--###---#-####----###-#####
#----##--##-#--##-###--#----#-#-##--##-#-##---###-
##---##----##--##--#--#--###-###-#--#-##---#------
-##----#-###---######---#-#---#---###---#---###-##
#--##-##-###-###---#--##-##--##-##-#-#-##--#-#-##-

Je suis désireux de faire éventuellement produire quelque chose comme ceci:

--------------------------------------------------
------------------####----------------------------
-----------------#####----------------------------
----------------#####-----------------------------
---------------#####--------------###-------------
---------------#####--------------###-------------
---------------------------------####-------------
---######------------------------####-------------
---######------------###--------------------------
----########---------###--------------------------
-----#######---------###--------------------------
------###-----------------------------------------

Comment puis-je gérer pour lisser le bruit blanc je génère, et de le transformer dans les îles? Quelqu'un peut l'expliquer de façon très simpliste pour moi?

J'ai peut-être penser à propos de tout cela très mal.

  • Je prendrais user1483482 de la suggestion. Si vous voulez en savoir plus sur le fonctionnement interne essayez de regarder ici: devmag.org.za/2009/04/25/perlin-bruit j'ai reproduit son code en python, et il fonctionne, mais il est très lent, même avec numpy.
InformationsquelleAutor NAME__ | 2013-07-22