---
title: 'Inselraus: n-Ecke zeichnen'
url: 'https://tutego.de/blog/javainsel/2013/02/inselraus-n-ecke-zeichnen'
markdown: 'https://tutego.de/blog/javainsel/2013/02/inselraus-n-ecke-zeichnen.md'
date: '2013-02-24'
description: 'In der Graphics-Klasse gibt es keine Methode, um regelmäßige n-Ecken zu zeichnen. Eine solche Methode ist aber leicht und schnell programmiert: Wir teilen dazu einfach einen Kreis in n Teile auf und berechnen die x- und y-Koordinaten der Punkte auf dem Kreis. Diese Punkte fügen wir einem Polygon-Ob…'
taxonomy:
  category:
    - 'Java SE'
---

# Inselraus: n-Ecke zeichnen

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Inselraus: n-Ecke zeichnen

24.02.2013 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

In der Graphics-Klasse gibt es keine Methode, um regelmäßige n-Ecken zu zeichnen. Eine solche Methode ist aber leicht und schnell programmiert: Wir teilen dazu einfach einen Kreis in n Teile auf und berechnen die x- und y-Koordinaten der Punkte auf dem Kreis. Diese Punkte fügen wir einem Polygon-Objekt mittels der `addPoint(…)`-Methode hinzu. Eine eigene statische Methode `drawVertex(…)` übernimmt diese Polygon-Erstellung. Der letzte Parameter der Methode ist ein Wahrheitswert, der bestimmt, ob das n-Eck gefüllt werden soll oder nicht:

```java

package com.tutego.insel.ui.graphics;

import java.awt.*;
import javax.swing.*;

public class N_Vertex extends JPanel {

  private static final long serialVersionUID = -6314283966378303073L;

  @Override protected void paintComponent( Graphics g ) {
    VertexDrawer.drawVertex( g, getWidth() / 2, getHeight() / 2, 50, 6, true );
    VertexDrawer.drawVertex( g, getWidth() / 2, getHeight() / 2, 60, 6, false );
  }

  public static void main( String[] args ) {
    JFrame f = new JFrame();
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    f.add( new N_Vertex() );
    f.setSize( 200, 200 );
    f.setVisible( true );
  }
}

class VertexDrawer {
  public static void drawVertex( Graphics g, int x, int y, int r, int n, boolean filled ) {
    Polygon p = new Polygon();

    for ( int i = 0; i < n; i++ )
      p.addPoint( (int) (x + r * Math.cos( i * 2 * Math.PI / n )),
                  (int) (y + r * Math.sin( i * 2 * Math.PI / n )) );

    if ( filled )
      g.fillPolygon( p );
    else
      g.drawPolygon( p );
  }
}
```

Kategorien: [Java SE](https://tutego.de/blog/javainsel/category/java-se/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Inselraus: JScrollPane Viewport und Scrollable](https://tutego.de/blog/javainsel/2013/02/inselraus-jscrollpane-viewport-und-scrollable.md)
- Next: [Inselraus: Zeichensätze des Systems ermitteln](https://tutego.de/blog/javainsel/2013/02/inselraus-zeichenstze-des-systems-ermitteln.md)
