import java.applet.*; import java.awt.*; import java.awt.event.*; import static java.lang.Math.*; /** *ATTRATTORE DI LORENZ con formula modificata 3D e stereo applet realizzato nel 09/2011 * * @author Sergio Savoldelli wwww.savoldelli.net * @version numero 3 */ public class blorenzgraf3 extends java.applet.Applet implements MouseListener, MouseMotionListener { public double z = 0.02; public double pi=3.14159265; public double yz = 0.002; public double pi2=pi*2; public int mov1,mov2,mov3,mov4,k=44,n1=10,n2=250,qq,q,modulo,i,step,a2, N= 28000,temp=0; public double x1,y1, z1,x0,z0,y0,xe,ye,ze,xeb,yeb,zeb; public double aa,k0,k02,xe2,ye2,xe2c,ye2c,x,y,xx,yy,t2, ee,r0,r02,val,w1,ipasso,incpasso,w2; public double h = 0.001, q3=0; public double a = 6; public double b = 24; public double c = 4; public String nome =" gatto"; Font font; Panel controlPanel, optionPanelColor, optionPanel0; Scrollbar sliderR, sliderr, sliderO; private boolean movingCircleOut = false; String sliderTextR = " A (2 - 36): "; String sliderTextr = " B (gatto - farfalla)"; String sliderTextO = " C (6 - 44): "; String sliderTextC = " - Stereo - "; Label sliderLabelR, sliderLabelr, sliderLabelO, sliderLabelC, titleLabel,titolotra; Checkbox insideCheckbox, outsideCheckbox; public double vertx[], verty[], vertz[]; public int vertxb[],vertyb[],vertzb[],vertzc[],vertbzb[],vertbzc[],verx[],very[],colore[]; public void init() { setSize(780, 550); vertx = new double[28500]; verty = new double[28500]; vertz = new double[28500]; vertxb = new int[28500];vertyb = new int[28500];vertzb = new int[28500];vertzc = new int[28500];vertbzb = new int[28500]; vertbzc = new int[28500]; setBackground(Color.black); setLayout(new BorderLayout()); q=0; controlPanel = new Panel(); controlPanel.setLayout(new GridLayout(13,1)); add("East", controlPanel); addMouseListener(this); addMouseMotionListener(this); titleLabel = new Label("A. di Lorenz modificato ", 1); font = new Font("Helvetica", Font.BOLD, 12); titleLabel.setFont(font); titleLabel.setBackground(Color.black); titleLabel.setForeground(Color.red); //////////// titolotra = new Label("CLICK AND DRAG ", 2); font = new Font("Helvetica", Font.BOLD, 12); titolotra.setFont(font); titolotra.setBackground(Color.black); titolotra.setForeground(Color.green); controlPanel.add(titleLabel); controlPanel.add(titolotra); sliderLabelR = new Label(sliderTextR + Integer.toString(n2)); font = new Font("Helvetica", Font.PLAIN, 12); sliderLabelR.setFont(font); sliderLabelR.setBackground(Color.black); sliderLabelR.setForeground(Color.white); controlPanel.add(sliderLabelR); sliderR = new Scrollbar(Scrollbar.HORIZONTAL, n2, 0, 2,37); controlPanel.add(sliderR); sliderLabelr = new Label(sliderTextr + Integer.toString(n1)); font = new Font("Helvetica", Font.PLAIN, 12); sliderLabelr.setFont(font); sliderLabelr.setBackground(Color.black); sliderLabelr.setForeground(Color.white); controlPanel.add(sliderLabelr); sliderr = new Scrollbar(Scrollbar.HORIZONTAL, n1, 0, 1,3); controlPanel.add(sliderr); sliderLabelO = new Label(sliderTextO + Integer.toString(k)); font = new Font("Helvetica", Font.PLAIN, 12); sliderLabelO.setFont(font); sliderLabelO.setBackground(Color.black); sliderLabelO.setForeground(Color.white); controlPanel.add(sliderLabelO); sliderO = new Scrollbar(Scrollbar.HORIZONTAL, k, 1, 6, 45); controlPanel.add(sliderO); controlPanel.add(new Label(" ")); sliderLabelC = new Label(sliderTextC); CheckboxGroup CircleInOutGroup = new CheckboxGroup (); insideCheckbox = new Checkbox("si", CircleInOutGroup, !movingCircleOut); outsideCheckbox = new Checkbox("no", CircleInOutGroup, movingCircleOut); insideCheckbox.setForeground(Color.green); outsideCheckbox.setForeground(Color.cyan); font = new Font("Helvetica", Font.BOLD, 12); insideCheckbox.setFont(font); outsideCheckbox.setFont(font); optionPanel0 = new Panel(); optionPanel0.setLayout(new GridLayout(1, 3)); font = new Font("Helvetica", Font.BOLD, 12); sliderLabelC.setFont(font); sliderLabelC.setBackground(Color.red); sliderLabelC.setForeground(Color.white); optionPanel0.add(insideCheckbox); optionPanel0.add(outsideCheckbox); controlPanel.add(new Label(" ")); controlPanel.add(sliderLabelC,10); controlPanel.add("East", optionPanel0); } public boolean handleEvent(Event evt) { if (evt.target instanceof Scrollbar) { int value = ((Scrollbar)evt.target).getValue(); if (evt.target == sliderR) { sliderLabelR.setText(sliderTextR + Integer.toString(value)); n2 = value; } else if (evt.target == sliderr) { sliderLabelr.setText(sliderTextr + (nome)); n1 = value; if (n1 <2) nome =" gatto"; if (n1 >1) nome =" farfalla"; } else if (evt.target == sliderO) { sliderLabelO.setText(sliderTextO + Integer.toString(value)); k = value; } repaint(); } if ( evt.target == insideCheckbox || evt.target == outsideCheckbox) { repaint(); } return true; } public void paint(Graphics g) { g.setColor (new Color(0,0,0)); g.fillRect(0,0,610,550); w1= 0.000543; h=0.001+ w1*k; x0 = 0.05; y0 =0.05; z0 =0.1; c=4-3/k; a= 11-6/n2; b=29-5/k; if (n1 > 1 )n2= 1; step= 10; N=20000; for (i=0;i