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

Mais conteúdo relacionado

Mais procurados

プログラミング技法特論第4回
プログラミング技法特論第4回プログラミング技法特論第4回
プログラミング技法特論第4回
Noritada Shimizu
 
JavaScript Hackathon for Students
JavaScript Hackathon for StudentsJavaScript Hackathon for Students
JavaScript Hackathon for Students
Takumi Ohashi
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
Atsushi Tadokoro
 
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションメディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
Atsushi Tadokoro
 
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
 
Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceupHtml canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
Yohei Munesada
 
Canvas de shooting 制作のポイント
Canvas de shooting 制作のポイントCanvas de shooting 制作のポイント
Canvas de shooting 制作のポイント
Yohei Munesada
 

Mais procurados (20)

プログラミング技法特論第4回
プログラミング技法特論第4回プログラミング技法特論第4回
プログラミング技法特論第4回
 
Processing資料(1) Processingの基本
Processing資料(1) Processingの基本Processing資料(1) Processingの基本
Processing資料(1) Processingの基本
 
CG2013 05
CG2013 05CG2013 05
CG2013 05
 
Processing資料(6) 様々な図形
Processing資料(6) 様々な図形Processing資料(6) 様々な図形
Processing資料(6) 様々な図形
 
Processing資料(4) アニメーション
Processing資料(4) アニメーションProcessing資料(4) アニメーション
Processing資料(4) アニメーション
 
JavaScript Hackathon for Students
JavaScript Hackathon for StudentsJavaScript Hackathon for Students
JavaScript Hackathon for Students
 
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
 
Ssaw08 0916
Ssaw08 0916Ssaw08 0916
Ssaw08 0916
 
JavaScript でパックマン!第3回
JavaScript でパックマン!第3回JavaScript でパックマン!第3回
JavaScript でパックマン!第3回
 
JavaScript でパックマン!第6回
JavaScript でパックマン!第6回JavaScript でパックマン!第6回
JavaScript でパックマン!第6回
 
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
 
岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料岡山県立大学オープンキャンパス資料
岡山県立大学オープンキャンパス資料
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
 
関数型プログラミングとモナド
関数型プログラミングとモナド関数型プログラミングとモナド
関数型プログラミングとモナド
 
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションメディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
 
x86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNTx86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNT
 
Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceupHtml canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
 
Canvas de shooting 制作のポイント
Canvas de shooting 制作のポイントCanvas de shooting 制作のポイント
Canvas de shooting 制作のポイント
 

Destaque (6)

8 правил идеального контента
8 правил идеального контента8 правил идеального контента
8 правил идеального контента
 
8 frankenstein facebook (1)
8 frankenstein facebook (1)8 frankenstein facebook (1)
8 frankenstein facebook (1)
 
8 besar
8 besar8 besar
8 besar
 
Β ΓΥΜΝΑΣΙΟΥ - ΔΙΑΓΩΝΙΣΜΑ - ΚΝΛ
Β ΓΥΜΝΑΣΙΟΥ - ΔΙΑΓΩΝΙΣΜΑ - ΚΝΛΒ ΓΥΜΝΑΣΙΟΥ - ΔΙΑΓΩΝΙΣΜΑ - ΚΝΛ
Β ΓΥΜΝΑΣΙΟΥ - ΔΙΑΓΩΝΙΣΜΑ - ΚΝΛ
 
8 BYOD Security Tips
8 BYOD Security Tips8 BYOD Security Tips
8 BYOD Security Tips
 
생명의강 소식지 8호
생명의강 소식지 8호 생명의강 소식지 8호
생명의강 소식지 8호
 

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

Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッション
arctic_tern265
 
プログラミング技法特論
プログラミング技法特論プログラミング技法特論
プログラミング技法特論
Noritada Shimizu
 
論理思考とプログラミング第9回
論理思考とプログラミング第9回論理思考とプログラミング第9回
論理思考とプログラミング第9回
Noritada Shimizu
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
 
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
Takashi Yoshinaga
 

Semelhante a プログラミング技法特論第8回 (20)

Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
Aaなゲームをjsで
AaなゲームをjsでAaなゲームをjsで
Aaなゲームをjsで
 
Aaなゲームをjsで
AaなゲームをjsでAaなゲームをjsで
Aaなゲームをjsで
 
CG2013 12
CG2013 12CG2013 12
CG2013 12
 
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッション
 
プログラミング技法特論
プログラミング技法特論プログラミング技法特論
プログラミング技法特論
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
Processing.jsでおうちハック
Processing.jsでおうちハックProcessing.jsでおうちハック
Processing.jsでおうちハック
 
論理思考とプログラミング第9回
論理思考とプログラミング第9回論理思考とプログラミング第9回
論理思考とプログラミング第9回
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package Status
 
Bluespec @waseda(PDF)
Bluespec @waseda(PDF)Bluespec @waseda(PDF)
Bluespec @waseda(PDF)
 
OpenGLと行列
OpenGLと行列OpenGLと行列
OpenGLと行列
 
STC-OC2019_1st201906
STC-OC2019_1st201906STC-OC2019_1st201906
STC-OC2019_1st201906
 
D3.js で LOD を Visualization
D3.js で LOD を VisualizationD3.js で LOD を Visualization
D3.js で LOD を Visualization
 
板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!板ポリだけで めちゃカッコいい グラフィックスを出す!
板ポリだけで めちゃカッコいい グラフィックスを出す!
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
ARコンテンツ作成勉強会:C#ではじめようOpenCV(カラートラッキング編)
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 

Mais de Noritada Shimizu

Mais de Noritada Shimizu (20)

20160803 devrel
20160803 devrel20160803 devrel
20160803 devrel
 
20160713 webvr
20160713 webvr20160713 webvr
20160713 webvr
 
20160601 devtools
20160601 devtools20160601 devtools
20160601 devtools
 
20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread20150512 webgl-off-the-main-thread
20150512 webgl-off-the-main-thread
 
20160428 html5jwebplat
20160428 html5jwebplat20160428 html5jwebplat
20160428 html5jwebplat
 
asm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web gamesasm.js x emscripten: The foundation of the next level Web games
asm.js x emscripten: The foundation of the next level Web games
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
 
2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js
 
20151224-games
20151224-games20151224-games
20151224-games
 
20151128 firefoxos-handson
20151128 firefoxos-handson20151128 firefoxos-handson
20151128 firefoxos-handson
 
20151117 devtools
20151117 devtools20151117 devtools
20151117 devtools
 
Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発Inspection & Tweak: Firefox を使ったフロント開発
Inspection & Tweak: Firefox を使ったフロント開発
 
20150822 osc-shimane
20150822 osc-shimane20150822 osc-shimane
20150822 osc-shimane
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handson
 
20150829 firefox-os
20150829 firefox-os20150829 firefox-os
20150829 firefox-os
 
20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps20150727 Development tools for Firefox OS apps
20150727 Development tools for Firefox OS apps
 
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Firefox OS  でアプリを作るときに気をつけたい N 個のことFirefox OS  でアプリを作るときに気をつけたい N 個のこと
Firefox OS でアプリを作るときに気をつけたい N 個のこと
 
Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)Firefox OSアプリ開発ハンズオン(Hello World編)
Firefox OSアプリ開発ハンズオン(Hello World編)
 
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
 
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox MarketplaceApplication submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
 

Último

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Último (7)

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

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