小编Ric*_*ard的帖子

地图生成器的渐变圆

所以我正在制作一个可以制作随机岛屿的地图生成器。它在生成器的核心使用柏林噪声,然后使用带有渐变的圆来制作岛屿。

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)

c# dictionary generator noise

4
推荐指数
1
解决办法
2438
查看次数

依次遍历php中的scandir()

尝试创建一个库,并通过创建文件树然后使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)

php filesystems loops dir scandir

0
推荐指数
1
解决办法
1111
查看次数

标签 统计

c# ×1

dictionary ×1

dir ×1

filesystems ×1

generator ×1

loops ×1

noise ×1

php ×1

scandir ×1