1 package org.woehlke.computer.kurzweil.tabs.sierpinskitriangle;
2
3 import org.woehlke.computer.kurzweil.tabs.sierpinskitriangle.SierpinskiTriangleModel;
4
5 import javax.swing.*;
6 import java.awt.*;
7
8
9
10
11
12
13
14
15
16
17
18
19 public class SierpinskiTriangleCanvas extends JComponent {
20
21 private volatile SierpinskiTriangleModel app;
22 private volatile Dimension preferredSize;
23
24 public SierpinskiTriangleCanvas(SierpinskiTriangleModel app) {
25 this.app = app;
26 int width = this.app.getWorldDimensions().getWidth();
27 int height = this.app.getWorldDimensions().getHeight();
28 this.preferredSize = new Dimension(width, height);
29 this.setSize(this.preferredSize);
30 this.setPreferredSize(preferredSize);
31 }
32
33 public void paint(Graphics g) {
34 this.setSize(this.preferredSize);
35 this.setPreferredSize(preferredSize);
36 super.paintComponent(g);
37 int red = 0;
38 int green = 0;
39 int blue = 0;
40 for(int y = 0; y < app.getWorldDimensions().getY(); y++){
41 for(int x = 0; x < app.getWorldDimensions().getX(); x++){
42 blue = (((app.getCellStatusFor(x,y))*4)%256);
43 Color stateColor = new Color(red, green, blue);
44 g.setColor(stateColor);
45 g.drawLine(x,y,x,y);
46 }
47 }
48 }
49
50 public void update(Graphics g) {
51 paint(g);
52 }
53
54 }