Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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.7k
TumblrでWebサイトを作成
tado
0
730
bmaw14 第2回: Touchéセンサーを使う1 Touchéセンサーを作成する
tado
0
2.3k
Other Decks in Technology
See All in Technology
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
390
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
240
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
360
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
7
4.9k
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
5
2.5k
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
490
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
420
"AWSはちょっと苦手"でも大丈夫。AWS Blocks で手軽に作る Flutter のバックエンド #FlutterKaigi
tacck
PRO
0
110
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
260
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
2
690
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
160
How we choose session proposals
kawaguti
PRO
1
190
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
How to train your dragon (web standard)
notwaldorf
96
6.9k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
59k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
900
Designing for humans not robots
tammielis
254
26k
Context Engineering - Making Every Token Count
addyosmani
9
1.3k
The Pragmatic Product Professional
lauravandoore
37
7.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Deep Space Network (abreviated)
tonyrice
0
390
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ํͷεϐʔυΛస } } }
Ξχϝʔγϣϯ ‣ ͨ͘͞Μͷਤܗ͕ಉ࣌ʹಈ͘
Ξχϝʔγϣϯ ‣ ࠓ͜͜·Ͱ