2D-Grafik "Unvollständiger" Kreis(kontur)

melatonin

Mitglied
Hallo,
ich würde gerne einen "unvollständigen" Kreis(kontur) zeichnen. Ein Beispiel habe ich als angehangen.
Ich könnte Pixel für Pixel zeichnen oder das unnötige mit der Hintergrundfarbe übermalen.
Später möchte ich dann die Möglichkeit haben, über eine Methode zu bestimmen, wie weit der Kreis gemalt wird.

Mir geht es hierbei um eine ressourcenschonende Variante. Leider bietet Graphics da keine std. Lösung.

Was fällt euch ein, was wäre eine gute Lösung?

Vielen Dank und Gruss
 

Anhänge

  • kreis.png
    kreis.png
    1,2 KB · Aufrufe: 69
S

SlaterB

Gast
wenn es dir um den Tortenausschnitt geht, dann haben die Kreis-Methoden doch Winkel-Angaben?
der Ring ist auch mit drawArc statt fillArc und bestimmte Liniendichte usw. zu machen, was hast du denn bisher verwendet?

ansonsten vielleicht auch fillArc + fillArc mit etwas kleinerern Radius in Hintergrundfarbe, also Übermalen wie du sagst

Java Tips - How to draw Arc on a Canvas
 

melatonin

Mitglied
Er zieht dann aber direkt eine Linie von Start bis Ende. Siehe Anhang.
Irgendwie finde ich es unsauber, wenn man zuerst was zeichnet um es dann teilweise wieder zu überzeichnen.
 

Anhänge

  • fail.png
    fail.png
    405 Bytes · Aufrufe: 55
S

SlaterB

Gast
bei mir nicht:

g.fillArc(100,100,100,100,0,270);
g.drawArc(220,100,100,100,0,270);

poste doch Code.. (ich habe die Ausrede dass ich dir nicht umsonst ein komplettes Programm liefern will)
 

Anhänge

  • screen1.png
    screen1.png
    5,4 KB · Aufrufe: 38

melatonin

Mitglied
@SlaterB
Ich muss dazu sagen, dass ich für Android entwickel:
Canvas | Android Developers, float, float, boolean, android.graphics.Paint)

Mit Graphics habe ich es nicht getestet. Ich bin davon ausgegangen, dass sich das Äquivalent zu Graphics bei Android genauso verhält. Vor allem bei gleichem Methodennamen :(

@Marco13 Danke werde ich mir mal genauer anschauen.

Ich habs hinbekommen. useCenter war der Übeltäter ;) Wer lesen kann, ist klar im Vorteil.
Aber nochmal zur Frage der sauberen Lösung. Ist das echt die "gute" Lösung, indem man es dann mit dem bg übermalt?
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Das kommt auf die Kriterien an. Spätestens, wenn im "inneren" schon irgendwas gezeichnet ist, und man das Segment nur "drüberzeichnen" will, kommt man mit einem nachträglichen Füllen des Hintergrundes nicht weit. Aber ansonsten ist das wohl schon legitim...
 

melatonin

Mitglied
Ich frage mich halt, wann der Overhead eine eigene Routine, die wirklich nur das zeichnet was benötigt wird, rechtfertigt. Hat vielleicht jemand schonmal beide Sachen probiert und da irgendwelche Zahlen ermittelt, wie schnell beide Varianten waren.

Ich könnte mir sogar vorstellen, dass eine eigene Routine viel langsamer sein kann. z. B. wenn man Pixel für Pixel zeichnen würde.
 

Marco13

Top Contributor
Das ist schwer zu sagen, und könnte sich sogar zwischen verschiedenen JVM-Versionen, Betriebssystemen und ggf. sogar verschiedenen Grafikkarten und Treibern unterscheiden. Wenn man z.B. sowas wie
Code:
 __________
|          |
|   _______|
|  |
|  |
|  |
|  |_______
|__________|
zeichnen wollte, dann wäre es sicher aufwändiger, das als EIN Polygon zu füllen, als einmal das äußere Rechteck und dann das kleine, innere zu zeichnen (Rechtecke sind eben sehr einfach). Aber vermutlich dürfte da bei einem komplexeren Arc nicht so viel Unterschied sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JavaFX Ich kann keinen Kreis richtig zeichnen AWT, Swing, JavaFX & SWT 8
L 2D-Grafik Linie von Kreis zu Kreis AWT, Swing, JavaFX & SWT 3
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
S GUI Kreis zeichnen AWT, Swing, JavaFX & SWT 13
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
L 2D-Grafik Dreieck in einem Kreis??? AWT, Swing, JavaFX & SWT 1
T Swing / Kreis zeichnen AWT, Swing, JavaFX & SWT 2
G Mehrere Strings um Kreis zeichnen und positionieren AWT, Swing, JavaFX & SWT 0
D Swing Manuellen Kreis zeichen AWT, Swing, JavaFX & SWT 22
T Kreis in Jlabel darstellen. AWT, Swing, JavaFX & SWT 13
J Grafik (Kreis) schneller bewegen? AWT, Swing, JavaFX & SWT 6
E Kreis-Mal-Programm AWT, Swing, JavaFX & SWT 7
S Kreis in Kreis AWT, Swing, JavaFX & SWT 5
P Elemente im Kreis aufstellen AWT, Swing, JavaFX & SWT 5
T Einen Kreis anzeigen AWT, Swing, JavaFX & SWT 14
B 2D-Grafik Text in einem Kreis zentrieren AWT, Swing, JavaFX & SWT 3
Semox 2D-Grafik Radialer Verlauf in einem Kreis AWT, Swing, JavaFX & SWT 4
T 2D-Grafik Kreis "von Hand" zeichnen -> jedesmal repaint()? AWT, Swing, JavaFX & SWT 6
P Swing FocusTraversalPolicy dreht sich im Kreis AWT, Swing, JavaFX & SWT 2
J Java2D Kreis/Kurven Frage AWT, Swing, JavaFX & SWT 2
Semox Swing Kreis löschen durch Mausklick in der Nähe AWT, Swing, JavaFX & SWT 2
Dit_ Ein Kreis als Graphics2D oder als Ellipse2D Objekt AWT, Swing, JavaFX & SWT 19
K Wenn Mauszeiger in der Nähe vom Kreis, soll Kreis an eine andere Stelle springen AWT, Swing, JavaFX & SWT 8
Spin Hilfe - Erklärungsbedarf für Kreis AWT, Swing, JavaFX & SWT 5
H Punkte im Kreis AWT, Swing, JavaFX & SWT 3
G kreis malen -> welche funktion? AWT, Swing, JavaFX & SWT 3
G Farbe ändern bei Klick auf einen Kreis AWT, Swing, JavaFX & SWT 5
M Kreis mit gedrückter Maus bewegen AWT, Swing, JavaFX & SWT 20
U Farbe von Kreis AWT, Swing, JavaFX & SWT 3
G Kreis zeichnen und mit Maus ziehen AWT, Swing, JavaFX & SWT 3
S Kreis als JFrame AWT, Swing, JavaFX & SWT 9
TheJavaKid Kreis, Rechteck, Linie. verschieben AWT, Swing, JavaFX & SWT 5
T Kreis ActionListener AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben