Michalis Daniilakis - 11 months ago 75

Java Question

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.

Answer

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)