1 | if (extent > -180.0) { // whole segment stays at the back↵ | | 1 | if (extent < 180.0) { // segment only occupies the front↵
|
2 | if (drawBack) {↵ | | 2 | if (drawFront) {↵
|
3 | Area side = new Area(new Rectangle2D.Double(↵ | | 3 | Area side = new Area(new Rectangle2D.Double(↵
|
4 | arc.getStartPoint().getX(), plotArea.getY(),↵ | | 4 | arc.getStartPoint().getX(), plotArea.getY(),↵
|
5 | arc.getEndPoint().getX() ↵ | | 5 | arc.getEndPoint().getX() ↵
|
6 | - arc.getStartPoint().getX(),↵ | | 6 | - arc.getStartPoint().getX(),↵
|
7 | plotArea.getHeight()));↵ | | 7 | plotArea.getHeight()));↵
|
8 | side.intersect(back);↵ | | 8 | side.intersect(front);↵
|
9 | g2.setPaint(paint);↵ | | 9 | g2.setPaint(paint);↵
|
10 | g2.fill(side);↵ | | 10 | g2.fill(side);↵
|
11 | g2.setPaint(outlinePaint);↵ | | 11 | g2.setPaint(outlinePaint);↵
|
12 | g2.draw(side);↵ | | 12 | g2.draw(side);↵
|
13 | }↵ | | 13 | }↵
|
14 | }↵ | | 14 | }↵
|
15 | else { // starts at the back, wraps around front, and ↵ | | 15 | else { // s↵
|
16 | // finishes at back again↵ | | 16 | egments wraps right around the back...↵
|
17 | Area side1 = new Area(new Rectangle2D.Double(↵ | | 17 | Area side1 = new Area(new Rectangle2D.Double(↵
|
18 | arc.getStartPoint().getX(), plotArea.getY(),↵ | | 18 | arc.getStartPoint().getX(), plotArea.getY(),↵
|
19 | plotArea.getMaxX() - arc.getStartPoint().getX(),↵ | | 19 | plotArea.getMaxX() - arc.getStartPoint().getX(),↵
|
20 | plotArea.getHeight()));↵ | | 20 | plotArea.getHeight()));↵
|
21 | side1.intersect(back);↵ | | 21 | side1.intersect(front);↵
|
|
22 | Area side2 = new Area(new Rectangle2D.Double(↵ | | 22 | Area side2 = new Area(new Rectangle2D.Double(↵
|
23 | plotArea.getX(), plotArea.getY(),↵ | | 23 | plotArea.getX(), plotArea.getY(),↵
|
24 | arc.getEndPoint().getX() - plotArea.getX(),↵ | | 24 | arc.getEndPoint().getX() - plotArea.getX(),↵
|
25 | plotArea.getHeight()));↵ | | 25 | plotArea.getHeight()));↵
|
|
26 | side2.intersect(back);↵ | | 26 | side2.intersect(front);↵
|
|
27 | g2.setPaint(paint);↵ | | 27 | g2.setPaint(paint);↵
|
28 | if (drawBack) {↵ | | 28 | if (drawFront) {↵
|
29 | g2.fill(side1);↵ | | 29 | g2.fill(side1);↵
|
30 | g2.fill(side2);↵ | | 30 | g2.fill(side2);↵
|
31 | }↵ | | 31 | }↵
|
|
32 | if (drawFront) {↵ | | 32 | if (drawBack) {↵
|
33 | g2.fill(front);↵ | | 33 | g2.fill(back);↵
|
34 | }↵ | | 34 | }↵
|
|
35 | g2.setPaint(outlinePaint);↵ | | 35 | g2.setPaint(outlinePaint);↵
|
36 | if (drawBack) {↵ | | 36 | if (drawFront) {↵
|
37 | g2.draw(side1);↵ | | 37 | g2.draw(side1);↵
|
38 | g2.draw(side2);↵ | | 38 | g2.draw(side2);↵
|
39 | }↵ | | 39 | }↵
|
|
40 | if (drawFront) {↵ | | 40 | if (drawBack) {↵
|
41 | g2.draw(front);↵ | | 41 | g2.draw(back);↵
|
42 | | | 42 |
|