如何在 Java中绘制一个体面的圆圈

我已经尝试使用方法 drawOval 具有相等的高度和宽度,但随着直径的增加,圆圈变得更糟。我能做些什么来拥有一个体面的圆圈,无论大小如何。我将如何在 java 或其他方法中实现抗锯齿

我已经尝试使用方法 drawOval 具有相等的高度和宽度,但随着直径的增加,圆圈变得更糟。我能做些什么来拥有一个体面的圆圈,无论大小如何。我将如何在 java 或其他方法中实现抗锯齿

61

事实证明,Java2D(我假设是你正在使用的)已经很擅长这个!这里有一个不错的教程:http://www.javaworld.com/javaworld/jw-08-1998/jw-08-media.html

重要的线是:

graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                          RenderingHints.VALUE_ANTIALIAS_ON);
32

您可以设置渲染提示:

Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    RenderingHints.VALUE_ANTIALIAS_ON);
18

有两件事可能会有所帮助:

Graphics2D.draw(Shape)java.awt.geom.Ellipse2D的实例一起使用,而不是Graphics.drawOval

如果结果仍然不令人满意,请尝试使用Graphics2D.setRenderingHint启用抗锯齿

实例

public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    Shape theCircle = new Ellipse2D.Double(centerX - radius, centerY - radius, 2.0 * radius, 2.0 * radius);
    g2d.draw(theCircle);
}

有关setRenderingHint的示例,请参见 Josef 的答案

7

当然,你设置你的半径,你需要什么:

@Override
public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    Ellipse2D.Double hole = new Ellipse2D.Double();
    hole.width = 28;
    hole.height = 28;
    hole.x = 14;
    hole.y = 14;
    g2d.draw(hole);
}

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(700)
Ical/Apple日历集成
上一篇
SwashBuckle在错误时定义响应主体
下一篇

相关推荐

  • java编程技术大全pdf下载从入门到精通

    Java编程技术大全PDF下载是一种可以帮助开发者学习和提高Java编程技能的资料。它涵盖了Java编程语言、Java EE、Java SE、Java ME、JVM、JDBC、JSP、Servlet等多个方面的内容,可以帮助开发者更好地理解和掌握Java编程技术。…

    2023-06-16 10:44:04
    0 85 86
  • java插入排序:如何使用Java实现插入排序

    插入排序是一种简单的排序算法,它通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。Java代码如下:…

    2023-04-02 03:13:27
    0 84 71
  • php跟java有什么区别编程语言特性比较

    示例示例语言特性:PHP是一种弱类型的脚本语言,变量不需要声明类型,可以直接赋值;而Java是一种强类型的语言,变量必须声明类型,才能使用。…

    2023-10-31 06:04:23
    0 20 83
  • java与jsp:如何使用Java和JSP构建功能强大的Web应用

    示例示例Java和JSP是两种不同的技术,它们都是用于开发Web应用程序的重要工具。Java是一种面向对象的编程语言,用于编写可在多种平台上运行的跨平台应用程序。它可以用于开发各种类型的应用程序,包括桌面应用程序、服务器端应用程序和Web应用程序。Java应用程序通常使用Java类库来实现其功能。…

    2023-06-15 13:33:03
    0 57 61
  • java小程序源码:如何使用Java小程序实现功能强大的应用

    示例示例Java小程序源码是指使用Java语言开发的小程序,它可以运行在Java虚拟机上。下面是一个简单的Java小程序源码示例:…

    2023-05-11 09:27:45
    0 75 59
  • java实现多线程的两种方式:使用Java实现多线程的两种方式

    示例示例Java实现多线程的两种方式:继承Thread类:…

    2023-06-13 07:43:19
    0 65 63
  • java获取请求头信息实现HTTP客户端的功能

    示例示例Java获取请求头信息的方法如下:通过对象的(String name)方法来获取请求头信息,其中name参数是要获取的请求头的名字,返回值是一个字符串,表示请求头对应的值。…

    2023-04-07 11:10:57
    0 47 10
  • java软件培训机构有哪些Java软件培训机构大盘点

    Java软件培训机构主要有:Udemy:Udemy是一家提供在线课程的公司,其中包括Java课程。他们的课程内容涵盖了从基础到高级的所有Java知识,并且有许多免费课程可供选择。…

    2024-08-11 12:35:03
    0 50 64

发表评论

登录 后才能评论

评论列表(85条)