太极图(JAVA实现)

在这里插入图片描述

今天闲的没事干,就自己手绘了一张丑不拉几的太极图,手残没办法,还是让pc来帮我画一张标准一点的吧

在这里插入图片描述
这里我选取JFrame作为容器,利用Graphic画笔进行作画。
这里切入要用的几个函数的API:

> 1. drawLine:  public abstract void drawLine(int x1,
>                               int y1,
>                               int x2,
>                               int y2) 
>  画一条线,使用当前颜色,这个图形中的座标系统中的点 (x1, y1)(x2, y2)之间。 参数 x1 -第一点的nullx座标。 y1 -第一点的nully座标。 x2 -第二点的nullx座标。 y2 -第二点的nully座标。
> 
> 2. setColor
>  public abstract void setColor(Color c) 
> 将此图形上下文的当前颜色设置为指定的颜色。所有使用此图形上下文的后续图形操作都使用此指定的颜色。 参数 c -新的渲染色彩。 另请参见:
> Color, getColor()
> 
> 
> 3.drawOval public abstract void drawOval(int x,
>                               int y,
>                               int width,
>                               int height) 
> 绘制椭圆的轮廓。其结果是一个圆或椭圆,适合的 x, y, width指定的矩形内,和 height参数。 椭圆形的占地面积是width + 1像素宽,height + 1像素高。
> 
> 参数 x -椭圆的左上角要画nullx座标。 y -椭圆的左上角要画nully座标。 width -椭圆来绘制宽度。 height
> -椭圆来绘制的高度。 另请参见: fillOval(int, int, int, int)
> 
> 4. public abstract void fillOval(int x,
>                               int y,
>                               int width,
>                               int height) 
> 填充一个椭圆形,由指定的矩形与当前颜色。 参数 x -椭圆的左上角要填充的nullx座标。 y -椭圆的左上角要填充的nully座标。 width -椭圆要填充的宽度。 height -椭圆形充满高度。 另请参见: drawOval(int, int, int, int)
> 
> 5. drawArc public abstract void drawArc(int x,
>                              int y,
>                              int width,
>                              int height,
>                              int startAngle,
>                              int arcAngle) 绘制一个圆形或椭圆弧的轮廓,覆盖指定的矩形。 产生的电弧从startAngle和延伸arcAngle度,使用当前颜色。角度解释,0 度在3
> 点位置。正值表示逆时针旋转,而负值表示顺时针旋转。
> 
> 电弧的中心是矩形原点为中心(nullx, nully),其大小是由指定的width和height参数。
> 
> 产生的电弧占地面积width + 1像素像素高宽height + 1> 
> 的角度被指定的相对的约束矩形的非平方范围,例如,45度总是落在直线上的中心的椭圆的矩形的右上角。其结果是,如果边界矩形明显长在一个轴比其他的角度,开始和结束的圆弧段将被扭曲的更远沿长轴的界限。
> 
> 参数 x -电弧的左上角要画nullx座标。 y -电弧的左上角要画nully座标。 width -电弧被吸引的宽度。 height
> -电弧被吸引的高度。 startAngle开始-角。 arcAngle -弧角的程度,相对于起始角。 另请参见: fillArc(int, int, int, int, int, int) 
> 6. fillArc 
> public abstract void fillArc(int x,
>                              int y,
>                              int width,
>                              int height,
>                              int startAngle,
>                              int arcAngle)
> 填充一个圆形或椭圆形的圆弧覆盖指定的矩形。 产生的电弧从startAngle和延伸arcAngle度。角度解释,0 度在3 点位置。正值表示逆时针旋转,而负值表示顺时针旋转。
> 
> 电弧的中心是矩形原点为中心(nullx, nully),其大小是由指定的width和height参数。
> 
> 产生的电弧占地面积width + 1像素像素高宽height + 1> 
> 的角度被指定的相对的约束矩形的非平方范围,例如,45度总是落在直线上的中心的椭圆的矩形的右上角。其结果是,如果边界矩形明显长在一个轴比其他的角度,开始和结束的圆弧段将被扭曲的更远沿长轴的界限。
> 
> 参数 x -电弧的左上角要填充的nullx座标。 y -电弧的左上角要填充的nully座标。 width -弧要填充的宽度。 height
> -电弧被填充的高度。 startAngle开始-角。 arcAngle -弧角的程度,相对于起始角。 另请参见: drawArc(int, int, int, int, int, int)
package Kim_1;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class TaiJis extends JFrame{
	public TaiJis() {
		super("太极图");
		this.setSize(800,800);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public void paint(Graphics g) {
		super.paint(g);
		g.setColor(Color.BLACK);
		g.fillArc(250, 200, 300, 300, 90, -180);
		g.drawArc(250, 200, 300, 300, 90, 180);
		g.setColor(Color.WHITE);
		g.fillArc(250, 200, 300, 300, 90, 180);	
		g.fillArc(325, 200, 150, 150,90, -180);
		g.setColor(Color.BLACK);
		g.fillArc(325, 350, 150, 150,90, 180);
		g.fillOval(375, 260, 37, 37);
		g.setColor(Color.WHITE);
		g.fillOval(375, 405, 37, 37);
	}
	public static void main(String[] args) {
		new TaiJis();
	}
	
}

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章