C# 分形树制作教程

分形树制作教程

一、引言

实验目的

熟悉图形化界面程序,开发有趣应用。同时,进一步了解C#的图形化编程。

实验任务

参考分形的概念要求

  • 通绘制分形树或者其他分形图形。
  • 可以对图形进行保存和打开等操作。
实验环境
  • VS2019
  • .NET Framework 4.7.2

二、 实验过程

需求分析

使用C# 的GDI界面绘制图形,并对图形进行保存。总体而言就是使我们熟练的掌握如何使用C#的UI界面对图形进行绘制,在操作要求上和之前的画图软件的要求差不多。唯一有点区别的就是对于分形的掌握。

分形

分形是一种很广义的概念,较为著名的有如Mandelbrot,Julia等等

在这里插入图片描述
在这里插入图片描述

总而言之,分形是由某种形状的部件组成,在某种程度上类似于整体。所以就可以从一个非常简单的图形生成一个极度复杂的图像。而分形因此就天然的具有了递归的特性,本次实验则是选择一个较为简单的分形树作为练手。

在这里插入图片描述

没错就是我!

三、代码实现

核心代码
void drawTree(int n,Point point, double angle, double length, float width)
        {
   
            if (n == 0)
            {
   
                return;
            }
            Point p = new Point(point.X + (int)(length * Math.Cos(angle)), point.Y - (int)(length * Math.Sin(angle)));
            Pen pen = new Pen(Color.Black, width);
            g.DrawLine(pen, point, p);
            drawTree(n-1,p, angle + Math.PI / 9, length * 0.8, width * 0.8f);//递归画左半个
            drawTree(n-1,p, angle - Math.PI / 9, length * 0.8, width * 0.8f);//递归画右半个
        }

解释一下这段代码
参数n表示分支次数,当进行十次分支后,分形结束。
参数point,表示划线位置
angle,length,width分别表示偏转角度,线长,线宽。

Point p = new Point(point.X + (int)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值