View Javadoc
1   package org.woehlke.computer.kurzweil.tabs.mandelbrot2julia;
2   
3   import javax.swing.*;
4   import java.awt.*;
5   
6   
7   /**
8    * Mandelbrot Set drawn by a Turing Machine.
9    *
10   * (C) 2006 - 2013 Thomas Woehlke.
11   * https://thomas-woehlke.blogspot.com/2016/01/mandelbrot-set-drawn-by-turing-machine.html
12   * @author Thomas Woehlke
13   *
14   * Date: 05.02.2006
15   * Time: 00:51:51
16   */
17  public class Mandelbrot2JuliaCanvas extends JComponent {
18  
19      private volatile Mandelbrot2JuliaModel app;
20      private volatile Dimension preferredSize;
21  
22      public Mandelbrot2JuliaCanvas(Mandelbrot2JuliaModel app) {
23          this.app = app;
24          int width = this.app.getWorldDimensions().getWidth();
25          int height = this.app.getWorldDimensions().getHeight();
26          this.preferredSize = new Dimension(width, height);
27          this.setSize(this.preferredSize);
28          this.setPreferredSize(preferredSize);
29      }
30  
31      public void paint(Graphics g) {
32          this.setSize(this.preferredSize);
33          this.setPreferredSize(preferredSize);
34          super.paintComponent(g);
35          int red = 0;
36          int green = 0;
37          int blue = 0;
38          for(int y = 0; y < app.getWorldDimensions().getY(); y++){
39              for(int x = 0; x < app.getWorldDimensions().getX(); x++){
40                  blue = (((app.getCellStatusFor(x,y))*4)%256);
41                  Color stateColor = new Color(red, green, blue);
42                  g.setColor(stateColor);
43                  g.drawLine(x,y,x,y);
44              }
45          }
46      }
47  
48      public void update(Graphics g) {
49          paint(g);
50      }
51  
52  }