Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Processing.js アニメーションの基本
Search
Atsushi Tadokoro
May 29, 2014
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Processing.js アニメーションの基本
Atsushi Tadokoro
May 29, 2014
More Decks by Atsushi Tadokoro
See All by Atsushi Tadokoro
デザイン言語総合講座 - クリエイティブ・コーディング
tado
0
2.8k
Tumblrを使う4 - Webサイトを構成する、固定ページとタグ
tado
0
1.8k
Tumblrを使う3- カスタムHTMLテーマの作成
tado
0
470
Processing.jsによるデータの可視化と生成的表現
tado
1
1.9k
Tumblrを使う2 - テーマをカスタマイズする
tado
0
380
Touchéの仕組みを理解 - ProcessingとArduinoの連携
tado
0
2.4k
Github Pagesで作品を公開、Automatic Page Generatorでサイトを生成
tado
0
1.6k
TumblrでWebサイトを作成
tado
0
730
bmaw14 第2回: Touchéセンサーを使う1 Touchéセンサーを作成する
tado
0
2.2k
Other Decks in Technology
See All in Technology
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
250
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
12
8.4k
事業価値と Engineering 2026年度版
recruitengineers
PRO
45
22k
JavaScript 研修 (2026)
recruitengineers
PRO
2
460
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.8k
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
300
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.2k
ラジオの科学
frievea
0
280
システム思考で問題に対処する
yussak
0
210
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
460
Flutterをカメラで動かしたかった話
sony
1
130
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Abbi's Birthday
coloredviolet
3
9.3k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
BBQ
matthewcrist
89
10k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Crafting Experiences
bethany
1
240
We Have a Design System, Now What?
morganepeng
55
8.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Transcript
ใฤू 8FC 1SPDFTTJOHKT Ξχϝʔγϣϯͷجຊ ݄ ౦ژज़େֶܳज़ใηϯλʔ ".$
୲ɿాॴ३
Ξχϝʔγϣϯͷجຊ
Ξχϝʔγϣϯ ‣ ࠓૣΞχϝʔγϣϯʹઓ ‣ ·ͣશମͷΈΛཧղ͢Δ ! ‣ ΞχϝʔγϣϯΛ࣮ݱ͢ΔʹɺϓϩάϥϜΛΑΓߏԽ͍ͯ͘͠ඞཁ ‣ TFUVQ
ͱVQEBUF ͱ͍͏ೋͭͷύʔτʹߏԽͯ͠ΞχϝʔγϣϯΛ࣮ݱ͢Δ
Ξχϝʔγϣϯ ‣ TFUVQ rॳظઃఆϓϩάϥϜͷىಈ࣌ʹҰ͚࣮ͩߦ͞Ε·͢ɻը໘ͷجຊઃఆ ϑϨʔϜϨʔτͳͲΛઃఆ͠·͢ɻ ‣ ESBX rඳըઃఆͨ͠͞ ϑϨʔϜϨʔτ ͰϓϩάϥϜ͕ऴྃ͢Δ·Ͱ͘Γ͔͑
࣮͠ߦ͞Ε·͢ɻ
Ξχϝʔγϣϯ ‣ ͜ͷΈΛར༻ͯ͠ԁ͕ࣼΊԼʹҠಈ͢ΔϓϩάϥϜΛ࡞ͯ͠ΈΔ
Ξχϝʔγϣϯ ‣ ҎԼͷίʔυΛهೖ float posX, posY; //ԁͷத৺ҐஔΛ֨ೲ͢Δม float speedX, speedY;
//ԁͷΛ֨ೲ͢Δม void setup() { size(640, 480); //640x480pixelͷը໘Λੜ frameRate(60); //ϑϨʔϜϨʔτ stroke(63, 191, 255); //ઢͷ৭ fill(0, 127, 255, 127); //ృΓͷ৭ posX = 40; //ԁͷॳظҐஔX posY = 40; //ԁͷॳظҐஔY speedX = 3; //ԁͷॳظҐஔX speedY = 2; //ԁͷॳظҐஔY } ! void draw() { background(15); //എܠΛඳը ellipse(posX, posY, 20, 20); //ࢦఆͨ͠ҐஔʹԁΛඳը posX = posX + speedX; //ԁͷX࠲ඪΛߋ৽ posY = posY + speedY; //ԁͷY࠲ඪΛߋ৽ }
Ξχϝʔγϣϯ ‣ ԁ͕Ξχϝʔγϣϯ͢Δ ͣ
Ξχϝʔγϣϯ ‣ ը໘ͷͰόϯυͤͯ͞ΈΔ ! ‣ ҎԼͷ݅Λઃఆ͢Δඞཁ ‣ ը໘ͷӈɺ͘͠ը໘ͷࠨˠ9ํͷεϐʔυΛస ‣ ը໘ͷ্ɺ͘͠ը໘ͷԼˠ:ํͷεϐʔυΛస
! ‣ JGจ ‣ ͜ͷΑ͏ͳʮ͠˓˓ͩͬͨΒɺ˘˘͠ͳ͍͞ɺʢͦ͏Ͱͳ͚Εɺ˚˚˚͠ͳ͞ ͍ʣʯͱ͍͏Α͏ͳ੍ޚߏΛදݱ͢ΔͨΊͷΈ
Ξχϝʔγϣϯ ‣ JGจͷจ๏ if(ʬ݅ࣜʭ){ ʬਅจʭ//͕݅ਖ਼͍͠߹ͷॲཧ } else { ʬِจʭ//͕݅ਖ਼͘͠ͳ͍߹ͷॲཧ }
Ξχϝʔγϣϯ ‣ ݅ذΛ͔ͭͬͯɺนͰόϯυͤͯ͞ΈΔ float posX, posY; //ԁͷத৺ҐஔΛ֨ೲ͢Δม float speedX, speedY;
//ԁͷΛ֨ೲ͢Δม ! void setup() { size(640, 480); //640x480pixelͷը໘Λੜ frameRate(60); //ϑϨʔϜϨʔτ stroke(63, 191, 255); //ઢͷ৭ fill(0, 127, 255, 127); //ృΓͷ৭ posX = 40; //ԁͷॳظҐஔX posY = 40; //ԁͷॳظҐஔY speedX = 3; //ԁͷॳظҐஔX speedY = 2; //ԁͷॳظҐஔY }
Ξχϝʔγϣϯ ‣ ݅ذΛ͔ͭͬͯɺนͰόϯυͤͯ͞ΈΔ void draw() { background(15); //എܠΛඳը ellipse(posX, posY,
20, 20); //ࢦఆͨ͠ҐஔʹԁΛඳը posX = posX + speedX; //ԁͷX࠲ඪΛߋ৽ posY = posY + speedY; //ԁͷY࠲ඪΛߋ৽ if (posX < 0 || posX > width) { //͠ը໘ͷࠨ·ͨӈʹ౸ୡͨ͠Β speedX = speedX * -1; //XํͷεϐʔυΛస } if (posY < 0 || posY > height) { //͠ը໘ͷԼ·্ͨʹ౸ୡͨ͠Β speedY = speedY * -1; //YํͷεϐʔυΛస } }
Ξχϝʔγϣϯ ‣ ͨ͘͞ΜͷਤܗΛҰʹಈ͔ͯ͠ΈΔ ‣ ઌिͬͨGPSจͷԠ༻ ! ‣ σʔλͷ࣋ͪํʹ͕ඞཁˠྻ ‣ σʔλͷϩοΧʔͷΑ͏ͳΠϝʔδ
Ξχϝʔγϣϯ ‣ ྻͷఆٛͷํ๏ͷྫ // floatܕͷྖҬ100ίΛ֬อɺdataͱ͍͏ྻ໊ʹ float data[] = new float[100];
! // data[0], data[1], data[2] ... data[99] ·ͰҰؾʹੜ!
Ξχϝʔγϣϯ ‣ ྻͱ͘Γ͔͑͠Λ༻ͯ͠ɺઌఔͷนͰόϯυ͢ΔϓϩάϥϜΛվ ‣ ͨ͘͞ΜͷਤܗΛಉ࣌ʹಈ͔ͯ͠ΈΔ
Ξχϝʔγϣϯ ‣ ྻΛ༻ͯ͠ɺͨ͘͞ΜͷਤܗΛಈ͔͢ int NUM = 100; float posX[] =
new float[NUM]; //ԁͷத৺ҐஔΛ֨ೲ͢Δม float posY[] = new float[NUM]; float speedX[] = new float[NUM]; //ԁͷΛ֨ೲ͢Δม float speedY[] = new float[NUM]; ! void setup() { size(640, 480); //640x480pixelͷը໘Λੜ frameRate(60); //ϑϨʔϜϨʔτ stroke(63, 191, 255); //ઢͷ৭ fill(0, 127, 255, 127); //ృΓͷ৭ //NUMճ͘Γ͔͑͠ for (int i = 0; i < NUM; i++) { posX[i] = random(width); //ԁͷॳظҐஔX posY[i] = random(height); //ԁͷॳظҐஔY speedX[i] = random(-5,5); //ԁͷॳظҐஔX speedY[i] = random(-5,5); //ԁͷॳظҐஔY } }
Ξχϝʔγϣϯ ‣ ྻΛ༻ͯ͠ɺͨ͘͞ΜͷਤܗΛಈ͔͢ void draw() { background(15); //എܠΛඳը //NUMճ͘Γ͔͑͠ for
(int i = 0; i < NUM; i++) { ellipse(posX[i], posY[i], 20, 20); //ࢦఆͨ͠ҐஔʹԁΛඳը posX[i] = posX[i] + speedX[i]; //ԁͷX࠲ඪΛߋ৽ posY[i] = posY[i] + speedY[i]; //ԁͷY࠲ඪΛߋ৽ //͠ը໘ͷࠨɺ·ͨӈʹ౸ୡͨ͠Β if (posX[i] < 0 || posX[i] > width) { speedX[i] = speedX[i] * -1; //XํͷεϐʔυΛస } //͠ը໘ͷԼɺ·্ͨʹ౸ୡͨ͠Β if (posY[i] < 0 || posY[i] > height) { speedY[i] = speedY[i] * -1; //YํͷεϐʔυΛస } } }
Ξχϝʔγϣϯ ‣ ͨ͘͞Μͷਤܗ͕ಉ࣌ʹಈ͘
Ξχϝʔγϣϯ ‣ ࠓ͜͜·Ͱ