# Wie kann man Kreisringe zeichnen ?



## MarcLB (7. Jan 2005)

Hallo,

ich habe eine Anwendung, bei der ich Kreisringe zeichnen muß.

Da helfen mir solche Klassen wie "com.sun.j3d.utils.geometry.Cylinder" oder "com.sun.j3d.utils.geometry.Sphere" ja nicht weiter.


Vielen Dank.


----------



## stev.glasow (7. Jan 2005)

Kreisringe   ???:L  sind doch mehrere Kreise, oder?
Wenn ja, einfach mehrere Kreise zeichnen die den Gleichen Mittelpunkt aber einen unerschiedlichen Radius haben


----------



## MarcLB (7. Jan 2005)

So einfach gehts leider nicht:

Bei einem Kreisring kann ich den Untergrund sehen unter dem inneren Kreis sehen.

Danke.


----------



## stev.glasow (7. Jan 2005)

Achso, da kann ich nicht weiter helfen, vieleicht weiß ja jemand anderes was.


----------



## Illuvatar (7. Jan 2005)

Hm? Ich versteh immer noch nicht ganz, was Kreisringe sind


----------



## stev.glasow (7. Jan 2005)

Stelle dir einen Donut, der auf einer Ablage liegt in 2D vor ... die Ablage ist doch noch durch das Loch in der Mitte des Donuts zu sehen, jetzt klar?
[edit] Der Donut ist der Kreisring und die Ablage irgend ein Bild.


----------



## Illuvatar (7. Jan 2005)

Und was ist das Problem an Graphics#drawOval?


----------



## stev.glasow (7. Jan 2005)

So wie ich das jetzt sehe ne Menge, oder kann ich die Liniendicke angeben?


----------



## Illuvatar (7. Jan 2005)

aso... jetzt wird mir alles klar 

aber...

man *kann* die Liniendicke angeben  (wolltest du dich nicht mal in Java2D einarbeiten?)
In Graphics2D kannst du einen Stroke setzen, zum Beispiel einen BasicStroke mit der Dicke 27.

```
((Graphics2D)graphics).setStroke (new BasicStroke (27));
graphics.drawOval (10, 10, 750, 347);
```


----------



## stev.glasow (7. Jan 2005)

Ich arbeite mich grade  in diesem Moment ein   , habe auch noch geguckt ob nicht so etwas gibt, aber wer kommt den schon auf "stroke" ...


----------



## MarcLB (8. Jan 2005)

Vielen Dank, ich habe mich nicht genau genug ausgedrückt. 

Ich möchte dreidimensional ein Rohr mit einer bestimmten Wanddicke zeichnen. Wobei der Durchmesser des Rohres nicht über seine gesamte Länge konstant ist. Es hat Wellen. Stellt euch am besten ein Ofenrohr vor. Das kommt der Sache am nähesten.

Vielen Dank.


----------



## Bleiglanz (8. Jan 2005)

du möchtest wohl einen sog. Torus zeichnen?


----------



## Spacerat (5. Feb 2005)

Nun nochmal (Ehrlich ein letztesmal zum Verständnis!)? Dieser Dounut ist nu' wirklich ein schlechtes Beipiel.

Soll der Ring nun einen Aussen- und einen Innendurchmesser haben (Dann ist es ein Ring), oder (da du davon sprachst) ein Zylinder ohne die "Deckel" (Dann wäre es eine Röhre!)? Im zweiten Fall kann man sich von dem Zylinder mit getShape(Cylinder.TOP) und getShape(Cylinder.BOTTOM) die Shapes dieser Deckel holen und dessen Appearance Tranzparent machen.

Ein weiterer Weg (unheimlich umständlich, aber die Sache wert) wäre, wenn man sich selbst eine Primitiven-Bibliothek anlegt. Dazu kann man sich aus dem Distributierten Quelltexten das geometry-Paket extrahieren und Cylinder z.B. gleich so verändern, da BOTTOM und TOP gar nicht erst erstellt werden. Leider muß man dazu das komplette Paket übernehmen (samt Quadrics usw.) da so ziemlich alles was man dazu braucht "protected" ist. Aber hat man erstmal sein eigenes Paket geschnürt, ist es später ein Klacks z.B. auch noch einen Ring, eine Kapsel und und und zu basteln.

cu


----------

