MyShape クラス

使用例

MyShape クラスを使ってみます。

直線

では試してみます。 左上から右下に向かって線が引かれます。

import java.awt.Graphics2D;

import MyShape;
import Tpl02;

public class TestMyShape02_1 extends Tpl02 {

	public void draw(Graphics2D g2) {
		MyShape sp = new MyShape();

		// 直線
		g2.draw(sp.Line(0, 0, getWidth(), getHeight()));
	}
}

実行例

円を描いてみます。 中心(50,50)、半径50の円です。

import java.awt.Graphics2D;

import MyShape;
import Tpl02;

public class TestMyShape02_2 extends Tpl02 {

	public void draw(Graphics2D g2) {
		MyShape sp = new MyShape();

		// 円
		g2.draw(sp.Circle(50, 50, 50));
	}
}

実行例

実際に使ってみます。

import java.awt.Graphics2D;

import MyShape;
import Tpl02;

public class TestMyShape02_3 extends Tpl02 {

	public void draw(Graphics2D g2) {
		MyShape sp = new MyShape();

		// 点
		g2.fill(sp.Point(50, 50));
	}
}

実行例

1+2+3+4+5

1 + 2 + 3 + 4 + 5 = 10 です。 これを表現するプログラムです。

TestMyShape02_4.java

ソースです。

import java.awt.Graphics2D;

import MyPoint;
import MyShape;
import Tpl02;

public class TestMyShape02_4 extends Tpl02 {

	public void draw(Graphics2D g2) {
		MyShape sp = new MyShape();
		double x, y;
		double x0, y0;
		double r = 10; // 半径

		x0 = getWidth() / 2;
		y0 = r;
		for (int i = 0; i < 8; i++) {
			for (int j = 0; j <= i; j++) {
				x = x0 - (i - 2 * j) * r;
				y = y0 + 2 * i * r;
				g2.draw(sp.Circle(x, y, r));
			}
		}
	}
}

実行例

丸が正三角形に並んでいます。 一番上から、1個、2個、3個・・・と並んでいます。 1 + 2 + 3 + 4 + 5 = 10 と同じ内容になっているのがわかります。 また、この図が10進法になった理由の1つだそうです。


[前へ] [戻る] [次へ]