我试图在饼图的一个段(圆弧)和它的中心之间添加一些距离(例如10px)而没有成功,这是我到目前为止所尝试的:
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));
理想情况下,我最终会得到类似的东西:
我对如何处理这个问题知之甚少,所以我的代码取自我在别处找到的例子。
答案 0 :(得分:1)
通常零角度是OX方向(右)。因此,您必须进行90度校正(如果您的坐标系是逆时针方向)
double angle = 90 + 360 - (arcAngle / 2);