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
クリエイティブコーディングのための数学+JavaScript入門 三角関数と行列
Search
feb19
January 07, 2016
Programming
0
310
クリエイティブコーディングのための数学+JavaScript入門 三角関数と行列
feb19
January 07, 2016
Tweet
Share
More Decks by feb19
See All by feb19
WWDC や iOSDC, Droid Kaigi の動画でウォッチパーティしよう
feb19
0
1.5k
新しい API
feb19
21
8.1k
WWDC19 Design
feb19
1
7.8k
怖い WWDC
feb19
0
2.1k
事業を 0→1 または 1→10 するための UX/UI デザインエンジニアリング
feb19
3
940
Web デザインのこれからを Material Design と Ionic から考えた
feb19
1
950
デザインエンジニアリングことはじめ
feb19
2
2.1k
Other Decks in Programming
See All in Programming
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
760
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
1
710
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
800
2 週間で Twitter Bot を作ってみた
contour_gara
0
500
使ってみよう Azure AI Document Intelligence
kosmosebi
2
320
VS Code をプロダクトにどう取り込むか
onomax
1
360
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
930
Snowflakeで眠ったデータを起こそう!
estie
0
120
Code Reviews
bkuhlmann
4
890
Polars入門
daikikatsuragawa
1
100
大規模UIKitベースアプリへのTCAの段階的導入/gradual-adoption-of-tca-in-a-large-scale-uikit-based-app
takehilo
1
180
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
GitHub's CSS Performance
jonrohan
1025
450k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
It's Worth the Effort
3n
180
27k
Facilitating Awesome Meetings
lara
42
5.6k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Typedesign – Prime Four
hannesfritz
36
2.1k
The Mythical Team-Month
searls
216
42k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
Designing Experiences People Love
moore
136
23k
Transcript
ΫϦΤΠςΟϒ ίʔσΟϯάͷͨΊͷ ֶʴ+BWB4DSJQUೖ ࡾ֯ؔͱߦྻ ৽य़εϖγϟϧ ͔ͨ͠ͷͿͻΖ ୈҰճΫϦΤΠςΟϒίʔσΟϯάษڧձʮϕΫτϧʯՌ ୈೋճΫϦΤΠςΟϒίʔσΟϯάษڧձʮྗʯՌ άϧʔϓలʮ3FqFDUJPOʯग़ల࡞ԋग़ άϧʔϓలʮVOGSBNFʯग़ల࡞ʰ3FOEBOʱ
ΫϦΤΠςΟϒίʔσΟϯάͰֶʁ w ύʔςΟΫϧΛࣗ༝ʹඈ͍ͨ͠ ˠͷܭࢉɺϕΫτϧɺҠಈྔܭࢉ w ৭Λࣗ༝ʹมԽ͍ͤͨ͞ ˠपظ֯ͷܭࢉɺೱ୶ͷ࿈ଓతมԽ w େྔͷΦϒδΣΫτʹμϯεͯ͠Β͍͍ͨ ˠ੍࣌ؒޚʢλΠϜϥϓεʣɺߴͳมܗܭࢉ
w δΣωϨΠςΟϒΞʔτΛ࡞Γ͍ͨ ˠֶΞϧΰϦζϜͷཧղ
ඪ ᶃ ࡾ֯ؔͱߦྻͰදݱʹ׆༻Ͱ͖Δ෦ΛΔ w શ෦ΒΜͰԿͱ͔ͳΔΘΑ ᶄ ֶࣜˠ+BWB4DSJQUҠ২Ͱ͖ΔΑ͏ʹͳΔ w ը૾ɺԻॲཧͷXJLJQFEJBจ͕׆༻Ͱ͖ ΔΑ͏ʹͳΓ·ͧ͢
Ұ෦ҙ༁͕͋Γ·͢ਖ਼֬ੑଞͷจݙΛࢀߟʹͯ͠Ͷ
ΞδΣϯμ ᶃ ؔͱ N ᶄ ࡾ֯ؔͱ N ᶅ
ࡾ֯ؔΛͬͨίʔσΟϯάମݧ N ᶆ ߦྻͱ N ᶇ ߦྻΛ࣮͢ΔίʔσΟϯάମݧ N ᶈ ࣗ༝ʹίʔσΟϯά N ᶉ ൃද N
ʮؔʯͱ w ॲཧͷ·ͱΊ w ύϥϝʔλʢҾʣΛͯ͠ɺ ฦΓΛฦͯ͘͠ΕΔʢ͜ͱ͋Δʣ
ʮؔʯͱ w ॲཧͷ·ͱΊ w ύϥϝʔλʢҾʣΛͯ͠ɺ ฦΓΛฦͯ͘͠ΕΔʢ͜ͱ͋Δʣ ֶಉ༷ʂ
ࡾ֯ؔʢֶ*ʣ
ʮࡾ֯ؔʯͱ ᶃ ֯ΛҾʹ͢ͱɺ͔ΒͷΛฦؔ͢ ᶄ ฦͯ͘͠ΕΔϥϯμϜͰͳ͘ ֯ͱؔੑ͕͋Δ
ʮࡾ֯ؔʯͱ ᶃ ֯ΛҾʹ͢ͱɺ͔ΒͷΛฦؔ͢ ᶄ ฦͯ͘͠ΕΔϥϯμϜͰͳ͘ ֯ͱؔੑ͕͋Δ දݱͰ͏ͷओʹαΠϯ TJO ͱίαΠϯ DPT
ͦΕͱύΠˠК<ʜ>Ͱ͋Δͱ͍͏ࣄ
αΠϯTJO Ҿ͕͍͘Β૿͑ͯʙͷΛ॥͢Δ w .BUITJO ˠ w .BUITJO К➗ <ʜ>ˠ
w .BUITJO К <ʜ>ˠ w .BUITJO К К➗ <ʜ>ˠ w .BUITJO К <>ˠ
αΠϯDPT Ҿ͕͍͘Β૿͑ͯʙͷΛ॥͢Δ К➗͚ͩฦΓ͕Φϑηοτ͞Ε͍ͯΔ w .BUIDPT ˠ w .BUIDPT К➗
<ʜ>ˠ w .BUIDPT К <ʜ>ˠ w .BUIDPT К К➗ <ʜ>ˠ w .BUIDPT К <>ˠ
TJOͱDPT ੨ɿTJOɹɿDPT IUUQHPPHMC.E(KM
՝ᶃɹTJODPTΛͬͯԿ͔࡞Δ ੍ w .BUITJO .BUIDPT Λ͏ ྫ w ޫ͕໌໓͢ΔΞχϝʔγϣϯ w
IUUQHPPHMRY3[) w TJODPTΛͬͯඳ͔ΕΔਤ w .BUI1*͍͍͔ͬͯ alpha = sin(count) x = cos(count)×10 y = sin(count)×10 ⎧ ⎨ ⎪ ⎩ ⎪
͓·͚ɿΞʔΫλϯδΣϯτBUBO ΞʔΫʙ͔Β֯ΛٻΊΔٯؔ w .BUIBUBO Z Y ˠК
ऄɿ.BUIBUBOͱ.BUIBUBO UBO୯ҐͰ͕॥͢Δ BUBO୯ҐͰΛฦ͢ BUBO͕Θ͔ΔΑ͏ɺΑ͠ͳʹͬͯ͘ΕΔ w .BUIUBO ˠ w .BUIUBO
ˠ
ߦྻʢֶ$ʣ
ʮߦྻʯͱ w ෳͷΛߦͱྻͰอ࣋͢Δྻ 3 5 ( ) 1 0 0
1 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ a 11 … a 1n ! " ! a m1 # a mn ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟
ʮߦྻʯͱ w ෳͷΛߦͱྻͰอ࣋͢Δྻ w දݱͰߦྻಉ࢜ͷܭࢉ·Ͱཧղ͕͋Δͱ͍͍ײ͡ 3 5 ( ) 1
0 0 1 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ a 11 … a 1n ! " ! a m1 # a mn ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ ⎟ ⎟
ߦྻͷܭࢉɿ߹ମʢDPODBUʣ M = 1 2 3 4 ⎛ ⎝ ⎜
⎞ ⎠ ⎟ 5 6 7 8 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟
ߦྻͷܭࢉɿ߹ମʢDPODBUʣ M = 1 2 3 4 ⎛ ⎝ ⎜
⎞ ⎠ ⎟ 5 6 7 8 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 1×5+2×7 1×6+2×8 3×5+4×7 3×6+4×8 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ ҰͭΊͷߦྻԣʹɺೋͭΊͷߦྻॎʹΛर͏ ύζϧΈ͍ͨͳײͩ͡Α
ߦྻͷܭࢉɿ߹ମʢDPODBUʣ M = 1 2 3 4 ⎛ ⎝ ⎜
⎞ ⎠ ⎟ 5 6 7 8 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 1×5+2×7 1×6+2×8 3×5+4×7 3×6+4×8 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = 19 22 43 50 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ ҰͭΊͷߦྻԣʹɺೋͭΊͷߦྻॎʹΛर͏ ܭࢉ্ग़ͯ͘Δߦྻ࠷খͷେ͖͞ʹͳΔ ύζϧΈ͍ͨͳײͩ͡Α
ߦྻͷܭࢉɿ߹ମʢDPODBUʣΛ൚Խ = A× E + B ×G A× F +
B × H C × E + D×G C × F + D× H ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ M = A B C D ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ E F G H ⎛ ⎝ ⎜ ⎞ ⎠ ⎟
ߦྻͷܭࢉɿ߹ମʢDPODBUʣΛ൚Խ ࿈ཱํఔࣜʹͯ͠ΈΔ = A× E + B ×G A× F
+ B × H C × E + D×G C × F + D× H ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ M = A B C D ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ E F G H ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ → a = A× E + B ×G b = A× F + B × H c = C × E + D×G d = C × F + D× H ⎧ ⎨ ⎪ ⎪ ⎩ ⎪ ⎪
ߦྻͷܭࢉɿ߹ମʢDPODBUʣΛ࣮ → a = A× E + B ×G b
= A× F + B × H c = C × E + D×G d = C × F + D× H ⎧ ⎨ ⎪ ⎪ ⎩ ⎪ ⎪ function concatMatrix(A, B, C, D, E, F, G, H) { ... return [a, b, c, d] } IUUQHPPHMF:NX&
ʮߦྻʯԿʹ͏Μ ೋ࣍ݩ࠲ඪ 9 : ࡾ࣍ݩ࠲ඪ 9 : ; ͷΑ͏ʹෳ ͷ͔ΒΔσʔλΛૢ࡞͢Δ߹༗ޮ
ྫɿʮ࠲ඪʯʹʮมߦྻʯΛՃ͑Δͱ ɹɹʮมܗʯ͕ߦ͑ΔʢҰ࣍มɺΞϑΟϯมʣ w ʮճసͷͨΊͷߦྻʯ SPUBUF w ʮҠಈͷͨΊͷߦྻʯ USBOTMBUF w ʮ֦େͷͨΊͷߦྻʯ TDBMF w ʮࣼͷͨΊͷߦྻʯ TLFX
՝ᶄɹճసߦྻΛ࣮͢Δ ɿ࠲ඪ ΛݪΛத৺ʹʢКʣճ సͤͨ͞࠲ඪΛϓϩάϥϜͰٻΊΑɻ ճసߦྻ Ұ࿈ཱํఔࣜʹ͢ΔͱϓϩάϥϜԽ͍͢͠Αʂ cosθ −sinθ
sinθ cosθ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ ′ P = cosθ −sinθ sinθ cosθ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ 5 10 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟
՝ᶄɹճసߦྻΛ࣮͢Δ ɿ࠲ඪ ΛݪΛத৺ʹʢКʣճ సͤͨ͞࠲ඪΛϓϩάϥϜͰٻΊΑɻ ճసߦྻ cosθ −sinθ sinθ
cosθ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ ′ P = cosθ −sinθ sinθ cosθ ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ 5 10 ⎛ ⎝ ⎜ ⎞ ⎠ ⎟ = cosθ ×5−sinθ ×10 sinθ ×5+cosθ ×10 IUUQHPPHMLO3R
՝ᶄ`ɹճసߦྻͰΞχϝʔγϣϯ Ͳͷ࠲ඪɾ֯ͰٻΊΒΕΔΑ͏ʹɺ՝ᶄͷΞϧ ΰϦζϜΛؔԽ͠ɺ֯Λ૿͍ͯ͘͠ͱճస͢Δ Α͏ͳΞχϝʔγϣϯΛ࡞͍ͯͩ͘͠͞ɻ IUUQHPPHM;9;Y/L
·ͱΊ ֶ͕ࣜಡΊΔΑ͏ʹͳΕ͍ΖΜͳจ͕δΣωϨ ΠςΟϒදݱͰ׆༻Ͱ͖ΔΑ͏ʹͳͬͯΔΑʂ ֶָ͍͠Αʂ
͓͚ͮ͘ w TJOͱDPTͷղઆͰ͔ͭͬͨΞχϝʔγϣϯ IUUQHPPHMC.E(KM w ՝ᶄճసߦྻΛ͔ͭͬͨΞχϝʔγϣϯ IUUQHPPHM;9;Y/L w ࢀߟɿલʹॻ͍ͨϒϩά IUUQDSFBUPSEFOBKQBSDIJWFTIUNM
w ࣜΤσΟλʔɿ.BUI5ZQF IUUQXXXEFTTDJDPNFOQSPEVDUTNBUIUZQF USJBMBTQ