太極圖(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();
	}
	
}

在這裏插入圖片描述

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