プログラミング技法特論#08<br />N. Shimizu<br />chikoski at kaetsu.ac.jp<br />2010.6.7<br />1<br />プログラミング技法特論#08 N.Shimizu <chiko at ...
メソッド<br />line(100, 100, 200, 200);<br />命令<br />;<br />引数<br />2010.6.7<br />2<br />プログラミング技法特論#08 N.Shimizu <chiko at ka...
Javaの基本的な型<br />2010.6.7<br />3<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
メソッド<br />void setup(){<br />  size(400, 400);<br />  colorMode(RGB, 100, 100, 100, 100);<br />  background(0, 0, 0, 100);...
壁にぶつかったことを見つけよう<br />float x, y, r, dx, dy;<br />void setup(){<br />   size(400, 400);<br />noStroke();<br />   fill(255, ...
まず普通に書いてみる<br />void draw(){<br />   background(0, 0, 0);<br />ellipse(x, y, r, r);<br />x = x + dx;<br />y = y + dy;<br /...
メソッドに分けよう<br />void draw(){<br />   background(0, 0, 0);<br />ellipse(x, y, r, r);<br />x = x + dx;<br />y = y + dy;<br />...
返り値<br />メソッドが仕事をした結果<br />意味はさまざま<br />作成物<br />計算した結果<br />成功 / 失敗 / ステータスコード<br />などなど<br />2010.6.7<br />8<br />プログラミン...
値をある範囲内に収める<br />void draw(){<br />   background(0, 0, 0); <br />ellipse(x, y, r, r);<br />x = constrain(x + dx, r / 2, wi...
返り値のあるメソッドを作ろう<br />float dx(){<br />   float ret = (mouseX – x) * 0.01;<br />   return ret;<br />}<br />float dy(){<br />...
作ったメソッドを使おう<br />void draw(){<br />ellipse(x, y, r, r);<br />if(mousePressed){<br />dx = dx();<br />dy = dy();<br />  }<br...
マウスクリック時に呼ばれるメソッド<br />void mousePressed(){<br />dx = dx();<br />dy = dy();<br />}<br />2010.6.7<br />12<br />プログラミング技法特論#...
この時のdraw<br />void draw(){<br />ellipse(x, y, r, r);<br />x = constrain(x + dx,    r / 2, width – r / 2);<br />y = constra...
今日の課題<br />これまであげてきたメソッドを組み合わせて、クリックした方への動きを実現しよう<br />2010.6.7<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br /...
円と円との重なり<br />2010.6.7<br />15<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
円と円との重なり<br />中心(x2, y2)<br />直径r2<br />中心(x1, y1),<br />直径r1<br />2010.6.7<br />16<br />プログラミング技法特論#08 N.Shimizu <chiko a...
円と円との重なり<br />中心(x2, y2)<br />直径r2<br />中心(x1, y1),<br />直径r1<br /> dist(x1, y1, x2, y2);<br />2010.6.7<br />17<br />プログラミ...
円と円との重なり<br />中心(x2, y2)<br />直径r2<br />中心(x1, y1),<br />直径r1<br /> dist(x1, y1, x2, y2); <= (r2 + r1) / 2<br />2010.6.7<b...
反射させてみよう<br />これまでのプログラムを改良しよう<br />直径80の円を画面のどこかに置く<br />この円に動いている円が重なったとき、円を反射させる<br />dxとdy両方に-1をかける<br />2010.6.7<br /...
メソッドにまとめて見よう<br />void draw(){<br />   background(0, 0, 0);<br />   fill(255, 0, 0, 255);   <br />   ellipse(x, y, r, r);<...
Upcoming SlideShare
Loading in...5
×

プログラミング技法特論第8回

717

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
717
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

プログラミング技法特論第8回

  1. 1. プログラミング技法特論#08<br />N. Shimizu<br />chikoski at kaetsu.ac.jp<br />2010.6.7<br />1<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  2. 2. メソッド<br />line(100, 100, 200, 200);<br />命令<br />;<br />引数<br />2010.6.7<br />2<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  3. 3. Javaの基本的な型<br />2010.6.7<br />3<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  4. 4. メソッド<br />void setup(){<br /> size(400, 400);<br /> colorMode(RGB, 100, 100, 100, 100);<br /> background(0, 0, 0, 100);<br /> noStroke();<br /> x = 0;<br /> y = 0;<br />}<br />2010.6.7<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />4<br />この範囲に対してsetupという名前をつけた<br />
  5. 5. 壁にぶつかったことを見つけよう<br />float x, y, r, dx, dy;<br />void setup(){<br /> size(400, 400);<br />noStroke();<br /> fill(255, 0, 0, 255);<br />x = width / 2;<br />y = height / 2;<br />r = 20;<br />dx = 0.5;<br />dy = 0.5;<br />}<br />void draw(){<br /> background(0, 0, 0);<br />ellipse(x, y, r, r);<br />x = x + dx;<br />y = y + dy;<br />}<br />2010.6.7<br />5<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  6. 6. まず普通に書いてみる<br />void draw(){<br /> background(0, 0, 0);<br />ellipse(x, y, r, r);<br />x = x + dx;<br />y = y + dy;<br />if(x <= r / 2 || width – r / 2 <= x){<br />dx = dx * -1;<br /> }<br />if(y <= r / 2 || height– y / 2 <= x){<br />dy = dy * -1;<br /> }<br />}<br />2010.6.7<br />6<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  7. 7. メソッドに分けよう<br />void draw(){<br /> background(0, 0, 0);<br />ellipse(x, y, r, r);<br />x = x + dx;<br />y = y + dy;<br />reflectByWall();<br />}<br />void reflectByWall(){<br />if(x <= r / 2 || width – r / 2 <= x){<br />dx = dx * -1;<br /> }<br />if(y <= r / 2 || height– r / 2 <= y){<br />dy = dy * -1;<br /> }<br />}<br />2010.6.7<br />7<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  8. 8. 返り値<br />メソッドが仕事をした結果<br />意味はさまざま<br />作成物<br />計算した結果<br />成功 / 失敗 / ステータスコード<br />などなど<br />2010.6.7<br />8<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  9. 9. 値をある範囲内に収める<br />void draw(){<br /> background(0, 0, 0); <br />ellipse(x, y, r, r);<br />x = constrain(x + dx, r / 2, width – r / 2);<br />y = constrain(y + dy, r / 2, height – r /2);<br />reflectByWall();<br />}<br />2010.6.7<br />9<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  10. 10. 返り値のあるメソッドを作ろう<br />float dx(){<br /> float ret = (mouseX – x) * 0.01;<br /> return ret;<br />}<br />float dy(){<br /> float ret = (mouseY – y) * 0.01;<br /> return ret;<br />}<br />2010.6.7<br />10<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  11. 11. 作ったメソッドを使おう<br />void draw(){<br />ellipse(x, y, r, r);<br />if(mousePressed){<br />dx = dx();<br />dy = dy();<br /> }<br />x = constrain(x + dx, r / 2, width – r / 2);<br />y = constrain(y + dy, r / 2, height – r /2);<br />reflectByWall();<br />}<br />2010.6.7<br />11<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  12. 12. マウスクリック時に呼ばれるメソッド<br />void mousePressed(){<br />dx = dx();<br />dy = dy();<br />}<br />2010.6.7<br />12<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  13. 13. この時のdraw<br />void draw(){<br />ellipse(x, y, r, r);<br />x = constrain(x + dx, r / 2, width – r / 2);<br />y = constrain(y + dy, r / 2, height – r /2);<br />reflectByWall();<br />}<br />2010.6.7<br />13<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  14. 14. 今日の課題<br />これまであげてきたメソッドを組み合わせて、クリックした方への動きを実現しよう<br />2010.6.7<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />14<br />
  15. 15. 円と円との重なり<br />2010.6.7<br />15<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  16. 16. 円と円との重なり<br />中心(x2, y2)<br />直径r2<br />中心(x1, y1),<br />直径r1<br />2010.6.7<br />16<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  17. 17. 円と円との重なり<br />中心(x2, y2)<br />直径r2<br />中心(x1, y1),<br />直径r1<br /> dist(x1, y1, x2, y2);<br />2010.6.7<br />17<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  18. 18. 円と円との重なり<br />中心(x2, y2)<br />直径r2<br />中心(x1, y1),<br />直径r1<br /> dist(x1, y1, x2, y2); <= (r2 + r1) / 2<br />2010.6.7<br />18<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  19. 19. 反射させてみよう<br />これまでのプログラムを改良しよう<br />直径80の円を画面のどこかに置く<br />この円に動いている円が重なったとき、円を反射させる<br />dxとdy両方に-1をかける<br />2010.6.7<br />19<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />
  20. 20. メソッドにまとめて見よう<br />void draw(){<br /> background(0, 0, 0);<br /> fill(255, 0, 0, 255); <br /> ellipse(x, y, r, r);<br /> fill(255, 255, 255, 255);<br /> ellipse(x1, y1, r1, r1); <br /> x = constrain(x + dx, r / 2, width - r/2);<br /> y = constrain(y + dy, r / 2, height - r/2);<br /> reflectByWall();<br /> reflectByBall();<br />}<br />これを実装しよう<br />2010.6.7<br />20<br />プログラミング技法特論#08 N.Shimizu <chiko at kaetsu.ac.jp><br />

×