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 = 10 です。 これを表現するプログラムです。
ソースです。
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つだそうです。