📄 fractal.java
字号:
/*作者:连惠城 Keep my name anytime please!请保留作者名字*/import java.awt.*;import java.applet.*;import java.awt.event.*;class FractalCanvas extends Canvas{ String str="Julia";//default str="Julia" public FractalCanvas() { this.setBackground(Color.blue); } public void repaint(String s) { if (s=="Julia"){ str="Julia"; } if (s=="Mandelbrot") { str="Mandelbrot"; } repaint(); } //////////// /////////// public void paint(Graphics g) { ///////////////// ///begin of julis if( str=="Julia") { int a=350; int b=350; double p=-0.12; double q=0.74; //double p=-0.1; //double q=0.69; int M=100; int K=255; double xMin=-1.5; double yMin=-1.5; double xMax=1.5; double yMax=1.5; double deltaX=(xMax-xMin)/(a-1); double deltaY=(yMax-yMin)/(b-1); for(int i=0;i<a;i++) for( int j=0;j<b;j++) { double x0=xMin+i*deltaX; double y0=yMin+j*deltaY; int k=0; int color=0; //int cr=0; // int cg=0; //int cb=0; double tempX; double tempY; double r; for(k=1;k<K;k++) { tempX=x0; tempY=y0; x0=tempX*tempX-tempY*tempY+p; y0=2*tempX*tempY+q; // k=k+1; r=x0*x0+y0*y0; if(r>M){ color=(k)*250*250*250;//128*128; // cr=k&15;//11111111=255 // cg=k&240;//1111111100000000=65280 // cb=k&3840;//&16711680;//1111111100000000=16711680 break; } //if(r<=M){ // continue; //} } //int ratio=400/16;//=256 g.setColor(new Color(color)); if(k==K){ g.setColor(Color.darkGray); } g.drawLine(i,j,i,j); }//end for }//end of julia //////////////// ///////////////// ///begin of Mandelbrot if( str=="Mandelbrot") { int a=350; int b=350; double pMin=-2.25; double qMin=-1.5; double pMax=0.75; double qMax=1.5; int M=100; int K=255; double xMin=-1.5; double yMin=-1.5; double xMax=1.5; double yMax=1.5; double deltaP,deltaQ; deltaP=(pMax-pMin)/(a-1); deltaQ=(qMax-qMin)/(b-1); for(int i=0;i<a;i++) for( int j=0;j<b;j++) { double p0=pMin+i*deltaP; double q0=qMin+j*deltaQ; double x0=0; double y0=0; int k=0; int color=0; //int cr=0; // int cg=0; //int cb=0; double tempX; double tempY; double r; for(k=1;k<K;k++) { tempX=x0; tempY=y0; x0=tempX*tempX-tempY*tempY+p0; y0=2*tempX*tempY+q0; // k=k+1; r=x0*x0+y0*y0; if(r>M){ color=(k)*250*250*25; break; } //if(r<=M){ // continue; //} } //int ratio=400/16;//=256 g.setColor(new Color(color)); if(k==K){ g.setColor(Color.darkGray); } g.drawLine(i,j,i,j); }//end for }//end of Mandelbrot //////////////// ////////////////////// //////////////////// }//end of paint}/**\\\\\\\\\\\\*\\\\\\\\\\\\\\\\*\\\\\\\\\\\\\\\\\*/public class Fractal extends Applet{ ControlPanel controlPanel; FractalCanvas fractalCanvas; // StrPanel strPanel; public void init() { setLayout(new BorderLayout()); fractalCanvas=new FractalCanvas(); controlPanel=new ControlPanel(fractalCanvas); // strPanel=new StrPanel(); add("South",controlPanel); // add("North",strPanel); add("Center",fractalCanvas); }}/**\\\\\\\\\\\\*\\\\\\\\\\\\\\\\*\\\\\\\\\\\\\\\\\*//*class StrPanel extends Panel { public StrPanel(){ add(new Label("制作:连惠城 时间:2002.4.26",1)); }}*//**\\\\\\\\\\\\*\\\\\\\\\\\\\\\\*\\\\\\\\\\\\\\\\\*/class ControlPanel extends Panel implements ActionListener{ Button btnJulia; Button btnMandelbrot; FractalCanvas fractalCanvas; public ControlPanel(FractalCanvas fractalCanvas) { this.setBackground(new Color(90000)); this.fractalCanvas=fractalCanvas; // setLayout(new GridLayout(1,4,10,3)); add(new Label(" "));//null btnJulia = new Button("Julia"); add(btnJulia); btnJulia.addActionListener(this); btnMandelbrot = new Button("Mandelbrot"); add(btnMandelbrot); btnMandelbrot.addActionListener(this); Label label=new Label("制作:连惠城 02/4/26 "); label.setForeground(Color.yellow); label.setFont(new Font("",0,12)); add(label); //setLayout(new BorderLayout()); } public void actionPerformed(ActionEvent ev) { String label=ev.getActionCommand(); if(label.equals("Julia")) { fractalCanvas.repaint("Julia"); } if(label.equals("Mandelbrot")) { fractalCanvas.repaint("Mandelbrot"); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -