JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.

Slides:



Advertisements
Similar presentations
ファーストイヤー・セミナーⅡ 第13回 2次元グラフィックス(1). 2次元グラフィックス Ultra-C では、これまで利用してきた「標準入出力」 以外に「グラフィックス画面」があり、図形などを 表示できる C 言語のグラフィックスには細かな規定がなく、こ れから学ぶ内容が他の環境、システムでは利用でき.
Advertisements

2010 年マルチメディア論 画像処理演習(2) ( pic1.txt ~ pic8.txt )
初年次セミナー 第13回 2次元グラフィックス(1).
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
初年次セミナー 第14回 2次元グラフィックス(2).
GridLayout オブジェクト(省略)
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
関数(1) 第11回 [6月29日、H.16(‘04)] 今日のメニュー 1 前回の課題 2 前回の宿題 3 いろいろな関数の演習 4 課題
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
初年次セミナー 第4回 整数と実数の取り扱い.
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
Applet 岡部 祐典 鈴木 敬幸.
JAVA GUIプログラミング 第6回 TextFieldとLabel.
オブジェクト指向言語 第12回 アプレット.
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
アプレット (Applet)について.
基礎プログラミングおよび演習 第9回
CGプログラミング論 平成28年6月1日 森田 彦.
第4回:ボールを画面内で弾ませよう! (オブジェクトの移動、二次元)
2004年度JAVAゼミコンテスト作品 「Othello」
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
JAVA.
画像の作成と編集.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
第6章 2重ループ&配列 2重ループと配列をやります.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
第3回:ボールを上下に動かそう! (オブジェクトの移動、一次元)
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
第7回 条件による繰り返し.
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
基礎プログラミング演習 第10回.
CGプログラミング論 平成28年5月25日 森田 彦.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
CGプログラミング論 平成28年6月8日 森田 彦.
行列による画像処理 デジタル表現論 担当者:劉 雪峰 2017年6月1日.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
フーリエ級数展開 ~矩形波について~ 長江 栞 中島 涼 中村 勇樹
前回の練習問題.
第7回 条件による繰り返し.
東京大学人間環境学専攻 奥田・橋本研究室 修士1年 相良 光志
プログラミングⅠ 平成30年10月29日 森田 彦.
DirectX勉強会 第2回.
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
プロジェクト演習Ⅳ インタラクティブゲーム制作 プログラミング4
Processing Processingでお絵かき.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
色合い:下図のように色を表す     RGB のうち 1 つは 0、1つは 255 である     色度座標の R-G-B の 3 角形の辺上を移動する
プログラミングⅡ 第2回.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
CGプログラミング論 平成28年5月18日 森田 彦.
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
JAVA入門⑥ クラスとインスタンス.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
VB6.0でグラフを書こう(とりあえず2次元)
3.1 シューティングゲームの当たり判定 当たったら死亡.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
Processing Processingでお絵かき.
CGプログラミング論 平成28年5月11日 森田 彦.
プログラミング入門 -「計算」に注目して考える-
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう

前回の復習 線が2本引けますね 絵を描く部分を次のように描くと・・ public void paint(Graphics g) { g.drawLine(100,100,200,200); g.drawLine(200,100,300,200); } 線が2本引けますね

今日は色をつけてみよう public void paint(Graphics g) { g.setColor(Color.red); g.drawLine(100,100,200,200); g.setColor(Color.blue); g.drawLine(200,100,300,200); }

色の設定 setColor(色)のように設定します。 色には Color.red Color.blue Color.yellow Color.white などなど、たくさんあります。

自分で色を作る コンピュータの色の3源色(RGB) 赤 緑 青 をまぜて自分で色を作ることができます。

構文 setColor(new Color(赤,緑,青)) 赤、緑、青には 0~255までの整数を代入します。 値は強さをさしています

例 setColor(new Color(0,0,0)) ⇒黒 setColor(new Color(255,255,255)) ⇒白 ⇒黄色 setColor(new Color(125,125,125)) ⇒灰色

ではやってみましょう public void paint(Graphics g) { g.setColor(new Color(200,0,150)); g.fillRect(100,100,200,50); }

どうですか? 色を指定する方法はこんな感じです いろいろと試してください(駄洒落ではありません) 次にjavaでfor文を使ってみましょう

for文 for(初期値の設定;継続条件;1回ごとの処理) 例 for(i=1;i<5;i++) { } 例  for(i=1;i<5;i++) { } i++とはiに1を足すという意味です。 { }の中は4回繰り返されます

for文のサンプル① public void paint(Graphics g) { int i; i+=10とは for(i=100;i<=300;i+=10) g.drawLine(100,i,i,300); } i+=10とは iに10を足すという意味です このプログラムの結果を 想像してみてください

for文のサンプル② public void paint(Graphics g) { int i; for(i=0;i<=255;i++) g.setColor(new Color(0,i,255-i)); g.drawLine(i,0,i,100); } これも結果を想像 してみよう!

色についてはここまで 次はグラフを描いてみましょう

座標系の違いに注意 描かせたいグラフの範囲を[-1,1]×[-1,1]とします。 画面のサイズを500×500とします。 数学上の座標を(x,y)とし 画面の座標を(x’,y’)とすると・・ x’=250+250x y’=250-250y となります。

プログラムの前に・・ これからy=x のグラフを描きます drawLine(200,200,200,200) これからy=x のグラフを描きます 2 グラフを描くときには点を細かく打っていきますが、 JAVAには点を打つ命令がありません。 もし(200,200)に点を打ちたいときは drawLineを使って次のようにします。 drawLine(200,200,200,200)

ではプログラムです public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); }

実数の計算をするので x,yをdoubleで定義します public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); } 実数の計算をするので x,yをdoubleで定義します

整数型でx1,y1を定義します。 コンピュータの座標が整数のため です。 public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); } 整数型でx1,y1を定義します。 コンピュータの座標が整数のため です。

xをー1から1まで、0.01ずつ 増やしながら繰り返します。 public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); } xをー1から1まで、0.01ずつ 増やしながら繰り返します。

今回描かせたい関数 public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); } 今回描かせたい関数

数学上の座標から コンピュータの座標に変換します コンピュータの座標のため 整数型になおします。 public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); } 数学上の座標から コンピュータの座標に変換します コンピュータの座標のため 整数型になおします。

(x1,y1)に点を打ちます public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)(250+250*x); y1=(int)(250-250*y); g.drawLine(x1,y1,x1,y1); } (x1,y1)に点を打ちます

今日はここまでです 暇がある人は いろいろな絵や いろいろな関数を描いてみてください。