public void render(Graphics2D g) {
		g.setColor(Color.WHITE);
		g.fillRect(0, 0, width, height);

		g.setColor(Color.BLACK);

		double[][][] points = new double[sim.getHeight()][sim.getWidth()]
		                                [2];

		for (int i = 0; i < sim.getHeight(); i++) {
			for (int j = 0; j < sim.getWidth(); j++) {
				points[i][j] = isoPoint(j, i, sim.getZ(i, j));
			}
		}

		for (int i = 0; i < sim.getHeight(); i++) {
			for (int j = 0; j < sim.getWidth(); j++) {
				if (i < sim.getHeight() - 1) {
					g.draw(new Line2D.Double(points[i][j][0],
					                         points[i][j][1],
					                         points[i+1][j][0],
					                         points[i+1][j][1]));
				}
				if (j < sim.getWidth() - 1) {
					g.draw(new Line2D.Double(points[i][j][0],
					                         points[i][j][1],
					                         points[i][j+1][0],
					                         points[i][j+1][1]));
				}
			}
		}

		g.drawRect(displayX, displayY, displayWidth, displayHeight);
	}