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
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
390
kaonavi Tech Night#1
kaonavi
0
150
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.3k
Vポイント分析基盤におけるデータモデリング20年史
taromatsui_cccmkhd
4
700
複数プロダクト組織のAIネイティブ化における戦略 / AICon2026_kude
rakus_dev
0
300
AI工学特論: MLOps・継続的評価
asei
4
170
発表と総括 / Presentations and Summary
ks91
PRO
0
180
AI_Dev_Day_製造業領域でのAI活用から見た活用の罠と成功に導く実践知.pdf
kintotechdev
0
140
現場との対話から始める “作る前に問い直す”業務改善
mochico50
1
190
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
600
Type-safe IaC for Dart
coborinai
0
180
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
730
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
HDC tutorial
michielstock
2
750
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
350
Bash Introduction
62gerente
615
220k
Accessibility Awareness
sabderemane
1
160
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Large-scale JavaScript Application Architecture
addyosmani
515
110k
4 Signs Your Business is Dying
shpigford
187
22k
Docker and Python
trallard
47
4k
Making Projects Easy
brettharned
120
6.7k
New Earth Scene 8
popppiees
3
2.4k
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ํͷεϐʔυΛస } } }
Ξχϝʔγϣϯ ‣ ͨ͘͞Μͷਤܗ͕ಉ࣌ʹಈ͘
Ξχϝʔγϣϯ ‣ ࠓ͜͜·Ͱ