【发布时间】:2017-02-18 08:33:27
【问题描述】:
我正在开发一个绘制图形的程序,所以我想画点!我希望这些点是圆形的,因为这通常是点的表示方式,据我所知,g2.fillOval(x, y, height, width) 应该在(x, y) 处绘制一个高度为height 和宽度为width 的填充椭圆形。这是我目前的代码:
private void drawCenteredCircle(Graphics g, int x, int y, int radius) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setColor(pointColor);
g2.fillOval(x-radius, y-radius, 2*radius, 2*radius);
g2.dispose();
}
然后在 JPanel 的 paintComponent() 方法中调用它。它确实绘制,所以我知道代码正在运行,但由于某种原因,它绘制了一个正方形,如下所示:
my square oval :(
我也试过这个:
private void drawCenteredCircle(Graphics g, int x, int y, int radius) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setColor(pointColor);
g2.fill(new Ellipse2D.Float(x-radius, y-radius, 2*radius, 2*radius);
g2.dispose();
}
但得到了相同的结果。任何有关如何绘制实心圆/椭圆的帮助将不胜感激。
【问题讨论】:
-
我猜如果没有像样的minimal reproducible example,你就不会得到像样的答案。如果时间至关重要,请查看该链接并考虑创建和发布其中之一。另请注意,所有代码都应在此处发布,而不是在链接中。
-
除了这次你的问题可能是由于 RenderingHints 设置不正确。测试一下。
-
链接中没有发布代码,这是我的结果的图像。另外,感谢您提供最小、完整且可验证的示例页面,我一定会通读该页面并使用该格式发布问题。