📄 ifsabout.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 + -