2016-07-01 7 views
0

Ich versuche, in einiger Entfernung (zB 10px) zwischen einem Segment (Bogen) des Kreisdiagramms hinzuzufügen und es ist Zentrum ohne Erfolg, hier ist was ich bisher versucht habe:Java 2d Kreisdiagramm Segmente explodierte

enter image description here

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)); 

Im Idealfall soll ich mit so etwas wie das Ende:

enter image description here

ich weiß nicht viel darüber, wie thi zu nähern s, also wurde mein Code von Beispielen genommen, die ich anderswo gefunden habe.

+0

verfassen [MCVE] und in dem zweiten Bild erklären, wo die 10px Lücke sein sollte .. – user1803551

Antwort

1

Normalerweise ist der Nullwinkel die OX-Richtung (rechts). Sie müssen also Korrektur um 90 Grad machen (wenn Ihr Koordinatensystem gegen den Uhrzeigersinn ist)

double angle = 90 + 360 - (arcAngle/2); 
+0

funktioniert super Dank! –