Warum führen die meisten Samen dazu, dass das Perlin -Rauschen vertikale Linien werden?Python

Python-Programme
Guest
 Warum führen die meisten Samen dazu, dass das Perlin -Rauschen vertikale Linien werden?

Post by Guest »

Ich versuche meine Hand bei Perlin -Rauschen, damit ich DND -Karten erstellen kann, aber mein Python -Projekt scheint immer entweder perfekt vertikale Linien oder Rauschen zu erstellen, die extrem vertikal herauskommen. Typische Generation Typische Halbgeneration

from asyncio import WindowsProactorEventLoopPolicy
import numpy as np
import matplotlib.pyplot as plt
from noise import pnoise2
import random
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

def update_plot():
shuffle_and_plot()

def generate_perlin_map(width, height, scaling, octaves=6, persistence=0.6, lacunarity=5, threshold=0.7, seed=None):
"""Generates a Perlin noise heat map with thresholding and an optional random seed."""
if seed is not None:
random.seed(seed)

noise_map = np.zeros((height, width))
for y in range(height):
for x in range(width):
noise_map[y][x] = pnoise2(x / width, y / height, octaves=10, persistence=.8, lacunarity=2, base=seed)

# Normalize values to range 0-1
noise_map = (noise_map - noise_map.min()) / (noise_map.max() - noise_map.min())

# Apply thresholding
#noise_map = np.where(noise_map > threshold, .5, 0)
return noise_map

def plot_heatmap(noise_map):
"""Displays the generated heat map."""
plt.imshow(noise_map, cmap='gray', interpolation='nearest')
plt.title("Perlin Noise Heat Map")
plt.show()

def shuffle_and_plot():
"""Regenerates the noise map with a new seed and plots it."""
global noise_map
new_seed = random.randint(0, 10000) # Randomize seed for different patterns
noise_map = generate_perlin_map(width = 1000, height = 1000, scaling = .02, seed=new_seed)
plot_heatmap(noise_map)

root = tk.Tk()
root.title("Perlin Noise Generator")
button = tk.Button(root, text="Shuffle", command=update_plot)
button.pack()
root.mainloop()

< /code>
Ich habe versucht, die Breite, Höhe, Oktaven, Persistenz und Leck zu erhöhen und zu verringern und eine Skalierungsvariable für die Breite und die Höhen hinzuzufügen, aber immer in den vertikalen Linien (vertikale Linien ( zumindest bei den meisten Samen).

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post