14.1绘制基本图形——绘制太极图和四边形

Arc2D arc=new Arc2D.Double(0,0,100,100,-90,-180,Arc2D.PIE);
arc.setArc(0,0,100,100,-90,180,Arc2D.PIE); 
Ellipse2D ellipse=new Ellipse2D.Double(40,15,20,20);
ellipse.setFrame(40,65,30,30);
Graphics2D g_2d=(Graphics2D)g;

g_2d.setColor(Color.magenta);

g_2d.fill(ellipse);
g_2d.fill(arc); 
g.setColor(Color.GREEN);

Polygon polygon=new Polygon();

polygon.addPoint(100,10);
polygon.addPoint(110,90);
polygon.addPoint(210,90);
polygon.addPoint(200,10);

g_2d.draw(polygon);
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
class MyCanvas extends JPanel{
    public void paint(Graphics g){
        Graphics2D g_2d=(Graphics2D)g;
        Arc2D arc=new Arc2D.Double(0,0,100,100,-90,-180,Arc2D.PIE);//1
        g_2d.setColor(Color.black);
        g_2d.fill(arc);
        g_2d.setColor(Color.white);//2
        arc.setArc(0,0,100,100,-90,180,Arc2D.PIE);
        g_2d.fill(arc);
        arc.setArc(25,0,50,50,-90,-180,Arc2D.PIE);//3
        g_2d.fill(arc);
        g_2d.setColor(Color.black);//4
        arc.setArc(25,50,50,50,90,-180,Arc2D.PIE);
        g_2d.fill(arc);
        Ellipse2D ellipse=new Ellipse2D.Double(40,15,20,20);//5
        g_2d.fill(ellipse);
        g_2d.setColor(Color.magenta);//6
        ellipse.setFrame(40,65,30,30);
        g_2d.fill(ellipse);
        g.setColor(Color.GREEN);//7
        Polygon polygon=new Polygon();
        polygon.addPoint(100,10);
        polygon.addPoint(110,90);
        polygon.addPoint(210,90);
        polygon.addPoint(200,10);
        g_2d.draw(polygon);
    }
}
public class Main{
    public static void main(String argas[]){
        JFrame win = new JFrame();
        win.setSize(400,200);
        win.add(new MyCanvas());
        win.setVisible(true);
    }
}

 

 

这里,g   和   g_2d,都可用 ,but why????

import 

 

 

 

java.awt.geom

abstract voidsetArc(double x, double y, double w, double h, double angSt,                                            double angExt, int closure)

将此弧的位置、大小、角度范围和闭合类型设置为指定的双精度值。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值