//Mapplet is an applet for Mandlebrot import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.awt.Graphics; public class Mapplet extends Applet implements MouseListener { StringBuffer buffer; double xCurser; double yCurser; int imax; int jmax; double aspectRatio; double xcenter; double ycenter; double xstart; double ystart; double xincrement; double yincrement; double zoom; static int BUTTON1_MASK; public void init() { addMouseListener(this); zoom=1.0; xcenter=0.0; ycenter=0.0; imax=300; jmax=300; aspectRatio=((double)jmax)/((double) imax); buffer = new StringBuffer(); // addItem("initializing... "); } public void start() { // addItem("starting... "); } public void stop() { // addItem("stopping... "); } public void destroy() { // addItem("preparing for unloading..."); } public void mouseEntered(MouseEvent event) { } public void mouseExited(MouseEvent event) { } public void mousePressed(MouseEvent event) { } public void mouseReleased(MouseEvent event) { } public void mouseClicked(MouseEvent event) { // addItem("click!..."); if( (event.getModifiers() & event.BUTTON3_MASK)== event.BUTTON3_MASK ){ System.out.println("right button pressed"); zoom=zoom*2.0; } if( (event.getModifiers() & event.BUTTON1_MASK)== event.BUTTON1_MASK ){ System.out.println("left button pressed"); zoom=zoom*0.5; } xCurser=event.getX(); yCurser=event.getY(); xcenter=xstart+xCurser*xincrement; ycenter=ystart-yCurser*yincrement; System.out.println("xcenter=" + xcenter + "ycenter=" + ycenter); System.out.println("zoom=" + zoom); repaint(); } public void paint(Graphics g) { g.setColor(Color.black); g.fillRect(0,0,imax,jmax); double thresh=0.0001; double x,y; xstart=xcenter-zoom; ystart=ycenter+zoom*aspectRatio; xincrement=2.0*zoom/((double)imax); yincrement=xincrement*aspectRatio; int kmax=50; int k; Complex z; Complex c; for (int i=1;i