- 9
- 0
- 约1.81万字
- 约 100页
- 2017-05-29 发布于四川
- 举报
Rectangle2D.Double rec1=new Rectangle2D.Double(20,80,60,30); g2.fill(rec1); g2.drawString(Rectangle2D,20,120); // fill RoundRectangle2D.Double g2.setStroke(new BasicStroke(4)); //设置线宽 RoundRectangle2D.Double rorec=new RoundRectangle2D.Double(100,80,60,30,10,10); g2.fill(rorec); g2.drawString(RoundRectangle2D,100,120); } } 该程序的运行结果如图9.8所示。 图9.8 程序c9_7的运行结果 9.4.3 绘制椭圆、圆及弧 在Java2D API中,绘制一个椭圆就是使用椭圆类的构造方法来创建一个椭圆对象。椭圆类的构造方法是: Ellipse2D.Float(float x, float y, float w, float h) 这个构造方法中有4个参数,分别是椭圆外切矩形的左上角顶点坐标x,y;椭圆的宽度w和高度h(当然也是外切矩形的宽度和高度)。这些参数的数据类型可以是float型或double型。 显然,当椭圆的宽度w和高度h相等时,就是一个圆。因此,使用绘制椭圆的构造方法即可绘制圆。 画弧可看成是画部分椭圆。绘制一个弧的构造方法如下: Arc2D.Float(float x, float y, float w, float h, float start,float extent, int type) 这个构造方法中有7个参数,其中:前4个参数x、y、w、h的含义与椭圆中参数的意义相同,另外3个参数中的start为起始角度,extent为弧角度,type为弧的连接类型。弧角度extent用度数来衡量,表明一段弧在两个角度之间绘制,即表示从起始角度转多少角度画弧,extent为正,表示逆时针画弧,extent为负,表示顺时针画弧。弧的连接类型有OPEN、CHORD、PIE三种,OPEN表示弧两端点无连接(弧),CHORD表示弧的两端点用直线连接(弦),PIE表示弧两端连接成扇形。 表9.8 创建椭圆及弧类对象的构造方法 下面我们通过一些实例来说明怎样来绘制这些图形。 ?【示例程序c9_8.java】 绘制椭圆、圆及扇形。 import java.applet.*; import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class c9_8 extends Japplet { public void paint(Graphics g) { Graphics2D g2=(Graphics2D)g; g2.setPaint(Color.red); //设置前景颜色 g2.setStroke(new BasicStroke(2)); //设置线宽 //绘制弧 g2.draw(new Arc2D.Double(15,15,80,80,60,125,Arc2D.OPEN)); g2.draw(new Arc2D.Double(100,15,80,80,60,125,Arc2D.CHORD)); g2.draw(new Arc2D.Double(200,15,80,80,60,125,Arc2D.PIE)); g2.fill(new Arc2D.Double(280,15,80,80,60,125,Arc2D.OPEN)); g2.drawString(Arc2D,100,90); //绘制圆及椭圆 g2.drawString(Ellipse2D,100,220); g2.setPaint(Color.lightGray); { //为保证方法可以访问绘图环境的全部功能,把g强制转换成Graphics2D Graphics2D g2=(Graphics2D)g; g2.drawString( s, 50, 25); g2.drawChars( c, 0, 2, 50, 50); //Graphics2D是Graphics的子类,可以继承Graphics类的方法 g2.drawBytes( b, 2, 5, 50, 75)
原创力文档

文档评论(0)