CGプログラミング論 平成28年5月18日 森田 彦.

Slides:



Advertisements
Similar presentations
ネットワークプログ ラミング論 平成27年 11 月 1 6日 森田 彦. 【基礎課題 6-1 】の解答 ① サーブレットを記述して保管するとコン パイルが自動的に行われる。 ② サーブレットの記述後、開発者がコンパ イル命令を実行しなければならない。 ③ プロジェクト名が Web アプリケーション.
Advertisements

ファーストイヤー・セミナーⅡ 第13回 2次元グラフィックス(1). 2次元グラフィックス Ultra-C では、これまで利用してきた「標準入出力」 以外に「グラフィックス画面」があり、図形などを 表示できる C 言語のグラフィックスには細かな規定がなく、こ れから学ぶ内容が他の環境、システムでは利用でき.
初年次セミナー 第13回 2次元グラフィックス(1).
プログラミング 平成24年1月11日 森田 彦.
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
プログラミング演習3 李 亜民クラス 第2回 ラスタライズ.
プログラミング 平成25年12月3日 森田 彦.
プログラミング 平成25年11月19日 森田 彦.
数個、数十個のデータ点から その特徴をつかむ
JAVA GUIプログラミング 第6回 TextFieldとLabel.
解析的には解が得られない 方程式を数値的に求める。 例:3次方程式
ネットワークプログラミング論 平成27年10月12日 森田 彦.
プログラミング 平成24年10月23日 森田 彦.
CGプログラミング論 平成28年6月1日 森田 彦.
第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)
情報数理Ⅱ 平成27年9月30日 森田 彦.
CGプログラミング論 平成28年4月27日 森田 彦.
データ構造とアルゴリズム論 第2章 配列(構造)を使った処理
プログラミング 平成25年12月10日 森田 彦.
ネットワークプログラミング論 平成28年10月17日 森田 彦.
ネットワークプログラミング論 平成28年12月12日 森田 彦.
プログラミング 平成24年10月30日 森田 彦.
プログラミング 平成23年10月5日 森田 彦.
データ構造とアルゴリズム論 第2回目テスト 平成15年12月9日 森田 彦.
CGと形状モデリング 授業資料 長井 超慧(東京大学)
ネットワークプログラミング論 平成28年11月21日 森田 彦.
C 言語について 補足資料 資料および授業の情報は :
基礎プログラミング演習 第10回.
二分木説明 点Cの座標を求めよ。.
プログラミング 平成25年11月5日 森田 彦.
データ構造と アルゴリズム論 平成29年9月27日 森田 彦.
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
CGプログラミング論 平成28年5月25日 森田 彦.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
ネットワークプログラミング論 平成28年12月26日 森田 彦.
CGプログラミング論 平成28年6月8日 森田 彦.
CGプログラミング論 平成28年4月20日 森田 彦.
プログラミング 平成23年12月21日 森田 彦.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
第9回 卒業研究1
ネットワークプログラミング論 平成28年11月7日 森田 彦.
ネットワークプログラミング論 平成28年10月31日 森田 彦.
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力2
ソフトウェア制作論 平成30年10月3日.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
プログラミングⅠ 平成30年10月29日 森田 彦.
ソフトウェア制作論 平成30年10月24日.
ネットワークプログラミング論 平成28年12月19日 森田 彦.
データを渡すことで自動的にグラフを描画してくれるコンポーネント
データ構造とアルゴリズム論 第2回目テスト 平成16年12月14日 森田 彦.
プログラミングⅠ 平成30年10月15日 森田 彦.
ソフトウェア制作論 平成30年10月10日.
プログラミングⅠ 平成30年10月22日 森田 彦.
プログラミングⅠ 平成31年1月7日 森田 彦.
プログラミング 平成22年12月15日 森田 彦.
逆運動学:手首自由度 運動学:速度、ャコビアン 2008.5.27
アルゴリズムとプログラミング (Algorithms and Programming)
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
第6回:得点を表示しよう! (文字の表示、乱数)
プログラミングⅠ 平成30年12月10日 森田 彦.
CGプログラミング論 平成28年7月6日 森田 彦.
情報数理Ⅱ 平成28年9月21日 森田 彦.
プログラミング 平成28年11月15日 森田 彦.
データ構造とアルゴリズム論 第9章 連結リスト
CGプログラミング論 平成28年6月29日 森田 彦.
ソフトウェア制作論 平成30年10月17日.
プログラミング 平成28年10月25日 森田 彦.
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
CGプログラミング論 平成28年5月11日 森田 彦.
プログラミング演習I 補講用課題
Presentation transcript:

CGプログラミング論 平成28年5月18日 森田 彦

基礎課題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 となるためには・・・

応用課題3-A(その1) for (int i=1; i<=19; i++) { if(i<=9) { x= 10+(10-i)*w ; } else { x= 10+(i-10)*w ; y=10+(i-1)*h; ・・・ 10+(10-i)*w ① 10+(i-10)*w ② 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++) { //列方向の繰り返し 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; ・・・ j==1 || j==jMax ④

本日の学習内容 グラフの描画 提出課題  【基礎課題4-1】~【基礎課題4-4】および【応用課題4-A】、【応用課題4-B】の6題です。

演習課題の受け取りについて 原則として講義時間内に提出してもらいます。提出が遅れた場合は以下のように減点とします。 基礎課題 応用課題 100% 終了後1時間以内 90% 1時間超~当日中 70% 翌日の17:00まで 0% それ以上の遅れ 課題内容によっては、上の基準を緩和します。その際は講義時にアナウンスします。

基礎課題4-1 y0-100 y0-150 y0=200; //グラフの原点のy座標 ① ② x軸 y軸 100 25 (0,0) x0 y0 (x0,y0) 線分1 線分2 線分3 <コンピュータ上の座標> (x0+100,y0-50) グラフのx座標 グラフのy座標 void DrawGraphics(Graphics g) { int x0,y0,lx,ly; lx=200; //x軸の長さ ly=180; //y軸の長さ x0=10; //グラフの原点のx座標 y0=200; //グラフの原点のy座標 g.setColor(Color.black); //軸の描画色を黒色に指定 g.drawLine(x0,y0,x0+lx,y0); //x軸の描画 g.drawLine(x0,y0,x0,y0-ly); //y軸の描画 g.setColor(Color.blue); //グラフの描画色を青色に指定 g.drawLine(x0,y0,x0+100, y0-50 ) ; //線分1の描画 g.drawLine(x0+100,y0-50,x0+150, y0-100   ); //線分2の描画 g.drawLine(x0+150,y0-100,x0+175, y0-150   ); //線分3の描画 } y0-100 ① y0-150 ②

基礎課題4-2 y1+50 void DrawGraphics(Graphics g) { int x0,y0,lx,ly,x1,y1,x2,y2; lx=200; //x軸の長さ ・・・ g.setColor(Color.blue); //グラフの描画色を青色に指定 //グラフの描画 int wx=100; //x軸方向の移動幅の設定 x1=0; //最初の始点のx座標の設定 y1=0; //最初の始点のy座標の設定 for(int i=1;i<=3;i++) { x2=x1+wx; //終点のx座標の設定 y2= y1+50  ; //終点のy座標の設定 g.drawLine(x0+x1,y0-y1,x0+x2,y0-y2); x1=x2; //次の始点のx座標の設定 y1=y2; //次の始点のy座標の設定 wx=wx/2; //次のx軸方向の移動幅の設定 } y1+50 ①

基礎課題4-3 y=x2 (0≦x≦10) i<=10 ・・・ //グラフの描画 int wx=1; x1=0; y1=0; for(int i=1; i<=10 ;i++) { x2=i*wx; y2=x2*x2; g.drawLine(x0+20*x1,y0-2*y1,x0+20*x2,y0-2*y2); x1=x2; y1=y2; } ① i<=10

基礎課題4-4 y=x2 (0≦x≦1) i<=10 void DrawGraphics(Graphics g) { int x0,y0,lx,ly; double x1,y1,x2,y2; //一般的には座標値は実数型で表す lx=200; //x軸の長さ ・・・ //グラフの描画 double wx=0.1; //x軸方向の刻み幅も一般には実数型変数で表す。 x1=0; y1=0; for(int i=1; i<=10 ;i++) { x2=i*wx; y2=x2*x2; g.drawLine( x0+(int)(100*x1),y0-(int)(100*y1), x0+(int)(100*x2),y0-(int)(100*y2) ); x1=x2; y1=y2; } y=x2 (0≦x≦1) ① i<=10