0

请帮我解决画圆的两个问题:

1)我想做一个完美的圆圈。宽度 == 高度,但它仍然绘制一个椭圆:

生成的图像

如果您尝试旋转此图像,您会明白我的意思:

旋转图像

我怎样才能得到一个完美的圆圈?

2)图片尺寸:300x300 像素。图像和圆的边缘之间的距离不同:

顶部:9 像素。底部:8 像素。左:11 像素。右:12 像素。

我想在每个边缘和圆圈之间获得相同的距离,例如:顶部 == 底部 == 左 == 右 == 10 px。

我怎样才能做到这一点?

这是我的代码:

public Circle(String title) 
{
chart = ChartFactory.createScatterPlot(""/*title*/, "", "", new XYSeriesCollection());

chart.setBorderVisible(false);
chart.removeLegend();

XYPlot plot = ((XYPlot)chart.getPlot());

plot.setBackgroundPaint(Color.WHITE);
plot.setOutlineVisible(false);

double range = 1.45f;

plot.getRangeAxis().setRange(-range, range);
plot.getRangeAxis().setTickLabelsVisible(false);
plot.getRangeAxis().setTickMarksVisible(false);
plot.getRangeAxis().setAxisLineVisible(false);
plot.getRangeAxis().setLowerMargin(0.0f);
plot.getRangeAxis().setUpperMargin(0.0f);

plot.getDomainAxis().setRange(-range, range);
plot.getDomainAxis().setTickLabelsVisible(false);
plot.getDomainAxis().setTickMarksVisible(false);
plot.getDomainAxis().setAxisLineVisible(false);
plot.getDomainAxis().setLowerMargin(0.0f);
plot.getDomainAxis().setUpperMargin(0.0f);

double outRad = range - 0.01f;

Ellipse2D outercircle = new Ellipse2D.Double(0.0f - outRad, 0.0f - outRad, outRad * 2.0f, outRad * 2.0f);

plot.addAnnotation(new XYShapeAnnotation(outercircle, new BasicStroke(2.0f), Color.BLACK));
}

谢谢。

4

0 回答 0