Download presentation
Presentation is loading. Please wait.
1
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう
2
前回の復習 線が2本引けますね 絵を描く部分を次のように描くと・・ public void paint(Graphics g) {
g.drawLine(100,100,200,200); g.drawLine(200,100,300,200); } 線が2本引けますね
3
今日は色をつけてみよう 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); }
4
色の設定 setColor(色)のように設定します。 色には Color.red Color.blue Color.yellow
Color.white などなど、たくさんあります。
5
自分で色を作る コンピュータの色の3源色(RGB) 赤 緑 青 をまぜて自分で色を作ることができます。
6
構文 setColor(new Color(赤,緑,青)) 赤、緑、青には 0~255までの整数を代入します。 値は強さをさしています
7
例 setColor(new Color(0,0,0)) ⇒黒 setColor(new Color(255,255,255)) ⇒白
⇒黄色 setColor(new Color(125,125,125)) ⇒灰色
8
ではやってみましょう public void paint(Graphics g) {
g.setColor(new Color(200,0,150)); g.fillRect(100,100,200,50); }
9
どうですか? 色を指定する方法はこんな感じです いろいろと試してください(駄洒落ではありません) 次にjavaでfor文を使ってみましょう
10
for文 for(初期値の設定;継続条件;1回ごとの処理) 例 for(i=1;i<5;i++) { }
例 for(i=1;i<5;i++) { } i++とはiに1を足すという意味です。 { }の中は4回繰り返されます
11
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を足すという意味です このプログラムの結果を 想像してみてください
12
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); } これも結果を想像 してみよう!
13
色についてはここまで 次はグラフを描いてみましょう
14
座標系の違いに注意 描かせたいグラフの範囲を[-1,1]×[-1,1]とします。 画面のサイズを500×500とします。
数学上の座標を(x,y)とし 画面の座標を(x’,y’)とすると・・ x’= x y’= y となります。
15
プログラムの前に・・ これからy=x のグラフを描きます drawLine(200,200,200,200)
これからy=x のグラフを描きます 2 グラフを描くときには点を細かく打っていきますが、 JAVAには点を打つ命令がありません。 もし(200,200)に点を打ちたいときは drawLineを使って次のようにします。 drawLine(200,200,200,200)
16
ではプログラムです public void paint(Graphics g) { double x,y; int x1,y1;
for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); }
17
実数の計算をするので 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)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); } 実数の計算をするので x,yをdoubleで定義します
18
整数型で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)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); } 整数型でx1,y1を定義します。 コンピュータの座標が整数のため です。
19
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)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); } xをー1から1まで、0.01ずつ 増やしながら繰り返します。
20
今回描かせたい関数 public void paint(Graphics g) { double x,y; int x1,y1;
for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); } 今回描かせたい関数
21
数学上の座標から コンピュータの座標に変換します コンピュータの座標のため 整数型になおします。
public void paint(Graphics g) { double x,y; int x1,y1; for(x=-1;x<=1;x+=0.01) y=x*x; x1=(int)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); } 数学上の座標から コンピュータの座標に変換します コンピュータの座標のため 整数型になおします。
22
(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)( *x); y1=(int)( *y); g.drawLine(x1,y1,x1,y1); } (x1,y1)に点を打ちます
23
今日はここまでです 暇がある人は いろいろな絵や いろいろな関数を描いてみてください。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.