为了账号安全,请及时绑定邮箱和手机立即绑定

地图生成器的渐变圆

地图生成器的渐变圆

C#
GCT1015 2019-11-04 10:14:26
因此,我正在制作一个可生成随机岛的地图生成器。它在生成器的心脏处使用Perlin噪声,然后在使用具有渐变的圆的方法来制作孤岛。circle方法在地图的中心创建了多个圆形,其渐变从颜色开始(从64到0)渐变。问题在于,此方法在具有圆形边缘的地图部分上创建了非自然外观。当为一个像素生成Perlin噪声时,它将在渐变图上获得该像素,然后使其与蓝色值互斥。因此,如果Perlin噪声在像素1、5上给出1,并且渐变图上的蓝色值为54,则将输出54的噪声值。如果在像素130、560上的Perlin噪声为0.5,且渐变颜色值为64那么噪声值为32。该代码有两个关键点,佩林位:noise = NoiseGenerator.Noise(x, y);double gradColour = getGradColour(x, y).B;double addedNoise = noise * gradColour;double gradNoise = addedNoise;// - gradColour;然后是渐变图生成器:    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 = { C2 };        pathGrBrush.SurroundColors = colours;        g.FillEllipse(pathGrBrush, X, Y, R, R);        //g.FillEllipse(Brushes.Red, X, Y, R, R);        g.Flush();    }        int amount = rnd.Next(25, 30);        for (int i = 0; i < amount / 4; i++)        {            float X = rnd.Next(-800, 1748);            float Y = rnd.Next(-800, 1748);            float R = rnd.Next(1000, 1200);            DrawGrad(X, Y, R, Color.FromArgb(255, 0, 0, rnd.Next(15, 20)), Color.FromArgb(0, 0, 0, 0));        }        for (int i = 0; i < amount; i++)        {            double positionDiv = 1.98;            double X1 = rnd.Next(0, 450) / positionDiv;            double Y1 = rnd.Next(0, 450) / positionDiv;            double R1 = rnd.Next(300, 650) / 4;            float R = (float)R1;            float X = (float)X1;            float Y = (float)Y1;            while (X + R > 1004)            {                X = 924 - R;            }            while (Y + R > 1004)            {                Y = 924 - R;            }            if(X < 30)            {                X = 30;            }我只是想知道是否还有其他人知道C#中的其他方法可以使用perlin噪声创建孤岛?任何建议将不胜感激。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 381 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信