在Java中,当需要画一些特殊的形状时,比如说椭圆、矩形等,可以使用 Graphics2D 来绘图。

一些API:

g.drawLine(3,3,50,50);//画一条线段
g.drawRect(80,100,40,25);//画线框
g.drawOval(10,10,60,120);//画椭圆 //画多边形
int px1[]={50,90,10,50};//首末点相重,才能画多边形
int py1[]={10,50,50,10};
g.setColor(Color.blue);
g.fillPolygon(px1,py1,4);

关于画图的更多内容,可以参考网上的一些介绍,或者官方API。

Graphics2D 对象中有个函数是 translate(x,y),该函数的功能如下:

将椭圆的原点移动到 (x,y)。

该函数和 rotate函数结合使用,可以实现将一个图形绕一个点旋转。

g2.rotate(Math.PI * rotate / 180.0);   //注意该函数是绕着椭圆的原点旋转

比如说,将一个水平的椭圆绕着椭圆的中心点旋转一个角度,需要先将椭圆的原点移动到一个位置,然后再绕着新的原点旋转,示意图如下:

新原点的坐标可以根据水平状态下原点的坐标以及旋转的角度算出来。需要注意的是:先移动原点,然后再旋转,顺序不能乱。

示例代码:

Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(Color.red);
g2.translate(translateX, translateY);
g2.rotate(Math.PI * rotate / 180.0);
g2.drawOval(0, 0, ovalWidth - 1, ovalHeight - 1);
g2.translate(-translateX, -translateY);
g2.dispose();

java Graphics2D 画图的更多相关文章

  1. java Graphics2d消除锯齿,使字体平滑显示

    Java 2D API 提供的文本处理功能进行美化.Java 2D API 的文本功能包括: 使用抗锯齿处理和微调(hinting)以达到更好的输出质量 可以使用系统安装的所有字体 可以将对图形对象的 ...

  2. Java Graphics2D 画出文字描边效果

    在CSDN看到的,在此记下. (http://bbs.csdn.net/topics/390703095) import javax.swing.*; import java.awt.*; impor ...

  3. java图形处理-Java Graphics2D

    java.awt 类 Graphics2D java.lang.Object 继承者 java.awt.Graphics 继承者 java.awt.Graphics2D public abstract ...

  4. Java -- AWT 画图,图像处理

    1. AWT画图  Graphics类  提供绘制简单图形的方法 更新图片时用到 repaint , update , 程序不应该主动调用paint和update, 这两个方法都应该是由AWT系统负责 ...

  5. Java Graphics2D类的绘图方法

    Graphics2D继承自Graphics,它扩展了Graphics的绘图功能,拥有更强大的二维图形处理能力,提供对几何形状.坐标转换.颜色管理以及文字布局等更精确的控制. Graphics2D定义了 ...

  6. java Graphics2D绘制文字 本地正常服务器乱码问题

    先贴关键代码: 用Graphics2D画文字到图片,再生成图片文件,在本地运行正常,一部署到服务器就不正常,变成了正方框如下图 解决问题思路: 1.部署服务器的编码问题. 2.代码问题. 以上两点一直 ...

  7. Matlab中使用Java api画图图形并保存为jpeg格式

    直接上代码: close all; import java.io.*; import java.awt.*; import java.awt.image.BufferedImage; import j ...

  8. learning java AWT 画图

    import javax.swing.*; import java.awt.*; import java.util.Random; public class SimpleDraw { private ...

  9. java Graphics2D drawString()内容换行问题

    //字符串总宽度 private int getStringLength(Graphics g,String str) { char[] strcha=str.toCharArray(); int s ...

随机推荐

  1. Vases and Flowers

    hdu4614:http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意:给你n个花瓶,然后有两种操作:1从a开始选择b个花瓶,放进花,输出左端点,右端点 2 ...

  2. loadrunner 怎么能得到返回的http状态?

    loadrunner如何保存从服务器传回来的http头的信息? Action() { int HttpRetCode; web_url("www.hao123.com", &quo ...

  3. 【NOIP 2013 DAY2 T3】 华容道(spfa)

    题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  4. CoreData的简单使用(二)数据的增删改查,轻量级的版本迁移

    上一篇中我们已经使用CoreData创建了一个SQLite数据库 CoreData的简单使用(一)数据库的创建 现在对数据库进行数据的CRUD(增删改查) 1.Data Model 的设置 创建一个D ...

  5. QT中的字符串处理函数

    Fn 1 : arg 这个函数的具体声明不写了,它有20个重载,典型的示例代码如下: 1: #include <QtCore/QCoreApplication> 2: #include & ...

  6. JAVA HASHMAP 如何用

    HASHMAP最好与实例联系起来..它主要存的是键与值的关系. 举个例子如你现在有一个学生类import java.util.HashMap;public class Student {String ...

  7. 解决“重新安装vmware-tools”灰色而无法安装的问题

    前几天重装系统,之后虚拟机需要重新装,装好后要使用vmware-tools实现文件共享,却发现虚拟机那里显示为灰色的,无法安装vmware-tools,在共享文件夹那里设置好共享的文件夹猴也没有用,/ ...

  8. html5 spring demo

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  9. Wpf配置文件属性

    public MainWindow() { InitializeComponent(); this.WindowState = Properties.Settings.Default.WindowSt ...

  10. 【转】java中静态代码块的用法 static用法详解

    原文网址:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)java 静态代码块 静态方法区别一般情况下,如 ...