⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ifsabout.java

📁 关于细胞自动机的例子
💻 JAVA
字号:
package leaf;import java.awt.*;import java.awt.event.*;/** * Title:        leaf * Description: * Copyright:    Copyright (c) 2003 * Company:      http://agents.yeah.net * @author keatskk@sina.com * @version 1.0 */public class IFSAbout extends Frame {  Label label1 = new Label();  Panel panel1 = new Panel();  TextArea textArea1 = new TextArea();  String txt;  Label label2 = new Label();  public IFSAbout(leaf cl) {    super("相关说明");    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  private void jbInit() throws Exception {    //setCursor(MOVE_CURSOR);    //setCursor(SW_RESIZE_CURSOR);    label1.setForeground(Color.blue);    label1.setText("  关于IFS的说明:");    this.setBackground(Color.lightGray);    panel1.setBackground(Color.lightGray);    panel1.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));    this.addWindowListener(new java.awt.event.WindowAdapter() {      public void windowClosing(WindowEvent e) {        this_windowClosing(e);      }    });    textArea1.setBackground(Color.lightGray);    textArea1.setColumns(77);    textArea1.setRows(20);        txt="    迭代函数系统(IFS,简称迭代函数系)方法是美国佐治亚理工学院的巴恩斯利教授\n";    txt=txt+"首创的。IFS方法的魅力在于它是分形迭代生成的“反问题”,根据拼接定理\n";    txt=txt+"(collage theorem),对于一个给定的图形(比如一幅照片),求得几个生成规则,就可\n";    txt=txt+"以大幅度压缩信息。\n\n";    txt=txt+"    本程序采用确定性算法与随机性算法相结合的办法生成图形,“确定性”指用以\n";    txt=txt+"迭代的规则是确定性的,它们由一组仿射变换(如R_1,R_2,R_3等等) 构成;“随机\n";    txt=txt+"性”指迭代过程是不确定的,每一次究竟迭代哪一个规则,即R_i中具体哪一个,不是\n";    txt=txt+"预先定好的,而要靠掷骰子的办法来决定。设最终要生成的图形为M,它要满足下述\n";    txt=txt+"集合方程:\n";    txt=txt+"    M=R_1∪R_2∪…∪R_N\n";    txt=txt+"上式的含义是,随机地从R_i(i=1,…,N)中挑选一个迭代规则迭代一次,然后再随机\n";    txt=txt+"地在R_i(i=1,…,N)中选一个规则迭代一次,不 断重复此过程,最后生成的极限图形\n";    txt=txt+"M就是欲求的图。\n\n";    txt=txt+"    每个迭代规则R_i都是一个仿射变换。仿射变换是一种线性变换,在二维平面上进\n";    txt=txt+"行讨论,二维仿射变换的形式为:\n";    txt=txt+"    R:\n";    txt=txt+"      x′=ax+by+e\n";    txt=txt+"      y′=cx+dy+f\n";    txt=txt+"上式中未知数有两个:x和y;系数有四个:a,b,c和d;常数有两个:e和f。\n\n";    txt=txt+"    剩下的一个问题是怎样实现掷骰子操作。在计算机上可以很容易地用伪随机数发\n";    txt=txt+"生器不断生 成随机数,用来代替人工抛掷有N个面的骰子。不失一般性,设N=4,每次\n";    txt=txt+"用计算机生成一个随机数E∈(0,100),设0<β_1<β_2<β_3<100,作如下规定:\n";    txt=txt+"    若0<E<β_1,则选择规则R_1,\n";    txt=txt+"    若β_1≤E<β_2,则选择规则R_2,\n";    txt=txt+"    若β_2≤E<β_3,则选择规则R_3,\n";    txt=txt+"    若β_3≤E<100,则选择规则R_4.\n";    txt=txt+"指定β_i的过程,相当于为每一种迭代规则R_i指派一个概率p_i。虽说具体每一次用\n";    txt=txt+"哪个规则迭代不确定,但从长期行为看,每种规则使用的频率是一定的。\n\n";    textArea1.setText(txt);    label2.setForeground(Color.blue);    label2.setText("                                              制作:keatskk@sina.com");    this.add(label1, BorderLayout.NORTH);    this.add(panel1, BorderLayout.CENTER);    panel1.add(textArea1, null);    panel1.add(label2, null);  }  void this_windowClosing(WindowEvent e) {      this.hide();      this.dispose();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -