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
370
クリエイティブコーディングのための数学+JavaScript入門 三角関数と行列
feb19
January 07, 2016
Tweet
Share
More Decks by feb19
See All by feb19
WWDC や iOSDC, Droid Kaigi の動画でウォッチパーティしよう
feb19
0
2.1k
新しい API
feb19
21
8.4k
WWDC19 Design
feb19
1
8k
怖い WWDC
feb19
0
2.3k
事業を 0→1 または 1→10 するための UX/UI デザインエンジニアリング
feb19
3
1k
Web デザインのこれからを Material Design と Ionic から考えた
feb19
1
1k
デザインエンジニアリングことはじめ
feb19
2
2.3k
Other Decks in Programming
See All in Programming
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
300
外接に惑わされない自システムの処理時間SLIをOpenTelemetryで実現した話
kotaro7750
0
240
ビルドプロセスをデバッグしよう!
yt8492
0
290
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
5
2.4k
Amazon Bedrock Knowledge Bases Hands-on
konny0311
0
140
Kotlin + Power-Assert 言語組み込みならではのAssertion Library採用と運用ベストプラクティス by Kazuki Matsuda/Gen-AX
kazukima
0
110
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
140
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
400
Bakuraku E2E Scenario Test System Architecture #bakuraku_qa_study
teyamagu
PRO
0
690
乱雑なコードの整理から学ぶ設計の初歩
masuda220
PRO
27
8.1k
r2-image-worker
yusukebe
1
170
自動テストのアーキテクチャとその理由ー大規模ゲーム開発の場合ー
segadevtech
2
950
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
Fireside Chat
paigeccino
41
3.7k
Scaling GitHub
holman
463
140k
Building Adaptive Systems
keathley
44
2.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
920
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Writing Fast Ruby
sferik
630
62k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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