所以我正在制作一个可以制作随机岛屿的地图生成器。它在生成器的核心使用柏林噪声,然后使用带有渐变的圆来制作岛屿。
circle 方法在地图的中心创建了许多圆圈,颜色从 64 开始渐变到 0。问题是这种方法正在创建具有圆形边缘的地图部分的不自然外观。当为一个像素生成柏林噪声时,它将在梯度图上获取该像素,然后将其乘以蓝色值。
因此,如果柏林噪声在像素 1、5 上给出一个 1 并且渐变图上的蓝色值为 54,它将输出噪声值为 54。如果像素 130、560 上的柏林噪声为 0.5,渐变颜色值为 64那么噪声值为 32。
这是我得到的:

代码有两个关键点,perlin 位:
noise = NoiseGenerator.Noise(x, y);
double gradColour = getGradColour(x, y).B;
double addedNoise = noise * gradColour;
double gradNoise = addedNoise;// - gradColour;
Run Code Online (Sandbox Code Playgroud)
然后是渐变图生成器:
public static void DrawGrad(float X, float Y, float R, Color C1, Color C2)
{
Graphics g = Graphics.FromImage(imgGrad);
GraphicsPath path = new GraphicsPath();
path.AddEllipse(X, Y, R, R);
PathGradientBrush pathGrBrush = new PathGradientBrush(path);
pathGrBrush.CenterColor = C1;
Color[] colours …Run Code Online (Sandbox Code Playgroud) 尝试创建一个库,并通过创建文件树然后使PHP遍历它来进行创建。最初,所有内容都是按字母顺序排列的,但是现在我在图库中添加了更多内容,这变得有些随机。通过按字母顺序对目录中的文件夹/文件进行排序并将它们放入数组中,来读取scandir()起作用的地方。仍然按字母顺序遍历数组的最佳方法是什么?这是现有的代码:
$newFiles = scandir("images/decks/", 1);
Run Code Online (Sandbox Code Playgroud)
用于遍历目录的原始代码使用:
foreach (new DirectoryIterator('images/decks/') as $fileInfo) {
Run Code Online (Sandbox Code Playgroud)