java - 如何使用 Graphics#fillOval 的中心作为引用在中心绘制随机圆

标签 java eclipse jframe geometry jpanel

当前,当单击按钮时,圆将在 g.fillOval(getWidth()/2 - 50, getHeight()/2 - 50, radius, radius);

处绘制>

这里我有:

  private class DrawPanel extends JPanel {
    private int radius;

    @Override
    public void paintComponent(Graphics g) {
      super.paintComponent(g);
      g.fillOval(getWidth()/2 - 50, getHeight()/2 - 50, radius, radius);
    }

最佳答案

你的问题不是很清楚,而且你发布的代码太多了,所以让我概括一下。

当您使用 Graphics#fillOval 绘制圆形时,引用点是椭圆形所内接的正方形的左上角。

因此,如果您想使用中心作为引用,则应在给定半径 r 的情况下绘制:

(xCenter - r, yCenter - r, r*2, r*2)

此外,由于它是一个圆形,请考虑使用 Graphics2D 并启用抗锯齿功能。 这是执行此操作的文档:

https://docs.oracle.com/javase/tutorial/2d/advanced/quality.html

关于java - 如何使用 Graphics#fillOval 的中心作为引用在中心绘制随机圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39944147/

相关文章:

java - 如何组合验证两个或多个字段?

Windows keystore 和证书

java - 按下按钮后 JTable 不会从其他类中的输入数据进行更新

android - 为 Android 离线(手动)安装 Intel x86 Atom 系统镜像

java - 为什么这个 JPanel 不符合指定的大小?

java - 为什么我的组件不可见?

java - 从 SD 卡中删除文件夹

java - Android - ExoPlayer 在没有太多缓冲的情况下尽快开始播放

android - Eclipse 未在 Android XML 中显示建议

Int 对的 Java vector