Bibi's DevLog ๐ค๐
[Java AWT] GUIํ๋ก๊ทธ๋๋ฐ - ์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ Pie chart ๋ณธ๋ฌธ
๐ฅ BE ๋ฐฑ์๋/Java ์๋ฐ
[Java AWT] GUIํ๋ก๊ทธ๋๋ฐ - ์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ Pie chart
๋น๋น bibi 2021. 2. 5. 18:15[Java - AWT] ์ ๊ทธ๋ํ Pie Chart ๊ทธ๋ฆฌ๊ธฐ
์ ๊ทธ๋ํ, ์ ๊ทธ๋ํ ๋ง๋ค๊ธฐ ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค.
์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆฌ๋ ค๊ณ ๊ตฌ๊ธ๋ง์ ์ด์ฌํ ํด๋ ์ ์ ๋์์,
๋ด ๋ฅ๋ ฅ์ด ๋๋ ๋งํผ(?) ์ง์ ๊ตฌํํด ๋ณด์๋ค.
*Java AWT ๊ธฐ์ด๋ ์๋ฐ์์ ์2ํ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ๊ณต๋ถํ์ต๋๋ค.
์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
- ๊ฐ ํญ๋ชฉ์ด ์ฐจ์งํ๋ ๋ฐฑ๋ถ์จ(%)์ ๊ตฌํ๋ค.
- 100%๋ ์ ๊ทธ๋ํ์์ 360๋ ์ด๋ฏ๋ก, 1%๋น 3.6๋ ๋ก ๋ถ์ฑ๊ผด์ ์ค์ฌ๊ฐ์ ๊ณ์ฐํ๋ค.
- 0๋(์ํ์ )์์
g.fillArc()
๋ฅผ ์ฌ์ฉํด ํญ๋ชฉ๋น ๋ถ์ฑ๊ผด์ ํ๋์ฉ ๊ทธ๋ฆฐ๋ค.
*drawArc()
, fillArc()
๋ถ์ฑ๊ผด ๊ทธ๋ฆฌ๊ธฐ๋ ์ด์ ๊ฒ์๋ฌผ์ ์ค๋ช
ํด ๋์์ต๋๋ค.
์๋ ์ฝ๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ง๋ฉด ๋ฉ๋๋ค.
public void paint(Graphics g) { // ์๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
g.setColor(Color.yellow); // 10๋
g.fillArc(100, 100, 200, 200, 0, (int) num10Angle);
g.setColor(Color.blue); // 20๋
g.fillArc(100, 100, 200, 200, (int) num10Angle, (int) num20Angle);
g.setColor(Color.green); // 30๋
g.fillArc(100, 100, 200, 200, (int) (num10Angle + num20Angle), (int) num30Angle);
g.setColor(Color.orange); // 40๋
g.fillArc(100, 100, 200, 200, (int) (num10Angle + num20Angle + num30Angle), (int) num40Angle);
}
public double getRatio(int numWhole, int numPart) { // ๋น์จ ๊ตฌํ๊ธฐ
double ratio = ((double) numPart / (double) numWhole) * 100;
// ๊ฒฐ๊ณผ double์ด๋ ค๋ฉด ์ธ์๋ double๋ก casting
return ratio;
}
public double getAngle(double ratio) { // ์ค์ฌ๊ฐ ๊ตฌํ๊ธฐ
double angle = 3.6 * ratio;
return angle;
}
๊ฒฐ๊ณผ :
'๐ฅ BE ๋ฐฑ์๋ > Java ์๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java - ์๋ฐ์ ์ ] 26์ฅ. ํ์ผ I/O ๊ธฐ์ด (Fileํด๋์ค) (0) | 2021.02.07 |
---|---|
[Java AWT] Color ํด๋์ค ์ฌ์ฉ์ ์ง์ ์ ๋ง๋ค๊ธฐ (RGB๊ฐ ํ์ฉ) (0) | 2021.02.05 |
[Java] CSV ํ์ผ ์ ์ถ๋ ฅ (์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ด์ด์ฐ๊ธฐ) (1) | 2021.02.04 |
[Java AWT] drawArc(), fillArc() - ํธ, ๋ถ์ฑ๊ผด ๊ทธ๋ฆฌ๊ธฐ (0) | 2021.02.04 |
[Codesquad] ์๋ฐ ํด๋์ค ์์ ์์ - ์นดํ์ค์ฟผ๋ (0) | 2021.01.14 |