protected void paintComponent(Graphics g) {
Graphics2D g2D = (Graphics2D) g;
g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2D.translate(getWidth() / 2, getHeight() / 2);
g2D.scale(getWidth() / 2, getWidth() / 2);
g2D.rotate(Math.toRadians(controller.getNorthDirectionInDegrees()));
// Draw a round arc
g2D.setStroke(new BasicStroke(0.5f / getWidth()));
g2D.draw(new Ellipse2D.Float(-0.7f, -0.7f, 1.4f, 1.4f));
g2D.draw(new Line2D.Float(-0.85f, 0, -0.7f, 0));
g2D.draw(new Line2D.Float(0.85f, 0, 0.7f, 0));