Listato per ottenere immagini fantasiose usando il metodo di Newton per avere le radici di un numero complesso
Listato
/** * Si possono realizzare vari disegni interessanti con la formula di Newton per le radici di un numero complesso, * La barra di scorrimento (n1) regola il numero della radice, * La barra (n2) cambia alcuni parametri della formula con l'effetto di cambiare il disegno, (n7) * Le (n3) (n4)(n5) (n6) (n7) (n8) (n9) agiscono principamente sulla la variazione dei colori. * La (n10) regola l'ampiezza del disegno. * Mentre i due tasti in fondo scambiano il disegno in monocromo o a colori. * * RICORDATI di collegare le varie sezioni di public double rollr() e public double rollsr() con lo stesso numero che c'č al termine di ogni riga. * Questo ti permetterā di ottenere una vasta serie d'innagini. * Ulteriori cambiamenti si ottengono attivando le diverse righe di codice (nzr) e (nzm). oppure quelle di (zrb) e (zi). * Infine puoi ottenere altre variazione con gli (if) di (zr2) e (zi2). * * Con tutte queste variazioni possibili si possono ottenere centinaia di migliia di disegni diversi, magari molto simili ma non uguali. * Autore Sergio Savoldelli 04/2019 * siti internet * www.savoldelli.net * www.colognola.com */ import javax.swing.*; import java.awt.*; import java.awt.Stroke; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import java.awt.image.*; //import java.awt.geom.*; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollBar; import java.util.Date; import java.util.Locale; import java.text.DateFormat; import static java.lang.Math.*; public class NewtonFioriBN6 extends JPanel implements MouseListener, MouseMotionListener { public static void main(String[] args) { JFrame windowb = new JFrame(" NewtonFioriBN6 "); NewtonFioriBN6 contentb = new NewtonFioriBN6 (); windowb.setContentPane(contentb); windowb.pack(); windowb.setResizable(false); windowb.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); windowb.setVisible(true); } public NewtonFioriBN6 (){ setPreferredSize(new Dimension(1260,950)); setLayout(new BorderLayout()); JPanel eastPanel = new JPanel(); eastPanel.setLayout(new GridLayout(25, 1)); eastPanel.setBackground(Color.black); font = new Font("Helvetica", Font.BOLD, 20); sliderLabeld = new Label(""); sliderLabeld.setFont(font); sliderLabeld.setBackground(Color.black); sliderLabeld.setForeground(Color.red); eastPanel.add(sliderLabeld); font = new Font("Helvetica", Font.BOLD, 20); titleLabel = new Label(" NewtonFioriBN6 ", 1); titleLabel.setFont(font); titleLabel.setBackground(Color.blue); titleLabel.setForeground(Color.red); eastPanel.add(titleLabel); font = new Font("Helvetica", Font.BOLD, 18); titleJLabelb = new JLabel(" Name class "); titleJLabelb.setFont(font); titleJLabelb.setBackground(Color.black); titleJLabelb.setForeground(Color.red); eastPanel.add(titleJLabelb); sliderLabel1 = new Label(sliderText1 + Integer.toString (n1)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel1.setFont(font); sliderLabel1.setBackground(Color.blue); sliderLabel1.setForeground(Color.white); eastPanel.add(sliderLabel1); scrolls1 = new Scrollbar(Scrollbar.HORIZONTAL, n1, 1, 2, 26); scrolls1.setBackground(Color.black); scrolls1.setUnitIncrement(1); scrolls1.setVisible(true); eastPanel.add(scrolls1); ////////////////////////////////// //int n2=1; sliderLabel2 = new Label(sliderText2 + Integer.toString(n2)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel2.setFont(font); sliderLabel2.setBackground(Color.blue); sliderLabel2.setForeground(Color.white); eastPanel.add(sliderLabel2); scrolls2 = new Scrollbar(Scrollbar.HORIZONTAL, n2, 1,1, 27); scrolls2.setBackground(Color.black); eastPanel.add(scrolls2); scrolls2.setUnitIncrement(1); sliderLabel3 = new Label(sliderText3 + Integer.toString(n3)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel3.setFont(font); sliderLabel3.setBackground(Color.blue); sliderLabel3.setForeground(Color.white); eastPanel.add(sliderLabel3); scrolls3 = new Scrollbar(Scrollbar.HORIZONTAL, n3, 1,1, 301); scrolls3.setBackground(Color.black); eastPanel.add(scrolls3); scrolls3.setUnitIncrement(1); sliderLabel4 = new Label(sliderText4 + Integer.toString(n4)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel4.setFont(font); sliderLabel4.setBackground(Color.blue); sliderLabel4.setForeground(Color.white); eastPanel.add(sliderLabel4); scrolls4 = new Scrollbar(Scrollbar.HORIZONTAL, n4, 1,1, 256); scrolls4.setBackground(Color.black); eastPanel.add(scrolls4); scrolls4.setUnitIncrement(1); sliderLabel5 = new Label(sliderText5 + Integer.toString(n5)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel5.setFont(font); sliderLabel5.setBackground(Color.blue); sliderLabel5.setForeground(Color.white); eastPanel.add(sliderLabel5); scrolls5= new Scrollbar(Scrollbar.HORIZONTAL, n5, 1,1, 256); scrolls5.setBackground(Color.black); eastPanel.add(scrolls5); scrolls5.setUnitIncrement(1); sliderLabel6 = new Label(sliderText6 + Integer.toString(n6)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel6.setFont(font); sliderLabel6.setBackground(Color.blue); sliderLabel6.setForeground(Color.white); eastPanel.add(sliderLabel6); scrolls6= new Scrollbar(Scrollbar.HORIZONTAL, n6, 1,1, 629); scrolls6.setBackground(Color.black); eastPanel.add(scrolls6); scrolls6.setUnitIncrement(1); sliderLabel7 = new Label(sliderText7 + Integer.toString(n7)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel7.setFont(font); sliderLabel7.setBackground(Color.blue); sliderLabel7.setForeground(Color.white); eastPanel.add(sliderLabel7); scrolls7= new Scrollbar(Scrollbar.HORIZONTAL, n7, 1, 1, 256); scrolls7.setBackground(Color.black); eastPanel.add(scrolls7); scrolls7.setUnitIncrement(1); sliderLabel8 = new Label(sliderText8 + Integer.toString(n8)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel8.setFont(font); sliderLabel8.setBackground(Color.blue); sliderLabel8.setForeground(Color.white); eastPanel.add(sliderLabel8); scrolls8= new Scrollbar(Scrollbar.HORIZONTAL, n8, 1,1, 256); scrolls8.setBackground(Color.black); eastPanel.add(scrolls8); scrolls8.setUnitIncrement(1); sliderLabel9 = new Label(sliderText9 + Integer.toString(n9)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel9.setFont(font); sliderLabel9.setBackground(Color.blue); sliderLabel9.setForeground(Color.white); eastPanel.add(sliderLabel9); scrolls9= new Scrollbar(Scrollbar.HORIZONTAL, n9, 1,1, 256); scrolls9.setBackground(Color.black); eastPanel.add(scrolls9); scrolls9.setUnitIncrement(1); sliderLabel10 = new Label(sliderText10 + Integer.toString(n10)); font = new Font("Helvetica", Font.PLAIN, 15); sliderLabel10.setFont(font); sliderLabel10.setBackground(Color.blue); sliderLabel10.setForeground(Color.white); eastPanel.add(sliderLabel10); scrolls10= new Scrollbar(Scrollbar.HORIZONTAL, n10, 1,350, 1058); scrolls10.setBackground(Color.black); eastPanel.add(scrolls10); scrolls10.setUnitIncrement(1); //////////////////////////////////////////////////////// scrolls1.addAdjustmentListener(new MyAdjustmentListener1()); scrolls2.addAdjustmentListener(new MyAdjustmentListener2()); scrolls3.addAdjustmentListener(new MyAdjustmentListener3()); scrolls4.addAdjustmentListener(new MyAdjustmentListener4()); scrolls5.addAdjustmentListener(new MyAdjustmentListener5()); scrolls6.addAdjustmentListener(new MyAdjustmentListener6()); scrolls7.addAdjustmentListener(new MyAdjustmentListener7()); scrolls8.addAdjustmentListener(new MyAdjustmentListener8()); scrolls9.addAdjustmentListener(new MyAdjustmentListener9()); scrolls10.addAdjustmentListener(new MyAdjustmentListener10()); lineaButton = new JButton("colore"); pixelButton = new JButton("bianco e nero"); lineaButton.setBackground(Color.red); pixelButton.setBackground(Color.green); ActionListener linea = new Linea(); ActionListener pixel = new Pixel(); //lineaButton.setVisible(true); //pixelButton.setVisible(true); pixelButton.addActionListener(pixel); lineaButton.addActionListener(linea); eastPanel.add(lineaButton); eastPanel.add(pixelButton); add(BorderLayout.EAST, eastPanel); } public class Linea implements ActionListener { public void actionPerformed(ActionEvent evt) { String text = (String)evt.getActionCommand(); if (text.equals("colore")){ lineaButton.setBackground(Color.red); pixelButton.setBackground(Color.green); lineaButton.setText("attivo colore"); pixelButton.setText("bianco e nero"); } as= 1; distz= 100; repaint(); } } public class Pixel implements ActionListener { public void actionPerformed(ActionEvent evt) { String text = (String)evt.getActionCommand(); if (text.equals("bianco e nero")){ //clea =0.1; pixelButton.setText("attivo monocromo" ); lineaButton.setBackground(Color.green); pixelButton.setBackground(Color.red); lineaButton.setText("colore"); } distz= 10; as= 2; repaint(); } } class MyAdjustmentListener1 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a1 = e.getValue(); sliderLabel1.setText("n1 = (300 - 1000): "+" " + Integer.toString(a1)); n1= a1; xbegin= 0.01; ybegin = 0.00;zoom=2; meno=0;menoy=0; repaint(); } } class MyAdjustmentListener2 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a2 = e.getValue(); sliderLabel2.setText("n2 = (1 - 253): " +" " + Integer.toString(a2)); n2= a2; xbegin= 0.01; ybegin = 0.0;zoom=2; meno=0;menoy=0; repaint(); } } class MyAdjustmentListener3 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a3 = e.getValue(); sliderLabel3.setText(" n3 = (1 - 253): " +" " + Integer.toString(a3)); n3= a3; repaint(); } } class MyAdjustmentListener4 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a4 = e.getValue(); sliderLabel4.setText(" n4 = (1 - 253): " +" " + Integer.toString(a4)); n4= a4; repaint(); } } class MyAdjustmentListener5 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a5 = e.getValue(); sliderLabel5.setText("n5 = (1 - 253):" +" " + Integer.toString(a5)); n5= a5 ; repaint(); } } class MyAdjustmentListener6 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a6 = e.getValue(); sliderLabel6.setText("n6 = (1 - 253):" +" " + Integer.toString(a6)); n6= a6 ; repaint(); } } class MyAdjustmentListener7 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a7 = e.getValue(); sliderLabel7.setText("n7 = (1 - 300):" +" " + Integer.toString(a7)); n7= a7 ; repaint(); } } class MyAdjustmentListener8 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a8 = e.getValue(); sliderLabel8.setText("n8 = (350 - 1150):" +" " + Integer.toString(a8)); n8= a8 ; repaint(); } } class MyAdjustmentListener9 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a9 = e.getValue(); sliderLabel9.setText("n9 = (350 - 1150):" +" " + Integer.toString(a9)); n9= a9 ; repaint(); } } class MyAdjustmentListener10 implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int a10 = e.getValue(); sliderLabel10.setText("n10 = (350 - 1150):" +" " + Integer.toString(a10)); n10= a10 ; repaint(); } } public double rollr() { double r= cos(dz2)*n7*0.01; return r; } public double rolls() { double s= sin(dz2)*n7*0.01; return s; } Font font; String sliderText1 = "n1 = (1 - 25): "; String sliderText2 = "n2 = (1 - 25): "; String sliderText3 = "n3 = (1 - 300 ) "; String sliderText4 = "n4 =(1 - 300): "; String sliderText5 = "n5= (1 - 300 ) "; String sliderText6 = "n6= (1 - 300 "; String sliderText7 = "n7= (1 - 300 ) "; String sliderText8 = " n8= (350 - 1150 "; String sliderText9 = " n9= (350 - 1150 "; String sliderText10 = " n10= (350 - 1150 "; public Label sliderLabel1, sliderLabel2, sliderLabel3, sliderLabel4, sliderLabel5, sliderLabel6, sliderLabel7, sliderLabel8, sliderLabel9, sliderLabel10, sliderLabelC2, sliderLabelC, sliderLabeld, sliderLabele, sliderLabelf, titleLabel, titleLabel2, sliderLabelg,sliderLabelh, sliderLabeli, sliderLabell; public JLabel titleJLabelb; public double vertx[][], verty[][],la[], xb[],yb[], chek[]; public Scrollbar scrolls1, scrolls2, scrolls3, scrolls4; public Scrollbar scrolls5, scrolls6, scrolls7, scrolls8,scrolls9, scrolls10 ; public double mov1, mov2, mov3, mov4,yz,z,m,n,clea=0.001, maxLoop =85,sdr,sdi,meno,menoy,a,b2,zrb,zi,zr2,zi2,ze,xe2,ye2; public double nx,ny,zrpe,zipe,zru,ziu,dzr,nzr,nzm,zq,dz2,dzm,zr,zm,np,nb, ciclic,ciclib,ciclia, xreal,yimag, zoom=2.0, dist,distz=10, xbegin= 0.0, ybegin = 0.0,co, se; public int w,h,redcol,greencol,bluecol,v,fiori, condiz, nuovnzrm ; public int n1=4,n2=3,n3=80,n4=10,n5 =10, n6=8, n7 =253,n8 = 50, n9= 20, n10= 350,x2,y2, startx,starty,as; public int b,p, nc,cicli,num,nn2,asx,asy,asx2,asy2,nn,colo,nux1,nuy1,c; public String power, commenta=" linea", commentab; public JButton lineaButton; public JButton pixelButton; public void mouseDragged(MouseEvent e) { /* mov1 = e.getX(); mov4 = e.getY(); z=0.007 ;yz=0.007; zb=(zb+z*(mov1-mov2));mov2=mov1; //z=(z+0.01*(mov1-mov2));mov2=mov1; yzb= (yzb+yz* (mov4-mov3));mov3=mov4; repaint(); //// e.consume(); */ } public void paintComponent(Graphics g) { clea=0.001*n3; addMouseListener(this); addMouseMotionListener(this); la = new double[2]; xb= new double[2]; yb= new double[2]; chek=new double[2]; w = n10;// h = n10;// Graphics2D g2 = (Graphics2D)g; BufferedImage bufimage; Graphics2D bufimagegraf; bufimage = new BufferedImage(1150, 980, BufferedImage.TYPE_4BYTE_ABGR); bufimagegraf= bufimage.createGraphics(); bufimagegraf.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); bufimagegraf.setStroke(new BasicStroke(1.0f)); bufimagegraf.setColor(new Color(0,255,0)); bufimagegraf.setFont( new Font("Helvetica", Font.PLAIN, 13)); bufimagegraf.setColor(new Color(0,0,0)); bufimagegraf.fillRect(0,0,1150, 980); m=5; if (n1<3) zoom=zoom+15; maxLoop = 1+ (int) (m*log(zoom)); b=0; n=n1; dist= (3.9999/(w))/zoom; sdr=0; nc=n5; while ( b <= w){ sdi = 0; sdr =((sdr - dist)); p= 1; while (p <= h){ sdi =((sdi + dist)); xbegin = (meno - sdr ) -(2/zoom); ybegin = (menoy - sdi )+(2/zoom); a = xbegin; b2 = ybegin; zrb= a; zi= b2; zr2= a; zi2=b2; nx=0; ny=0; c= 0; cicli=0; do { n= n; c= c+1; cicli=cicli+48; nc= nc; for (int q = 2; q <= (n-1); q++){ //con questo loop si ottengono tutte le radici meno la radice quadrata, nx = zrb * zr2 - zi *zi2; // che verrā aggiunta in seguito con una istruzione condizionale (if) ny = zrb* zi2 +zr2 * zi; zrpe = nx; zipe = ny; zrb= nx; zi = ny; nx = (zrb * zr2 - zi * zi2) ; ny = (zrb * zi2 + zr2 * zi); zru = nx; ziu = ny; } nzr =((n-1)*zru)+n8*0.01;//+0.8; nzm =(n-1)*ziu+n8*0.001; dzr= (n * zrpe ); dzm= (n*zipe ); dz2 = (dzr*dzr+ dzm*dzm)*(n5*0.1); // dz2 = (dzr*dzr+ dzm*dzm)+(n5*0.1); zr =(nzr*dzr+nzm*dzm)/dz2; zm=( nzm*dzr-nzr*dzm)/dz2; if (n1<3) { np = zrb*zrb; nb= zi*zi; nx = np -nb; ny = 2*zrb*zi; zru = nx+1; ziu =ny; dzr =(n8*0.1*zrb); dzm =(n8*0.1*zi); //dzr =((2)*zrb); //dzm =(2)*zi; dz2 = (dzr*dzr+ dzm*dzm)*(n5*0.1);; zr =(zru*dzr+ziu*dzm)/dz2; zm=( ziu*dzr-zru*dzm)/dz2; } // zrb = abs(cosh(b*0.0001*n9))*(zr); // zi = abs(sinh(b*0.0001*n9))*(zm); zrb = (zr*n9*0.1); zi = (zm*n9*0.1); fiori=1; zr2 = zr; zi2= zm; np = zrb*zrb; nb= zi*zi; zq = np+nb; // if ((abs(zrb*n7)< (clea) |abs (zi*n7) < clea)){// ){ //esplora // if ((abs(zq-n7*0.01)< (clea) |abs (zq-n7*0.01) < clea)){// if ((abs(zq-n7*0.0001)< (clea) |abs (zq-n7*0.0001) < clea)){// // if ((abs(zrb*n7)< (clea) | (zi*zi*n7) < clea)){// ){ //esplora anche questo il migliore finora // if (((zrb*zrb*n7)< (clea) | (zi*n7) < clea)){// ){ //esplora anche questo il migliore finora // if (((zrb*zrb*n7)< (clea) | (zi*zi*n7) < clea)){// ){ //esplora anche questo il migliore finora condiz =7 ; c = c + nc; } } while (c <= nc ); // {ciclic= abs(zi*cicli+100);ciclib=abs(zq*cicli+100); ciclia= abs(zr*cicli+100);} ciclic= (zi*zr+cicli*n5);ciclib=(zq+cicli*n6); ciclia= (zr*zr+cicli*n7); //buono come sopra Ho cambiato questa linea Da NewtonFioriZ // ciclic= abs(zm*cicli*n5);ciclib= abs(zq*cicli*n4); ciclia= abs(zr*cicli*n4); switch(n2){ /** * Anche qui aggiungendo o cambiando le variabili, potrete ottenere molte variazioni sul tema. */ case 1: zr2= log(abs(zm)); zi2= log(abs(zr)); redcol = (int)(abs(10*zr2+cicli*n4))% 255; greencol =(int)(abs(zr2*10+10*zi2+cicli*n4))% 255; bluecol = (int)(abs(zi2*20+n4*cicli*n6))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); //4--1--300--21--19--27--1--450 //if (distz < 12) bufimagegraf.setColor(new Color(greencol, greencol,greencol)); //4--1--6--244--32--26--245--450 //if (distz < 12) bufimagegraf.setColor(new Color(bluecol, bluecol,bluecol)); // 4--1--4--21--17--16--90--450 bufimagegraf.drawLine(b, p,b,p); bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 2: zr2= log(abs(zr)); zi2= log(abs(zm)); redcol = (int)(abs(10*zr2+cicli*n4))% 255; greencol =(int)(abs(zr2*20+cicli+n4*zi2))% 255; bluecol = (int)(abs(zi2*50+n4*cicli+n6))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); //5--2--300--21--16--7--1--450 bufimagegraf.drawLine(b, p,b,p); break ; case 3: zr2= log(abs(zm)); zi2= log(abs(zr)); redcol = (int)(abs(zr2*n4+n3*5))% 255; greencol =(int)(abs(zr2+cicli*n3+n7))% 255; bluecol = (int)(abs(zi2*20+n4*5+n6))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 4: zr2= log(abs(zr)); zi2= log(abs(zm)); redcol = (int)(abs(zr2*n4+n6*cicli))% 255; greencol =(int)(abs(zr2*n4+n4*zi2))% 255; bluecol = (int)(abs(zi2*n4+n6*cicli))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); // if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); // 5--4--125--28--10--7--1--450 usa questi parmetri if (distz < 12) bufimagegraf.setColor(new Color(greencol, greencol,greencol)); //4--4--1--239--11--6--18--450 usa questi parmetri //if (distz < 12) bufimagegraf.setColor(new Color(bluecol, bluecol,bluecol)); // 4--4--10--23--68--13--255--450 usa questi parmetri // if (distz < 12) bufimagegraf.setColor(new Color(bluecol, bluecol,bluecol)); // 4--1--4--21--17--16--90--450 usa questi parmetri bufimagegraf.drawLine(b, p,b,p); break; case 5: zr2= log(abs(zr)); zi2= log(abs(zm)); redcol = (int)(abs(zr2*n3+cicli*n4))% 255; greencol =(int)(abs(zr2+cicli))% 255; bluecol = (int)(abs(zi2*n7*cicli))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 6: zr2= log(abs(zrb))*n8; zi2= log(abs(zi))*n8; redcol = (int)(abs(zr2*n6)+n6)% 255; greencol =(int)(abs(zr2+n4*cicli))% 255; bluecol = (int)(abs(zi2*n4+ciclib+n7))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 7: zr2= log(abs(zrb))*n8; zi2= log(abs(zi))*n8; redcol = (int)(abs(zr2*n6)+n6)% 255; //greencol =(int)(abs(zr2+n4*cicli))% 255; bluecol = (int)(abs(zi2*n4+ciclib+n7))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 8: zr2= log(abs(zrb))*n8; zi2= log(abs(zi))*n8; // zr2= log(abs(zr))*n8; //zi2= log(abs(zm))*n8; redcol = (int)(abs(zr2*n6)+n6*cicli)% 255; //greencol =(int)(abs(zr2+n4*cicli))% 255; bluecol = (int)(abs(zi2*n4+cicli*n7))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 9: zr2= log(abs(zr))*n7; zi2= log(abs(zm))*n7; redcol = (int)(abs(zr2+cicli*n4))% 255; greencol =(int)(abs(zr2+cicli*n7))% 255; // bluecol = (int)(abs(zi2+cicli*n4))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 10: zr2= log(abs(zm)); zi2= log(abs(zr)); redcol = (int)(abs(zr2*n4+cicli*n7))% 255; greencol =(int)(abs(zr2*n4*zi2+ciclia+n7))% 255; bluecol = (int)(abs(zi2*n5+cicli*n3+n6))% 255; bufimagegraf.setColor (new Color(redcol ,0 ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 11: zr2= log(abs(zm)*n7); zi2= log(abs(zr)*n7); redcol = (int)(abs(zr2*n5+cicli+n7))% 255; greencol =(int)(abs(zr2*n4*zi2+ciclia+n4))% 255; bluecol = (int)(abs(zi2*n4+cicli*n5+n6))% 255; bufimagegraf.setColor (new Color(greencol ,0 ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); //5--11--2--1--6--5--3--150 bufimagegraf.drawLine(b, p,b,p); break; case 12: zr2= log(abs(zi)); zi2= log(abs(zrb)); redcol = (int)(abs(zr2*n4+n7*cicli))% 255; // greencol =(int)(abs(zr2*20+ciclic*n5+n7))% 255; bluecol = (int)(abs(zi2*n4+cicli+zr2*n6))% 255; bufimagegraf.setColor (new Color(redcol, greencol,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 13: zr2= (abs(zrb));// zi2= (abs(zm)); redcol = (int)(abs(zr2*n4+cicli*n7))% 255; //greencol =(int)(abs(zr2*n3*zi2+ciclia))% 255; bluecol = (int)(abs(zi2*n5+cicli*n6))% 255; bufimagegraf.setColor (new Color(redcol ,0 ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 14: // /* bello zr2= (abs(zi))*20;//4; zi2= (abs(zrb))*20;//4; redcol = (int)(abs(zr2*n4+n6*cicli))% 255; // greencol =(int)(abs(zr2+cicli*n5))% 255; bluecol = (int)(abs(zi2*n4+n7+cicli))% 255; //*/ bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 15: zr2= log(abs(zi)); zi2= log(abs(zrb)); redcol = (int)(abs(zr2*n4+n3*n6))% 255; // greencol =(int)(abs(zr2*n4+cicli*n4))% 255; bluecol = (int)(abs(zi2*n4+n3*n6))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 16: zr2= zi*rollr(); zi2= zr*rolls(); redcol = (int) abs((cicli*zr2+n7+n6)) % 255; greencol =(int)abs((ciclia+zr2+n4)) % 255; bluecol =(int)abs((n6+ciclib+zi2))%255; bufimagegraf.setColor(new Color(redcol ,bluecol ,greencol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 17: //colori č meglio zr2= log(abs(zi)); zi2= log(abs(zrb)); redcol = (int)(abs(zr2+n4*cicli))% 255; greencol =(int)(abs(zr2*n4+zi2*n6))% 255; bluecol = (int)(abs(zi2+n6*cicli))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); // if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); if (distz < 12) bufimagegraf.setColor(new Color(greencol, greencol,greencol)); bufimagegraf.drawLine(b, p,b,p); break; case 18: zr2= log(abs(zq*np));// zi2= log(abs(zq*nb)); redcol = (int)(abs(zr2*n4+nb))% 255; greencol =(int)(abs(zr2*n5+np))% 255; bluecol = (int)(abs(zi2*n5))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; case 19: zr2= log(abs(zrb))*0.1; zi2= log(abs(zi))*0.1; redcol = (int)(abs(zr2*n4*cicli))% 255; greencol =(int)(abs(zr2*n4+zi2*n6))% 255; bluecol = (int)(abs(zi2+n6*cicli))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); // if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); if (distz < 12) bufimagegraf.setColor(new Color(greencol, greencol,greencol)); bufimagegraf.drawLine(b, p,b,p); break; case 20: zr2= log(abs(zrb))*5; zi2= log(abs(zi))*5; redcol = (int)(abs(zr2*n6)+n6)% 255; // greencol =(int)(abs(zr2+n4*cicli))% 255; bluecol = (int)(abs(zi2*n4+ciclib))% 255; bufimagegraf.setColor(new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 21: zr2= log(abs(zrb))*0.1; zi2= log(abs(zi))*0.1; redcol = (int)(abs(zr2*n4+cicli+150))% 255; greencol =(int)(abs(zr2*n6+cicli))% 255; bluecol = (int)(abs(zi2*n5+zi*cicli+150))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 22: zr2= log(abs(zrb))*0.1; zi2= log(abs(zi))*0.1; redcol = (int)(abs(zr2*n4+cicli+n7))% 255; //greencol =(int)(abs(zr2*n6+cicli))% 255; bluecol = (int)(abs(zi2*n4+cicli*n7))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 23: zr2= log(abs(zi))*3; zi2= log(abs(zrb))*3; redcol = (int)(abs(zr2*n4+cicli+n7))% 255; //greencol =(int)(abs(zr2*cicli+100+n3))% 255; bluecol = (int)(abs(zi2*n4+cicli+n7))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 24: zr2= log(abs(zrb))*2; zi2= log(abs(zi))*2; redcol = (int)(abs(zr2*n4+cicli*n4))% 255; greencol =(int)(abs(zi2*n6+cicli*n6))% 255; bluecol = (int)(abs(zi2*n7+cicli*n4))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break ; case 25: zr2= log(abs(zrb*2))*2; zi2= log(abs(zi*2))*2; redcol = (int)(abs(zr2*n7+cicli))% 255; greencol =(int)(abs(zr2+n6*cicli))% 255; bluecol = (int)(abs(zi2*n4+cicli+n6))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; default: zr2= log(abs(zrb*n7))*2; zi2= log(abs(zi*n7))*2; redcol = (int)(abs(zr2*n4+cicli))% 255; greencol =(int)(abs(zr2+n6*cicli))% 255; bluecol = (int)(abs(zi2*n4+cicli+n6))% 255; bufimagegraf.setColor (new Color(redcol ,greencol ,bluecol )); if (distz < 12) bufimagegraf.setColor(new Color(redcol, redcol,redcol)); bufimagegraf.drawLine(b, p,b,p); break; } p =(p+1); } b =(b+1); } maxLoop=50; la[1]= zoom; xb[1]= meno; yb[1]= menoy; Date today = new Date(); Locale[]locale = {Locale.ITALY}; int[]styles = {DateFormat.MEDIUM}; DateFormat fmt; fmt= DateFormat.getDateInstance(styles[0], locale[0]); // showStatus( " zoom = " +zoom ); bufimagegraf.setColor(new Color(255,255,255)); font = new Font("Helvetica", Font.PLAIN, 18); bufimagegraf.setFont(font); bufimagegraf.drawString ( ""+ fmt.format(today), 30,h); bufimagegraf.drawString ( " NewtonFioriBN5 - zoom = " +zoom + " fiori =" +fiori+ " condiz = " + condiz + " " + fmt.format(today), 40,15); bufimagegraf.drawString ( " NewtonFioriBN6 - zoom = " + (int)zoom , w/2-40,h); g2.drawImage(bufimage,0,0, this); } public void mouseClicked(MouseEvent evt) { Object source = evt.getSource(); zoom= la[1]; dist= (3.9999/n10)/(zoom); if(evt.getButton() == MouseEvent.BUTTON3){ nc=nc/3; zoom =zoom/2; maxLoop= maxLoop /2; meno= xb[1] ; menoy=yb[1]; if (maxLoop < 80)maxLoop=80; } if(evt.getButton() == MouseEvent.BUTTON2){ m = n3; maxLoop= maxLoop *2;//zoom =zoom/2; zoom =zoom/1.5; } if(evt.getButton() == MouseEvent.BUTTON1){ nc=nc*3; zoom =zoom *2; meno= xb[1] ; menoy=yb[1]; m = n3; int startx = evt.getX(); int starty = evt.getY(); if (startx >= (w/2)) { int startx2= startx -(w/2); meno =meno + ((startx2)* (dist)); } else{ if (startx < (w/2)) { int startx2 = (w/2) - startx; meno =meno - (startx2* (dist)); } } if (starty >= (w/2)) { int starty2= starty -(w/2); menoy =menoy -((starty2)* (dist)); } else{ if (starty <(w/2)) { int starty2 = (w/2) - starty; menoy =menoy + (starty2* (dist)); } } } repaint(); } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e){ } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseMoved(MouseEvent e) {} // public void mouseDragged(MouseEvent e) {} } //}
Queste immagini le potete ottenere con questo programma.
img. 1
img. 2
img. 3
img. 4