package test1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Ellipse2D.Double;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
public class taiji extends JPanel{
public taiji(){
super();
}
@Override
protected void paintComponent(Graphics g){
Graphics2D g2=(Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//左右两个圆
Shape lefthalfCircle=new Ellipse2D.Double(10, 10, 300, 300);
Shape righthalfCircle=new Ellipse2D.Double(10, 10, 300, 300);
//内部两个小圆
Shape innerCircle1=new Ellipse2D.Double(85, 10, 150, 150);
Shape innerCircle2=new Ellipse2D.Double(85,160 , 150, 150);
//半边
Shape rectangel1=new Rectangle2D.Double(160, 10, 150, 300);
Shape rectangel2=new Rectangle2D.Double(10, 10, 150, 300);
//area 用于shape的组合
Area left=new Area(lefthalfCircle);
Area right=new Area(righthalfCircle);
Area area11=new Area(rectangel1);
Area area22=new Area(rectangel2);
left.subtract(area11);
right.subtract(area22);
Area inner1=new Area(innerCircle1);
Area inner2=new Area(innerCircle2);
left.add(inner1);
right.add(inner2);
//important 想想就好
right.subtract(inner1);
Shape minorWhiteCircle=new Ellipse2D.Double(150, 70, 20, 20);
Shape innerBlackCircle=new Ellipse2D.Double(150, 230, 20, 20);
g2.setPaint(Color.WHITE);
g2.fill(left);
g2.setPaint(Color.BLACK);
g2.fill(right);
g2.fill(minorWhiteCircle);
g2.setPaint(Color.WHITE);
g2.fill(innerBlackCircle);
}
}
taiji
最新推荐文章于 2023-03-30 19:05:34 发布