请帮我解决画圆的两个问题:
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));
}
谢谢。