基礎コンピュータグラフィックス論

CGプログラミング論
平成27年5月13日
森田 彦
基礎課題3-1
void DrawGraphics(Graphics g) {
int x,y,w,h;
w=15; //マスの横幅
h=15; //マスの高さ
g.setColor(Color.red); //描画色を赤色に指定
for (int i=1; i<=10; i++) { //行方向の繰り返し
10+(10-i)*w
①
x= C10+(10-i)*w
; //次行のマスの描画開始位置
y=10+(i-1)*h; //描画位置を下にhだけずらす
for (int j=1; j<=2*i-1; j++) { //列方向の繰り返し
g.drawRect(x,y,w,h); //マスを描く
x=x+w; //描画位置を右にwだけずらす
}
}
}
i=1のとき x=10+9*w
i=2のとき x=10+8*w
i=3のとき x=10+7*w
となるためには・・・
基礎課題3-2
void DrawGraphics(Graphics g) {
int x,y,w,h;
w=15; //マスの横幅
h=15; //マスの高さ
for (int i=1; i<=10; i++) { //行方向の繰り返し
x=10+(10-i)*w;
y=10+(i-1)*h;
for (int j=1; j<=2*i-1; j++) { //列方向の繰り返し
j==1 ||
|| ①
j==2*i-1
if(
j==1
j==2*i-1
) {
g.setColor(Color.red); //描画色を赤色に指定
g.fillRect(x,y,w,h); //マス内を塗りつぶす
g.setColor(Color.black); //マスの外枠の描画色を黒色に指定
g.drawRect(x,y,w,h); //マス(の外枠)を描く
}
x=x+w;
}
}
}
//描画位置を右にwだけずらす
①
基礎課題3-3
void DrawGraphics(Graphics g) {
int x,y,w,h;
w=15; //マスの横幅
h=15; //マスの高さ
for (int i=10; i>=1
; i--) {
①
A 10+(10-i)*w
x= 10+(10-i)*w
;
//行方向の繰り返し
y=10+(10-i)*h;
for (int j=1; j<=2*i-1; j++) { //列方向の繰り返し
g.setColor(Color.red); //描画色を赤色に指定
g.fillRect(x,y,w,h); //マス内を塗りつぶす
g.setColor(Color.black); //マスの外枠の描画色を黒色に指定
g.drawRect(x,y,w,h); //マス(の外枠)を描く
x=x+w; //描画位置を右にwだけずらす
}
}
}
i=10のとき x=10+0*w
i= 9のとき x=10+1*w
i= 8のとき x=10+2*w
となるためには・・・
①
基礎課題3-4
void DrawGraphics(Graphics g) {
int x,y,w,h;
w=15; //マスの横幅
h=15; //マスの高さ
for (int i=1; i<=10
; i++) { //行方向の繰り返し
x=10+(i-1)*w;
y=10+(i-1)*h;
①
C 2*(11-i)-1
for (int j=1;j<= 2*(11-i)-1
; j++) { //列方向の繰り返し
g.setColor(Color.red); //描画色を赤色に指定
g.fillRect(x,y,w,h); //マス内を塗りつぶす
g.setColor(Color.black); //マスの外枠の描画色を黒色に指定
g.drawRect(x,y,w,h); //マス(の外枠)を描く
x=x+w; //描画位置を右にwだけずらす
}
}
}
マスの個数
i=1のとき
i=2のとき
i=3のとき
19
17
15
となるためには・・・
応用課題3-A(その1)
for (int i=1; i<=19; i++) {
if(i<=9) {
x= 10+(10-i)*w
;
10+(10-i)*w
①
}
else {
x= 10+(i-10)*w
10+(i-10)*w
②
;
}
y=10+(i-1)*h;
・・・
A
応用課題3-A(その2)
if(i>=11) {
jMax=
2*(20-i)-1
③
}
else {
jMax= 2*i-1;
}
B
;
応用課題3-A(その3)
for (int j=1; j<=jMax; j++) { //列方向の繰り返し
j==1 ||
||④
j==jMax
if( j==1
j==jMax
) {
g.setColor(Color.red);
g.fillRect(x,y,w,h);
g.setColor(Color.black);
g.drawRect(x,y,w,h);
}
x=x+w;
}
・・・
本日の学習内容 グラフの描画

提出課題
【基礎課題4-1】~【基礎課題4-4】および【応
用課題4-A】、【応用課題4-B】の6題です。
演習課題の受け取りについて

原則として講義時間内に提出してもらいます。提出
が遅れた場合は以下のように減点とします。
基礎課題 応用課題
講義時間内
終了後1時間以内
100%
90%
100%
100%
1時間超~当日中
70%
100%
翌日の17:00まで
0%
100%
それ以上の遅れ
0%
0%
課題内容によっては、上の基準を緩和します。その際は講義
時にアナウンスします。