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