Java图形化绘制

来源:互联网 发布:mac网络恢复 分区 编辑:程序博客网 时间:2024/05/22 04:45

一、坐标系

在组件上绘图时的坐标系为:水平方向为x轴,垂直方向为y轴,左上角起始点坐标是(0,0),区域内任何一点的坐标用(x,y)表示,

二、绘图类Graphics

绘图类Graphics是抽象类,无须通过new实例化即可使用。

1、绘直线

drawLine(int x1,int y1,int x2,int x2)

//画一条从坐标(x1,y1)到(x2,y2)的直线

例如:

public void paint(Graphics g){g.drawLine(0,0,80,80);}
2、画矩形

(1)drawRect(int x1,int y1,int x2,int x2)

//画一个左上角坐标(x1,y1)、宽为x2、高为y2的矩形。

(2)fillRect(int x1,int y1,int x2,int x2)

//画一个左上角坐标(x1,y1)、宽为x2、高为y2的矩形,并且矩形内以前景色填充

(3)drawRoundRect(int x1,int y1,int x2,int x2,int x3,int y3)
//画一个左上角坐标(x1,y1)、宽为x2、高为y2的圆角矩形,x3,y3代表圆角的宽度和高度。

注意:在绘制矩形的方法中仅表示出了矩形左上角顶点的坐标,其他参数表明可矩形的长和高的情况。

class MyFrame extends Frame{public void paint(Graphics g){g.drawLine(30,40,80,90);g.drawRect(100,40,50,50);g.fillRect(170,40,50,50);}public MyFrame(){super("直线和矩形的绘制");setSize(260,120);setVisible(true);}public static void main(String args[]){new MyFrame();}}
3、画椭圆

(1)drawOval(int x1,int y1,int x2,int yy2)

//画一个左上角坐标(x1,y1)、宽为x2、高为y2的矩形中的内切圆,当宽与高的值不相同时画出的是椭圆,相同时画出的是正圆。

(2)fillOval(int x1,int y1,int x2,int y2)

//画一个左上角坐标(x1,y1)、宽为x2、高为y2的矩形中的源,并且圆内以前景色填充。

说明:椭圆的绘制是以矩形为基础的,方法中参数的意义与绘制矩形方法中参数的意义相同。

4、画弧

(1)drawArc(int x1,int y1,int x2,int y2,int x3,int y3)

//该方法画出的弧是椭圆的一部分,前4个参数含义与画椭圆相同,x3确定了圆弧的起始角(以度为单位),y3确定可圆弧的大小,取正(负)值为沿逆(顺)时针方向画出圆弧。

(2)fillArc(int x1,int y1,int x2,int y2,int x3,int y3)

//该方法画出的是以前景色填充的弧,即一个扇形。

例如:

class MyFrame extends Frame{public void paint(Graphics g){g.drawOval(30,40,40,70);g.fillOval(120,40,50,50);g.drawArc(170,40,5050,0,60);g.fillArc(240,40,50,50,0,-60);}public MyFrame(){super("椭圆和弧的绘制");setSize(300,120);setVisible(true);}public static void main(String args[]){new MyFrame();}
5、画多边形和折线

(1)drawPolyline(int x[ ],int y[ ] ,int n)

//绘制由x和y坐标数组定义的一系列连接线,每对(x,y)坐标定义可一个点,如果第一个点和最后一个点不同,则图形不是闭合的,n代表点的总数。

(2)drawPolygon(int x[ ],int y[ ] ,int n)

//绘制一个由x和y坐标数组定义的闭合多边形。每对(x,y)坐标定义了一个点,如果最后一个点与第一个点不同,则图形会在这两点间绘制一条线段来自动闭合,n表示边的总数。

0 0
原创粉丝点击