java 作图

  Java的java.awt包中的Graphics类有许多处理图形的方法:

  一、绘制文本

  g.drawString(String s,int x,int y); //绘制字符串(Grahpics g)

  g.drawChars(char data[],int offset,int length,int x,int y); //绘制data数组中的部分字符

  二、绘制基本图形

  drawLine(int x1,int y1,int x2,int y2); //绘制直线

  drawRect(int x,int y,int w,int h);     //绘制矩形

  drawRoundRect(int x,int y,int w,int h,int arcW,int arcH); //绘制圆角矩形

  fillRoundRect(int x,int y,int w,int h,int arcW,int arcH); //绘制填充圆角矩形

  drawOval(int x,int y,int w,int h);     //绘制椭圆

  fillOval(int x,int y,int w,int h);     //绘制填充椭圆

  drawArc(int x,int y,int w,int h,int starAngle,int arcAngle); //绘制圆弧

  fillArc(int x,int y,int w,int h,int starAngle,int arcAngle); //绘制填充圆弧

  drawPolygon(int xPoints[],int yPoints[],int nPoints); //绘制多边形

  fillPolygon(int xPoints[],int yPoints[],int nPoints); //绘制填充多边形

  三、建立字体

  setFont(Font f);

  四、清除

  clearRect(int x,int y,int w,int h); //用背景色填充指定矩形

  五、Java 2D图形

  Graphics2D是Graphics的子类,它将直线、圆等作为一个对象来绘制。

  1.画直线

  Graphics2D g_2d=(Graphics g);

   Line2D line=new Line2D.Double(2,2,300,300);

   g_2d.draw(line);

   2.绘制矩形

  Rectangle2D rect=new Rectangle2D.Double(50,50,300,50);

  3.绘制圆角矩形

  RoundRectangle2D r_rect=new RoundRectangle2D.double(50,50,300,50,8,5);

  4.绘制椭圆

  Ellipse2D e=new Ellipse2D.Double(50,30,300,50);

   5.绘制圆弧

  Arc2D e=new Arc2D.Double(50,30,300,50,0,100,Arc.PIE/Arc.OPEN/Arc.CHORD);

   6.绘制二次曲线

  y(x)=ax^2+bx+c表示。

   QuadCurve2D curve=new QuadCurve2D.Double(50,30,10,10,50,100);

   7.绘制三次曲线

  y(x)=ax^3+bx^2+cx+d

   CubicCurve2D curve=new CubicCurve2D.Double(50,30,10,10,100,100,50,100);

   8.控制图形线条的粗细

  BasicStroke (float width,int cap,int join); //width决定线条的粗细,默认是1;cap决定线条两端的形状,取值 为:BasicStroke.CAP_BUTT,BasicStroke.CAP_ROUND,BasicStroke.CAP_SQUARE;join 决定线条中的角应如何处理,其取值 为:BasicStroke.JOIN_BEVEL,BasicStroke_JOIN_MITER,BasicStroke.JOIN_ROUND。

  Graphics2D对象调用方法setStroke(BasicStroke a)设置线条形状。

  9.填充图形

  使用fill方法。

  渐变颜色填充:

  GradientPaint(float x1,float y1,Color color1,float x2,float y2,Color color2,boolean cyclic);

  10.旋转图形

  1) 使用AffineTransform类创建对象:

   AffineTransform trans=new Affinetransform();

     translate(double a,double b):将图形在x轴方向移动a个像素,y轴方向移动b个像素。

   scale(double a,double b):将图形在x轴方向绽放a倍,y轴方向绽放b倍。

   rotate(double number,double x,double y):将图形沿顺时针或逆时针以(x,y)为轴点旋转number个弧度。

  2) 进行需要的变换,如将矩形绕点(100,100)顺时针旋转60度:

   trans.rotate(60.0*3.1415927/180,100,100);

   3) 把Graphics对象,比如g_2d设置为具有trans这种功能的画笔

   g_2d.setTransform(trans);

  六、图形的布尔运算

  public void add(Area r); //与参数r布尔“或”

  public void intersect(Area r) //与参数r布尔“与”

  public void exclusiveOr(Area r); //与参数r布尔“异或”

  public void subtract(Area r);  //与参数r布尔“差”

   七、XOR绘图模式

  setXORMode(Color color);


你可能感兴趣的:(java,graphics)