C# 分形
//C# 分形Demo
Random rm;
static Graphics g; //画板
static Bitmap bim; //绘画图像
static Pen pen; //笔刷
private void Form4_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
bim = new Bitmap(this.Width, this.Height);
g = Graphics.FromImage(bim);
//设置背景色
g.Clear(Color.DarkGray);
this.BackgroundImage = bim;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; //抗锯齿
rm = new Random();
drawTree(new Point(ClientSize.Width / 2, ClientSize.Height), Math.PI / 2, 100, 10);
}
/// <summary>
/// </summary>
/// <param name="n">分支次数</param>
/// <param name="point">划线位置</param>
/// <param name="angle">偏转角度</param>
/// <param name="length">线长</param>
/// <param name="width">线宽</param>
void drawTree(Point point, double angle, double length, float width)
{
if (length<=10)
return;
int cRed = rm.Next(0, 100);
int cGreen = rm.Next(0, 256);
int cBlue = rm.Next(0, 100);
Color color = Color.FromArgb(cRed, cGreen, cBlue);
Point p = new Point(point.X + (int)(length * Math.Cos(angle)), point.Y - (int)(length * Math.Sin(angle)));
Pen pen = new Pen(color, width);
g.DrawLine(pen, point,p);
drawTree(p, angle + Math.PI / 10, length * 0.9, width * 0.8f);//递归画左半个
drawTree(p, angle - Math.PI / 10, length * 0.8, width * 0.8f);//递归画右半个
}

drawTree(p, angle + Math.PI / 10, length * 0.9, width * 0.8f);//递归画左半个
drawTree(p, angle - Math.PI / 50, length * 0.9, width * 0.8f);//递归画右半个



作者:儒良设计
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
浙公网安备 33010602011771号