分形——毕达哥拉斯树
1.思路:
首先,画一个正方形(相当于树干,是最下面的一个正方形;
其次,以上一个正方形最上面的边(顶边)为直角三角形的斜边;
以该边的左边一点为下一个正方形的底边上的一点,旋转一定角度画正方形(左边正方形;
同样的方法,以另一点(右边)再画一个正方形(右边正方形;
这两个正方形的底边与上一个正方形顶边组成一个直角三角形;
然后,用递归(即重复以上方法)画出整个分形;
2.分析:左右两边的正方形旋转的角度加和为90度;
先假设左边的正方形旋转30度,即右边为60度(每次旋转角度相同)
每次同时画左右两边
3.操作:在监听器中实现(新正方形顶边左(a1,a2)右(b1,b2)直角三角形直角顶点(c1,c2))
public void mouseReleased(MouseEvent e) {
//基础正方形
g.drawRect(500, 500, 100, 100);
//调用分形的方法
Draw(500,600,600,600,0,0);
}
//分形的方法
public void Draw(double x1,double y1,double x2,double y2,double jiaodu,int n){
//上一个正方形的边长左(x1,y1)右(x2,y2)
double s1=Math.hypot(Math.abs(x2-x1), Math.abs(y2-y1));
//jiaodu---上一个正方形转动的角度,P为3.1415,Q1为每次左边正方形的转动角度,Q2为每次右边正方形的转动角度
double sin1=Math.sin(jiaodu*P/180);
double cos1=Math.cos(jiaodu*P/180);
double b=s1*Math.cos(Q1*P/180);
double a1,a2,b1,b2,c1,c2;
a1=x1-s1*sin1; a2=y1-s1*cos1;
b1=x2-s1*sin1; b2=y2-s1*cos1;
c1=a1+b*Math.cos((jiaodu+Q1)*P/180);
c2=a2-b*Math.sin((jiaodu+Q1)*P/180);
g.drawLine((int)x1, (int)y1, (int)x2, (int)y2);
g.drawLine((int)x1, (int)y1, (int)a1, (int)a2);
g.drawLine((int)a1, (int)a2, (int)b1, (int)b2);
g.drawLine((int)b1, (int)b2, (int)x2, (int)y2);
g.drawLine((int)a1, (int)a2, (int)c1, (int)c2);
g.drawLine((int)c1, (int)c2, (int)b1, (int)b2);
//递归次数
n++;
if(n>11) return;
//递归调用
//左边正方形
Draw(a1,a2,c1,c2,jiaodu+Q1,n);
//右边正方形
Draw(c1,c2,b1,b2,jiaodu-Q2,n);
}
- 大小: 2.6 KB
- 大小: 13.3 KB
- 大小: 28.4 KB
分享到:
相关推荐
《Higuchi算法在声发射分形维数计算中的应用》 分形,这一概念源自数学,是指在不同尺度上具有相同或相似结构的几何形态,它揭示了自然界中复杂结构的内在规律。Higuchi算法是计算一维时间序列分形维数的一种有效...
多重分形分析是一种复杂的数据分析方法,主要用于研究具有非线性、非高斯特性和尺度不变性的信号或图像。在标题“多重分形,多重分形谱,matlab”中,我们可以看出本主题关注的是使用MATLAB进行多重分形谱的计算。...
在Python编程语言中,我们可以利用turtle模块来创建各种图形,包括复杂的艺术作品,如分形树。分形是一种自相似的几何形状,在自然界中广泛存在,比如树叶、山脉和云朵。分形树就是一种利用分形理论绘制的树形图案,...
分形几何是一种在自然界中广泛存在的数学概念,它具有自相似性和无穷细节的特性。分形树是分形几何中的一个经典例子,模拟了自然界中树木的形态。在这个项目中,我们将探讨如何通过编程实现分形树的生成,以及相关的...
分形维数是一种用于描述复杂几何形状或结构的数学概念,尤其在图像处理和计算机科学领域有着广泛的应用。本主题将深入探讨如何使用MATLAB来计算分形维数,特别是针对二值图像的情况。 首先,我们需要理解什么是分形...
在MATLAB中,分形维数的计算是数学与计算机科学的一个重要领域,特别是在图像处理、几何形态学和复杂系统的研究中。分形维数是一种描述不规则形状复杂性的度量,它超越了传统的欧几里得几何维度,能够更好地刻画现实...
分形插值的matlab程序-分形插值曲面的MATLAB程序.pdf 传统的插值方法, 在相邻的两个信息点之间只能插出直线或者光滑曲线, 而分形插值运用自仿射原 理, 在两个信息点之间可以得到各种波状起伏的折线, 这对于模拟...
在这个主题中,我们将探讨如何使用OpenGL来实现分形树。分形树是一种基于数学规则的自相似图形,它通过递归过程生成,具有高度的细节和复杂性。这种图形在计算机图形学中经常被用来创建逼真的自然环境。 首先,我们...
分形维数是一种用于描述复杂几何形状或结构维度的概念,它超越了传统的欧几里得几何中的整数维度。在MATLAB中实现分形维数的计算,可以帮助我们理解和分析各种自相似或具有分形性质的数据。下面我们将深入探讨分形维...
《混沌与分形:科学的新疆界(第2版)》介绍了分形与混沌理论的基础知识、基本原理和特性,包括:分形与自相似、分形的维数与测度、分形与图像数据压缩编码、随机性与确定性、分形的递归结构、细胞元自动机与吸引子、...
分形几何是一种在数学、计算机科学以及艺术领域中广泛应用的理论,它研究的是那些具有自相似性质的复杂形状。在MATLAB中,分形可以通过编程实现,为科学家和工程师提供了强大的工具来模拟自然现象和进行数据可视化。...
在IT领域,分形维数计算是复杂系统和非规则形状研究的重要工具,尤其是在图像处理、信号分析和自然科学中有着广泛的应用。MATLAB作为一种强大的数值计算软件,为分形理论的实现提供了便利。本篇文章将深入探讨标题和...
分形理论的基本内容包括分形几何、分形维数、分形图形的生成、分形生长模型与模拟、分形插值与模拟、随机分形以及与分形密不可分的混沌理论。分形几何主要是研究分形图形的基本概念和性质。分形维数是用来描述分形...
分形维数matlab代码 分形维数是一种重要的 fractal 分析方法,它可以用来描述 fractal 结构的复杂度。在这个资源中,我们提供了一个 Matlab 代码,用于计算一维信号的盒维数分形维数。 分形维数的定义 分形维数是...
多重分形是数学和物理领域中的一个重要概念,它在复杂系统的研究中扮演着核心角色。多重分形理论扩展了单一分形维度的概念,允许我们更深入地理解和描述那些具有多种尺度特征的复杂对象。在本压缩包中,包含了用于...
### 分形几何——数学基础及其应用 #### 一、引言 分形几何是一门研究不规则几何形状的数学分支,这些形状具有自相似性、分数维数等特性。本书《分形几何——数学基础及其应用》(第二版)由英国数学家Kenneth ...
分形插值是一种在计算机科学和数学领域中用于数据拟合和插值的高级技术,特别是在处理不规则或复杂的数据集时。它基于分形理论,即利用分形几何的特性来构建连续函数,使该函数能够精确地通过离散的数据点。在MATLAB...
多重分形谱计算程序在MATLAB环境中的应用主要集中在复杂数据集的分析,特别是金融市场的研究上。多重分形谱(Multifractal Spectrum)是一种描述系统复杂性和自相似性特征的数学工具,它超越了传统的单一分形概念,...