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
ガイダンス - Bio Media Art Workshopについて Processingの復習
Search
Atsushi Tadokoro
June 02, 2014
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ガイダンス - Bio Media Art Workshopについて Processingの復習
Atsushi Tadokoro
June 02, 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
AICoEでAIネイティブ組織への進化
yukiogawa
0
200
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
290
そのドキュメント、自動化しませんか?
yuksew
1
310
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.5k
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
1
490
副作用のある Lambda でも Lambda Power Tuning は使えるのか / lambda-power-tuning-side-effects
koukihosaka
1
120
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
230
ガバナンスの「ちょうどいい落とし所」を探れ!開発スピードを妨げない運用判断の勘所 / SRE NEXT 2026
genda
1
260
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
300
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
120
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
エンジニアに許された特別な時間の終わり
watany
108
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
420
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
How to Ace a Technical Interview
jacobian
281
24k
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
The untapped power of vector embeddings
frankvandijk
2
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Transcript
ୈճΨΠμϯε #JP.FEJB"SU8PSLTIPQʹ͍ͭͯ 1SPDFTTJOHͷ෮श ݄ ଟຎඒज़େֶใσβΠϯֶՊϝσΟΞܳज़ίʔε ాॴ३
#JP.FEJB"SU8PSLTIPQ ϫʔΫγϣοϓʹ͍ͭͯ
͜ͷϫʔΫγϣοϓͷඪ ‣ 1SPDFTTJOHͱ"SEVJOPΛΈ߹ͤΔ ‣ ηϯαʔͰڥͷใΛܭଌͨ͠ΓɺԻޫɺಈ͖Ͱڥʹಇ͖͔͚Δ ‣ ২ͱిࢠ࡞ɺϓϩάϥϛϯάωοτϫʔΫΛΈ߹ͤΔ ‣ ࠷ऴඪόΠΦɾΨδΣοτΛ੍࡞
"SEVJOP ‣ ηϯαʔͰܭଌͨ͠पғͷڥʹؔ͢ΔσʔλΛऔಘͯ͠.BDͳͲͷ1$ʹૹग़
"SEVJOP ‣ ͜ͷػձʹ"SEVJOPࣗઐ༻ͷͷΛߪೖ͠·͠ΐ͏ ‣ "SEVJOP6/0͕ɺ࠷ॳͷͱͯ͠Φεεϝ ‣ εΠοναΠΤϯεIUUQXXXTXJUDITDJFODFDPNDBUBMPH ‣ ԁ
"SEVJOP ‣ ϒϨουϘʔυɺύονέʔϒϧͳͲແ͍߹ηοτ͕͓ಘ ‣ "SEVJOPΛ͡ΊΑ͏ΩοτIUUQXXXTXJUDITDJFODFDPNDBUBMPH ‣ ԁ
1SPDFTTJOH ‣ ιϑτΣΞΞʔτɺϏδϡΞϧσβΠϯͷͨΊͷϓϩάϥϛϯάݴޠ ‣ .*5ϝσΟΞϥϘʹࡏ੶͍ͯͨ͠ɺ$BTFZ3FBTɺ#FOKBNJO'SZʹΑͬͯ։ൃ ʙ ‣ IUUQQSPDFTTJOHPSH
1SPDFTTJOH ‣ 1SPDFTTJOHɺ։ൃڥڙ͍͑ͯΔ ‣ खܰʹεέονΛ͢ΔΑ͏ʹϓϩάϥϛϯά
ϫʔΫγϣοϓશମͷߏ
ϫʔΫγϣοϓͰ࡞͢ΔγεςϜͷΠϝʔδ
੍࡞͢Δ࡞ͷྫ ‣ #PUBOJDVT*OUFSBDUJDVT*OUFSBDUJWF1MBOU5FDIOPMPHZ ‣ IUUQXXXEJTOFZSFTFBSDIDPNQSPKFDUCPUBOJDVTJOUFSBDUJDVT JOUFSBDUJWFQMBOUUFDIOPMPHZ
5PVDIÉ ‣ ͜ͷ࡞Ͱ༻͍ΒΕ͍ͯΔηϯαʔɺ5PVDIÉʹ͍ͭͯ ‣ IUUQXXXEJTOFZSFTFBSDIDPNQSPKFDUUPVDIFUPVDIBOEHFTUVSF TFOTJOHGPSUIFSFBMXPSME
1SPDFTTJOHͷ෮श
1SPDFTTJOHͷ෮श ‣ 1SPDFTTJOHΛεϐʔυ෮श͠·͢ ‣ ΦεεϝαΠτIUUQIFMMPQSPDFTTJOHPSH
࠲ඪɺΛඳ͘ ‣ ࠲ඪͷ֓೦ʹ͍ͭͯ
࠲ඪɺΛඳ͘ ‣ ࠲ඪΛࢦఆͯ͠Λඳ͘ size(640,480); //640x480pixelͷը໘Λੜ point(300,200); //300x200ͷॴʹΛඳ͘
࠲ඪɺΛඳ͘ ‣ Α͘ݟΕ͕Ճ͞Ε͍ͯΔ
جຊਤܗ ‣ ઢMJOF Y Z Y Z
جຊਤܗ ‣ ࢛֯SFDU Y Z XJEUI IFJHIU
جຊਤܗ ‣ ԁɺପԁFMMJQTF Y Z XJEUI IFJHIU
جຊਤܗ ‣ ઢɺ࢛֯ɺԁΛ·ͱΊͯඳ͍ͯΈΔ size(640,480); //640x480pixelͷը໘Λੜ point(300,200); //(300,200)ͷॴʹΛඳ͘ line(50,100,400,300); //(50,100)ͷ͔Β(400,300)ͷઢΛҾ͘ rect(400,100,100,300);
//(400,100)ͷ͔Βɺ෯100ɺߴ͞300ͷ࢛֯ܗΛඳ͘ ellipse(200,340,300,200); //(200,340)ͷΛத৺ʹɺ෯300ɺߴ͞200ͷପԁΛඳ͘
‣ جຊਤܗ͕ඳ͚ͨ جຊਤܗ
৭ ‣ എܠ৭ ‣ CBDLHSPVOE (SBZ άϨΠεέʔϧ ‣ CBDLHSPVOE 3
( # 3(# ‣ CBDLHSPVOE 3 ( # " 3(#" ˞"ಁ໌ ! ‣ ృΓͷ৭ ‣ pMM (SBZ ‣ pMM 3 ( # ‣ pMM 3 ( # " ! ‣ ڥքઢͷ৭ ‣ TUSPLF (SBZ ‣ TUSPLF 3 ( # ‣ TUSPLF 3 ( # "
جຊਤܗ ‣ ৭Λࢦఆͯ͠ΈΔ background(15); //എܠ৭ stroke(63,191,255); //ઢͷ৭ fill(0,127,255,127); //ృΓͷ৭ size(640,
480); //640x480pixelͷը໘Λੜ point(300, 200); //(300,200)ͷॴʹΛඳ͘ line(50, 100, 400, 300); //(50,100)ͷ͔Β(400,300)ͷઢΛҾ͘ rect(400, 100, 100, 300); //(400,100)ͷ͔Βɺ෯100ɺߴ͞300ͷ࢛֯ܗΛඳ͘ ellipse(200, 340, 300, 200); //(200,340)ͷΛத৺ʹɺ෯300ɺߴ͞200ͷପԁΛඳ͘
৭ ‣ ৭ΛࢦఆͰ͖ͨ
Ξχϝʔγϣϯ ‣ TFUVQ ͱESBX
Ξχϝʔγϣϯ ‣ ྫԁ͕Ҡಈ͢ΔΞχϝʔγϣϯ PVector location; //ҐஔͷϕΫτϧ PVector velocity; //ͷϕΫτϧ !
void setup() { size(640, 480); //640x480pixelͷը໘Λੜ frameRate(60); //ϑϨʔϜϨʔτ stroke(63, 191, 255); //ઢͷ৭ fill(0, 127, 255, 127); //ృΓͷ৭ location = new PVector(40, 40); //ҐஔͷϕΫτϧͷॳظઃఆ velocity = new PVector(3, 2); //ͷϕΫτϧͷॳظઃఆ } !
Ξχϝʔγϣϯ ‣ ྫԁ͕Ҡಈ͢ΔΞχϝʔγϣϯ void draw() { background(15); //എܠΛඳը ellipse(location.x, location.y,
20, 20); //ࢦఆͨ͠ҐஔʹԁΛඳը location.add(velocity); //ҐஔͷϕΫτϧʹͷϕΫτϧΛՃࢉɺ࣍ͷҐஔʹͳΔ if ((location.x > width) || (location.x < 0)) { //͠ը໘ͷࠨ·ͨӈʹ౸ୡͨ͠Β velocity.x *= -1; //XํͷεϐʔυΛస } if ((location.y > height) || (location.y < 0)) { //͠ը໘ͷԼ·্ͨʹ౸ୡͨ͠Β velocity.y *= -1; //YํͷεϐʔυΛస } }
Ξχϝʔγϣϯ ‣ ԁ͕Ҡಈ͢ΔΞχϝʔγϣϯ
͘Γฦ͠ʹΑΔ૿৩ ‣ ྻʹ͍ͭͯཧղ͢Δ ‣ ྫɿ float data[] = new float[5];
͘Γฦ͠ʹΑΔ૿৩ ‣ Ґஔ MPDBUJPO ɺ WFMPDJUZ ΛͦΕͧΕྻʹมߋ int NUM =
100; //ྻͷ PVector[] location = new PVector[NUM]; //ҐஔͷϕΫτϧͷྻ PVector[] velocity = new PVector[NUM]; //ͷϕΫτϧͷྻ</p> ! void setup() { size(640, 480); //640x480pixelͷը໘Λੜ frameRate(60); //ϑϨʔϜϨʔτ stroke(63, 191, 255); //ઢͷ৭ fill(0, 127, 255, 127); //ృΓͷ৭ for (int i = 0; i < NUM; i++) { //ྻͷ͚ͩ܁Γฦ͠ location[i] = new PVector(random(width), random(height)); //ҐஔͷϕΫτϧ velocity[i] = new PVector(random(-4, 4), random(-4, 4)); //ͷϕΫτϧ } }
͘Γฦ͠ʹΑΔ૿৩ ‣ Ґஔ MPDBUJPO ɺ WFMPDJUZ ΛͦΕͧΕྻʹมߋ void draw() {
background(15); //എܠΛඳը for (int i = 0; i < NUM; i++) { //ྻͷ͚ͩ܁Γฦ͠ ellipse(location[i].x, location[i].y, 20, 20); //ࢦఆͨ͠ҐஔʹԁΛඳը location[i].add(velocity[i]); //ҐஔͷϕΫτϧʹͷϕΫτϧΛՃࢉɺ࣍ͷҐஔʹͳΔ if ((location[i].x > width) || (location[i].x < 0)) { velocity[i].x *= -1; //XํͷεϐʔυΛస } if ((location[i].y > height) || (location[i].y < 0)) { velocity[i].y *= -1; //YํͷεϐʔυΛస } } }
͘Γฦ͠ʹΑΔ૿৩ ‣ ૿৩ͨ͠Ξχϝʔγϣϯ
͘Γฦ͠ʹΑΔ૿৩ ‣ ࠷ޙʹɺԁͷ৭ͱେ͖͞ϥϯμϜʹࢦఆͯ͠ΈΔ
͘Γฦ͠ʹΑΔ૿৩ ‣ Ґஔ MPDBUJPO ɺ WFMPDJUZ ɺ৭ DPM ɺେ͖͞ EJBNFUFS
ΛϥϯμϜʹ int NUM = 500; //ྻͷ PVector[] location = new PVector[NUM]; //ҐஔͷϕΫτϧͷྻ PVector[] velocity = new PVector[NUM]; //ͷϕΫτϧͷྻ color[] col = new color[NUM]; //ృΓͷ৭ͷྻ float[] diameter = new float[NUM]; //ԁͷେ͖͞(ܘ)ͷྻ</p> ! void setup() { size(640, 480); //640x480pixelͷը໘Λੜ frameRate(60); //ϑϨʔϜϨʔτ noStroke(); for (int i = 0; i < NUM; i++) { //ྻͷ͚ͩ܁Γฦ͠ location[i] = new PVector(random(width), random(height)); //ҐஔͷϕΫτϧͷॳظઃఆ velocity[i] = new PVector(random(-4, 4), random(-4, 4)); //ͷϕΫτϧͷॳظઃఆ col[i] = color(random(255), random(255), random(255), 127); //৭ͷॳظઃఆ diameter[i] = random(3, 40); //େ͖͞ͷॳظઃఆ } }
͘Γฦ͠ʹΑΔ૿৩ ‣ Ґஔ MPDBUJPO ɺ WFMPDJUZ ɺ৭ DPM ɺେ͖͞ EJBNFUFS
ΛϥϯμϜʹ void draw() { background(15); //എܠΛඳը for (int i = 0; i < NUM; i++) { //ྻͷ͚ͩ܁Γฦ͠ fill(col[i]); //৭Λࢦఆ ellipse(location[i].x, location[i].y, diameter[i], diameter[i]); //ࢦఆͨ͠ҐஔʹԁΛඳը location[i].add(velocity[i]); //ҐஔͷϕΫτϧʹͷϕΫτϧΛՃࢉɺ࣍ͷҐஔʹͳΔ if ((location[i].x > width) || (location[i].x < 0)) { //͠ը໘ͷࠨӈʹ౸ୡͨ͠Β velocity[i].x *= -1; //XํͷεϐʔυΛస } if ((location[i].y > height) || (location[i].y < 0)) { //͠ը໘ͷ্Լʹ౸ୡͨ͠Β velocity[i].y *= -1; //YํͷεϐʔυΛస } } }
͘Γฦ͠ʹΑΔ૿৩ ‣
ࠓ͜͜·Ͱ