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

CGプログラミング論
平成27年4月29日
森田 彦
【基礎課題2-1 】の解答
①
x=10;
A
B
C
x=30;
②
for (int i=1; i<=3; i++)
A
③
B
h=20;
行が3つに
C
高さが半分に
C
A
B
【基礎課題2-2 】の解答
if( ((i%2)==0 && (j%2)==0) ||
((i%2)==1
① (j%2)==1)
((i%2)==1 &&
&&
(j%2)==1) ) {
g.fillRect(x,y,w,h);
}
(行、列共に奇数)
【応用課題2-A 】の解答
if(
}
i==j
①
g.fillRect(x,y,w,h);
) {
【応用課題2-B 】の解答
void DrawGraphics(Graphics g) {
int Gyou=Integer.parseInt(jTextFieldGyou.getText());
int Retsu=Integer.parseInt(jTextFieldRetsu.getText());
int width=myPanel1.getWidth(); //パネル幅の取得
int height=myPanel1.getHeight(); //パネルの高さの取得
int x,y,w,h;
x=0; //描画するマスの左上隅のx座標(右方向の位置)
y=0; //描画するマスの左上隅のy座標(下方向の位置)
列数
width/Retsu;
①
w= width/Retsu;
//マスの横幅
h=
・・・
height/Gyou;
height/Gyou;
②
//マスの高さ
行数
本日の学習内容 ピラミッド図形の描画
作成するプログラム
 提出課題
【基礎課題3-1】~【基礎課題3-4】および【応
用課題3-A】の5題です。

演習課題の受け取りについて

原則として講義時間内に提出してもらいます。提出
が遅れた場合は以下のように減点とします。
基礎課題 応用課題
講義時間内
終了後1時間以内
100%
90%
100%
100%
1時間超~当日中
70%
100%
翌日の17:00まで
0%
100%
それ以上の遅れ
0%
0%
課題内容によっては、上の基準を緩和します。その際は講義
時にアナウンスします。
基礎課題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
となるためには・・・
演習課題の受け取りについて

原則として講義時間内に提出してもらいます。提出
が遅れた場合は以下のように減点とします。
基礎課題 応用課題
講義時間内
終了後1時間以内
100%
90%
100%
100%
1時間超~当日中
70%
100%
翌日の17:00まで
0%
100%
それ以上の遅れ
0%
0%
課題内容によっては、上の基準を緩和します。その際は講義
時にアナウンスします。