Michalis Daniilakis - 5 months ago 17
Java Question

# Java 2d exploded pie chart segments

I'm trying to add some distance (e.g. 10px) between a segment (arc) of the pie chart and it's center without success, here's what i've tried so far:

``````int value = 20; // example
double arcAngle = (value * 360 / 100);
double angle = 360 - (arcAngle / 2); // direction to add the distance to (center of arc)
double newX = pieCenterX + Math.cos(angle * Math.PI / 180.0) * 10;
double newY = pieCenterY + Math.sin(angle * Math.PI / 180.0) * 10;

// then drawing the arc with new x and y
g.fill(new Arc2D.Double(newX, newY, bounds.getWidth(), bounds.getHeight(), startAngle, arcAngle, Arc2D.PIE));
``````

Ideally i should end up with something like that:

I don't know much on how to approach this, so my code was taken from examples i found elsewhere.

Usually zero angle is OX direction (right). So you have to make correction by 90 degrees (if your coordinate system is counterclockwise)

``````double angle = 90 + 360 - (arcAngle / 2);
``````
Source (Stackoverflow)