`
快乐的拖拉机
  • 浏览: 9586 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

分形初步

 
阅读更多
                                                                                               分形的总结
        首先我想在总结前申明依据,分形是“分形”这两个字而不是“分型”,这两者差别还是比较大的,千万不要乱用。           
一、
做分形的感受:这是我第一次做分形,从来没有接触过,突然发现分形真的特别的神奇,原来最简单的重复往往会创造出最耀眼的美丽,
一个点一个点的积累会形成让你我都叹为观止的神奇于美丽,感觉分形很是不可思议 ,这样简单的积累就会得到这么美丽的世界,让我突然认识到:
只要量变达到一定的积累,那么耀眼只是一瞬间的功夫,后面的面的路还长,加油吧,从现在就开始人生的分形吧                                                        
1、什么叫分形?
  分形,具有以非整数维形式充填空间的形态特征。1973年,曼德布罗特(B.B.Mandelbrot)在法兰西学院讲课时,首次提出了分维
  和分形几何的设想。分形(Fractal)一词,是曼德布罗特创造出来的,其原意具有不规则、支离破碎等意义,分形几何学是一门以
  不规则几何形态为研究对象的几何学。由于不规则现象在自然界普遍存在,因此分形几何学又被称为描述大自然的几何学。分形几何学建立
  以后,很快就引起了各个学科领域的关注。不仅在理论上,而且在实用上分形几何都具有重要价值。
2、画分形图形主要就是函数的问题,只要把相关的参数设置正确,画出图形还是比较简单的,用计算机画分形的最大优点就是可以重复很多次
   用量变来展示出质变的美丽。
   package Shape;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PrinterGraphics;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class SuprisePitureListener implements ActionListener {
private Graphics g;
private JFrame sp;
//写一个构造方法,传参数
public SuprisePitureListener(Graphics g, JFrame sp) {
// TODO Auto-generated constructor stub
this.g = g;
this.sp = sp;
}
//画出第一个图形
public void actionPerformed(ActionEvent e) {
//清除屏幕上的图形
sp.getGraphics().clearRect(0, 0, 1500, 1500);
if (e.getActionCommand().equals("Picture1")) {
double a = -2;
double b = -2;
double c = -1.2;
double d = 2;
double x = 0;
double y = 0;
double nextx;
double nexty;
int tempx;
int tempy;

for (int j = 0; j < 200000; j++) {
nextx = (Math.sin(a * y) - Math.cos(b * x));
nexty = (Math.sin(c * x) - Math.cos(d * y));
tempx = (int) (x * 100) + 300;
tempy = (int) (y * 100) + 300;
g.setColor(Color.BLACK);
System.out.println(tempx + "      " + tempy);
g.drawLine(tempx, tempy, tempx, tempy);
x = nextx;
y = nexty;
}
//让屏幕上的图形延迟一段时间
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
//清除屏幕上的图形
sp.getGraphics().clearRect(0, 0, 1500, 1500);
}
if (e.getActionCommand().equals("Picture2")) {
double a = 1.4;
double b = 1.56;
double c = 1.4;
double d = -6.56;
double x = 0;
double y = 0;
double nextx;
double nexty;
int tempx;
int tempy;

for (int i = 0; i < 50000; i++) {
nextx = (d * Math.sin(a * x) - Math.sin(b * y));
nexty = (c * Math.cos(a * x) - Math.cos(b * y));
tempx = (int) (50 * x) + 400;
tempy = (int) (50 * y) + 400;
g.setColor(Color.BLACK);
g.drawLine(tempx, tempy, tempx, tempy);
x = nextx;
y = nexty;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
sp.getGraphics().clearRect(0, 0, 1500, 1500);
}
if (e.getActionCommand().equals("Picture3")) {
// sp.getContentPane().setBackground(Color.BLACK);


double a = 0.4;
double b = 1;
double c = 0;
double x = 0;
double y = 0;
double nextx;
double nexty;
int tempx;
int tempy;
//sp.setBackground(Color.black);
for (int i = 0; i < 500000; i++) {

nextx = y - Math.signum(x) * Math.sqrt(Math.abs(b * x - c));
nexty = a - x;
tempx = (int) (x * 100) + 300;
tempy = (int) (y * 100) + 300;
    g.setColor(Color.BLUE);
g.drawLine(tempx, tempy, tempx, tempy);
x = nextx;
y = nexty;

}

try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
sp.getGraphics().clearRect(0, 0, 1500, 1500);
}
if (e.getActionCommand().equals("Picture4")) {
double a = 1;
double b = 4;
double c = 60;
double x = 0;
double y = 0;
double nextx;
double nexty;
int tempx;
int tempy;
for (int i = 0; i < 50; i++) {
Random rand = new Random();
int count1 = rand.nextInt(255);
int count2 = rand.nextInt(255);
int count3 = rand.nextInt(255);
for (int i1 = 0; i1 < 20000; i1++) {
Random rand1 = new Random();
nextx = y - Math.signum(x) * Math.sqrt(Math.abs(b * x - c));
nexty = a - x;
tempx = (int) (x * 1.2) + 450;
tempy = (int) (y * 1.2) + 450;
g.setColor(new Color(count1, count2, count3));
g.drawLine(tempx, tempy, tempx, tempy);
x = nextx;
y = nexty;
System.out.println(tempx + "     " + tempy);
}

}
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
sp.getGraphics().clearRect(0, 0, 1500, 1500);
}
if (e.getActionCommand().equals("Picture5")) {
Random rand = new Random();
double a = 0;
double b = 0;
double c = 0;
double d = 0;
double x = 0;
double y = 0;
double nextx;
double nexty;
int tempx;
int tempy;
for (int j = 0; j < 3; j++) {

if (j == 0) {
a = 1.5;
b = -1.8;
c = 1.6;
d = 0.9;

}
if (j == 1) {
a = 1.7;
b = -1.7;
c = 0.06;
d = 1.2;
}
if (j == 2) {
a = -1.4;
b = 1.6;
c = 1.0;
d = 0.7;
}

for (int i = 0; i < 10; i++) {

int count1 = rand.nextInt(255);
int count2 = rand.nextInt(255);
int count3 = rand.nextInt(255);

for (int i1 = 0; i1 < 5000; i1++) {
nextx = (Math.sin(a * y) + c * Math.cos(a * x));
nexty = (Math.sin(b * x) - d * Math.cos(b * y));
tempx = (int) (100 * x) + 400;
tempy = (int) (100 * y) + 400;
g.setColor(new Color(count1, count2, count3));
g.setColor(Color.BLACK);
g.drawLine(tempx, tempy, tempx, tempy);
x = nextx;
y = nexty;

}

}
System.out.println(a);
try {
Thread.sleep(1000);
} catch (InterruptedException e2) {
e2.printStackTrace();
}
sp.getGraphics().clearRect(0, 0, 1500, 1500);
}
}
}
}
  
分享到:
评论

相关推荐

    分形初论--------分形的初步介绍

    ### 分形初论——分形的初步介绍 #### 一、引言 分形是一种复杂的几何形状或图案,它在各个尺度上都表现出自相似的性质。这种自相似性不仅体现在数学模型上,而且广泛存在于自然界和社会现象之中。本文旨在通过对...

    Fractal-interpolation.zip_分形函数_分形插值_分形插值 matlab_分形插值matlab

    1. **数据预处理**:收集的数据点通常需要进行初步处理,例如检查缺失值、异常值和噪声,以确保插值的准确性。 2. **选择分形模型**:分形插值有许多不同的模型,如Hermite分形插值、Julia集分形插值等。选择合适的...

    多重分形谱计算程序matlab

    2. 分形分析:使用MATLAB的分形分析函数,如Hurst指数计算,来初步评估数据的分形性质。Hurst指数可以反映数据的长期依赖性,有助于判断市场趋势。 3. 多重分形谱计算:这部分通常涉及自相似权重函数的构建、区间...

    多重分形分析结果

    1. **数据预处理**:对原始时间序列进行初步处理,如去趋势化等。 2. **分段处理**:将处理后的数据分割成若干个不重叠的部分。 3. **局部多项式拟合**:在每个部分上进行多项式拟合,去除局部趋势。 4. **计算残差...

    基于分形理论的高效机器视觉检测系统.doc

    CVS-1450作为实时紧凑视觉系统,用于图像采集和初步处理。多个CVS系统通过1394摄像头捕获数据,并通过工业以太网传输到PXI中心进行进一步分析。 软件部分主要基于LabVIEW 7.1开发,这是一个强大的图形化编程环境,...

    论文研究-一种基于小波变换与分形编码的新闻图片检索方法.pdf

    在本论文中,小波变换被用于新闻图片的初步处理,以捕捉图片的主要特征和局部细节信息。 其次,分形编码是一种基于自相似性的图像压缩技术。分形编码基于数学中的分形理论,通过分析图像中具有相似性的小块区域,将...

    计算机图形学之-分形几何.ppt

    统计自相似与分数维》,标志着分形思想的初步形成。1973年,他在法兰西学院提出了分形几何学的整体构想,并认为分数维是研究多种物理现象的有效工具。1982年,《大自然的分形几何学》一书的出版使曼德尔布罗特在学术...

    基于分形和混沌的信号检测

    "Paper\pdf\left.htm"可能是一个HTML版本的论文摘要或目录,为读者提供了初步的阅读材料。 综上所述,"基于分形和混沌的信号检测"是一个深入探讨非线性信号处理技术的主题,它结合了分形和混沌理论,为复杂信号的...

    基于分形理论的煤矿透水事故空间分布规律研究

    针对现有煤矿透水理论难以深入分析系统内在规律的问题,基于分形思想,根据我国2001—2010年的煤矿透水事故资料,应用盒维数法和事故死亡人数标度-频度模型对煤矿透水事故的空间分布分形特征进行研究,初步探讨我国总体...

    毕业设计MATLAB_分形股价生成器.zip

    5. 结果分析:理解如何通过可视化手段(如MATLAB的plot函数)来展示生成的股价数据,从而进行初步的数据分析。 总的来说,这个毕业设计项目提供了一个良好的平台,让学生能够结合数学理论与实际编程技能,深入理解...

    分形神经网络视阈下电力电子电路故障诊断研究.pdf

    通过比较这些值,可以初步判断故障的类别。 接下来,BP神经网络被用来进一步确定故障的具体类型和定位。BP神经网络是一种典型的监督学习模型,擅长处理非线性问题,能够通过学习和调整权重来优化网络性能。在本研究...

    基于IFS确定性迭代算法的麦粒分形组织设计法 (2012年)

    针对L系统在绘制织物分形组织图方面存在的局限,运用IFS的确定性迭代算法生成规则,结合计算机图形...结合纺织CAD技术,借助电子提花机进行了相应的组织织造实验,对设计形成风格新奇的织物组织的新方法进行了初步的探讨。

    多孔介质传热传质分形理论初析 (2001年)

    在本研究中,作者施明恒与陈永平从东南大学动力工程系出发,对分形理论在多孔介质传热传质过程中的应用进行了初步分析,并且求得了基于分形理论的多孔介质固有渗透率和有效导热系数。他们所建立的多孔介质渗流与导热...

    分形图的加密与解密技术 (2006年)

    提出了分形理论在信息保密中的一种应用途径。利用Newton迭代法生成分形图后,通过置乱变换。对其进行加、解密操作,实现了非线性模型对分形图的加、解密。初步展示了分形图在加密、解密中的处理方法。

Global site tag (gtag.js) - Google Analytics