Kreis teilweise füllen

Status
Nicht offen für weitere Antworten.

Angel4585

Bekanntes Mitglied
Hallo,

ich hoffe ich drück mich jetz nich zu kompliziert aus.

Ich möchte einen Kreis der quasi ein Fass darstellt und da drin möchte ich einen Füllstand anzeigen, also wie wenn Wasser drin wäre.

Wie zeichne ich das am besten?

Bisher habe ich den Kreis der komplett ausgefüllt ist:
Code:
g.setColor(Color.WHITE);
g.fillOval(0,0,20,20);

//Hier müsste denk ich der Füllstand gezeichnet werden
/*
Hiermit zeichne ich einen Füllstand von 50%, aber eher durch zufall

g.setColor(Color.RED);
g.fillArc(0, 0, 20, 20, 0, 180);

*/
g.setColor(Color.BLACK);
g.drawOval(0,0,20,20);

Ohne den Füllstand ist es wie ein leeres Fass.
Mit dem Füllstand ist es als wäre das Fass zB zu 70% gefüllt.
Den Füllstand möchte ich je nach % zeichnen lassen, also ne Methode der ich ne Zahl zwischen 0 und 100 gib und die dann den Füllstand zeichnet.

Wie kann ich das realisieren?
 

ARadauer

Top Contributor
funktioniert
g.fillArc(0, 0, 20, 20, 0, 180);
nicht? wie meinstu du das mit 50% durch zufall?

ich denke das kommt daher, das ein kreis 360 grad hat und 180 % davon sind sind...

360 mal deinem wert / hundert, und das gibts du als letzen parameter beim fill Arc an, müsste klappen oder?
 

Illuvatar

Top Contributor
Naja fillArc geht logischerweise nicht, weil er ja keinen Kreisbogen haben will...

Code:
g.setColor(Color.WHITE); 
g.fillOval(0,0,20,20); 

g.setClip (new Rectangle (0, 10, 20, 10));
g.setColor (Color.RED);
g.fillOval(0,0,20,20); 
g.setClip (null);

g.setColor(Color.BLACK); 
g.drawOval(0,0,20,20);

So sollte das gehen. (siehe hier)
 

Angel4585

Bekanntes Mitglied
das zeigt mir dann quasi ne Torte von oben, aber kein Fass von vorne ;)
Der Füllstand sieht dann so aus wie ein Kreis bei dem oben was abgeschnitten wurde, aber nich abgeschnitten wie bei einer Torte => V sondern wie wenn in nem Fass etwas fehlt: ---
 

Marco13

Top Contributor
Wenn der Füllstand tatsächlich "plausibel" sein soll, wirst du aber noch ein bißchen rumrechnen müssen: Wenn der Kreis 100 Pixel hoch ist, und das Fass zu 25% voll ist, ist NICHT einfach der Kreis 25 Pixel hoch gefüllt. Da muss man noch den Anteil an der Kreisfläche ausrechnen, der bedeckt sein muss.
 

Angel4585

Bekanntes Mitglied
naja es reicht wenn er 25 Pixel gefüllt ist, so genau brauch ich das dann nicht :lol:
Aber danke für den Hinweis ;)
 

Angel4585

Bekanntes Mitglied
Illuvatar hat gesagt.:
Naja fillArc geht logischerweise nicht, weil er ja keinen Kreisbogen haben will...

Code:
g.setColor(Color.WHITE); 
g.fillOval(0,0,20,20); 

g.setClip (new Rectangle (0, 10, 20, 10));
g.setColor (Color.RED);
g.fillOval(0,0,20,20); 
g.setClip (null);

g.setColor(Color.BLACK); 
g.drawOval(0,0,20,20);

So sollte das gehen. (siehe hier)

funzt astrein :D Danke


soll ich für mein zweites Problem nochmal en Thread aufmachen? jo ich mach mal :D
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben