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
SVGアニメーションをやってみたら結構いい感じにできた話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
inureo
April 23, 2015
Programming
1
160
SVGアニメーションをやってみたら結構いい感じにできた話
inureo
April 23, 2015
Tweet
Share
More Decks by inureo
See All by inureo
IGNITION: What we did to provide a high-quality experience
inureo
0
110
リアルタイム回答集計システムを作って、実際にイベントで使った話
inureo
1
860
はじめてのexpress+socket.io
inureo
1
4.1k
Other Decks in Programming
See All in Programming
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
160
へんな働き方
yusukebe
5
2.8k
Codex の「自走力」を高める
yorifuji
0
1.3k
The free-lunch guide to idea circularity
hollycummins
0
320
CSC307 Lecture 14
javiergs
PRO
0
480
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
410
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
180
[SF Ruby Feb'26] The Silicon Heel
palkan
0
120
Windows on Ryzen and I
seosoft
0
350
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
100
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
150
Java 21/25 Virtual Threads 소개
debop
0
240
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
RailsConf 2023
tenderlove
30
1.4k
Mind Mapping
helmedeiros
PRO
1
130
Paper Plane (Part 1)
katiecoart
PRO
0
5.8k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
650
Faster Mobile Websites
deanohume
310
31k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Design in an AI World
tapps
0
180
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
410
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Transcript
SVGΞχϝʔγϣϯΛͬͯΈͨΒ ݁ߏ͍͍ײ͡ʹͰ͖ͨ גࣜձࣾnanapi ख௩ ྄ @inureo
ࣗݾհ ख௩ ྄ @inureo גࣜձࣾnanapi ΤϯδχΞ - άϥϑΟοΫσβΠϯͷઐֶߍΛଔۀ - Web੍࡞ձࣾ
5 - 201310݄ nanapiʹΤϯδχΞͱͯ͠ೖࣾ དྷྺ ※ ݩʑσβΠφʔͳͷͰϑϩϯτपΓ͕ಘҙ ϝΠϯͷۀͰRailsʴTypeScript+Markup ɹCapybara+PoltergeistͰE2Eςετ͕͖ʹͳΔ
ࠓ͍͑ͨ͜ͱ 47(Ξχϝʔγϣϯ ݁ߏΑ͘ͳ͍ʁ
ࠓ͍͑ͨ͜ͱ ࠓճ47(Λಈతʹ ಈ͔ͯ͠Έ͓ͨΛ͠·͢ʂ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ ԿΛ࡞ͬͯΔͷ͔
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ InTHEnetͷΦʔϓχϯάΞχϝʔγϣϯ InTHEnetͱ ౦ژϝτϩΦʔϓϯσʔλίϯςετʹԠืͨ͠ʮϝτ ϨϙʯɺYahoo!ϓϩτλΠϓίϯςετ’14 Ͱ४άϥ ϯϓϦɾUIΛ֫ಘͨ͠ʮϋϛΨίʯΛ࡞ͬͨνʔϜ
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ InTHEnetͷΦʔϓχϯάΞχϝʔγϣϯ InTHEnetͱ ౦ژϝτϩΦʔϓϯσʔλίϯςετʹԠืͨ͠ʮϝτ ϨϙʯɺYahoo!ϓϩτλΠϓίϯςετ’14 Ͱ४άϥ ϯϓϦɾUIΛ֫ಘͨ͠ʮϋϛΨίʯΛ࡞ͬͨνʔϜ σϞ
SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ *MMVTUSBUPSͷϊϦ͕௨͡Δ ɹɹɹɹɹ⾪ ɹɹTWHKTͱ͍͏ศརͳϥΠϒϥϦ ɹɹɹɹɹ⾫ ࠲ඪυϦϒϯΘ͔Γ͍͢ ɹɹɹ⾪ ɹɹԿΑΓ͍ܰ ɹɹɹ⾫ ʊਓਓਓਓਓਓʊ
ʼɹఱ࠽͔Αɹʻ ʉ?:?:?:?:?ʉ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ྑ͍ͱݴͬͯ Կ͕͍͍ͷ͔ʁ ͭ͋ΔΑʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 47(+4͕ศརʂ 47(+4ͱ͍͏ϥΠϒϥϦ͕͋ͬͯɺͦΕΛ͏ͱ DBOWBTฒʹ؆୯ʹ47(Λѻ͏͜ͱ͕Ͱ͖Δʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU ࢛֯Ͱ͖ͪΌ͏ʜQYQYͷʜ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU ࢛֯Ͱ͖ͪΌ͏ʜQYQYͷʜ TWHSFDU Y Z pMM b⒎⒎⒎` TUZMF bPQBDJUZ`
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ TWH47( TFMFDUPS TJ[F b ඳը͢Δ47(Λઃఆ͢ΔͰʔ TWHQPMZHPO
ࡾ֯Ͱ͖ͪΌ͏ʜ TWHSFDU ࢛֯Ͱ͖ͪΌ͏ʜQYQYͷʜ TWHSFDU Y Z pMM b⒎⒎⒎` TUZMF bPQBDJUZ` QYਖ਼ํܗ͔ͭ࠲ඪ͕ Ͱಁ໌ͳ࢛͕֯Ͱ͖Δ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ͪΖΜఆٛϑΝΠϧ͋ΔͷͰ 5ZQFTDSJQU͔͚ΔΑ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ΠϥϨͷਤܗΛͦͷ··͑Δʂ *MMVTUSBUPSͰਤܗΛ࡞ͬͯ47(Ͱอଘ͢Εɺ ෳࡶͳਤܗ1PMZHPOܗࣜʹͳΔͷͰ͍͍͢ʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ΠϥϨͷਤܗΛͦͷ··͑Δʂ *MMVTUSBUPSͰਤܗΛ࡞ͬͯ47(Ͱอଘ͢Εɺ ෳࡶͳਤܗ1PMZHPOܗࣜʹͳΔͷͰ͍͍͢ʂ ͨͩ͠ɺɺ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ಈతʹ࡞Δ߹ ࠲ඪΛྻͰ࣋ͭͷͰਏ͍
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ॻ͖ग़࣌͠ҙ 47(ॻ͖ग़࣌͠ʹ࠲ඪͷ খͷܻΛ૿ͯ͠ ͓͔ͳ͍ͱ൵͘͠ͳΔ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ খΛ૿͞ͳ͍ͱ͜͏ͳΔΑ σϞ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ খΛ૿͢ͱ͜͏ͳΔΑ σϞ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ૿ͯ͠ղܾ͠ͳ͍͜ͱ͋Δ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ͦ͏͍͏࣌*MMVTUSBUPSΈ͍ͨʹ ઢΛ͚ͭͯղܾ͢Δͱૣ͍ʜ TUZMF TUSPLF ⒎⒎⒎ TUZMF TUSPLFXJEUI
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ Ξχϝʔγϣϯ؆୯ʂ TWH@FMFNFOU BOJNBUF EVSBUJPO FBTJOH EFMBZ NPWF Y
Z ͜Ε͚ͩͰ͵Δ͵Δͬͱಈ͍ͪΌ͏ʜ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ Ξχϝʔγϣϯ؆୯ʂ TWH@FMFNFOU BOJNBUF EVSBUJPO FBTJOH EFMBZ NPWF Y
Z ͜Ε͚ͩͰ͵Δ͵Δͬͱಈ͍ͪΌ͏ʜ ͔͠ɺɺ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ ϨεϙϯγϒʹͰ͖ͪΌ͏ʂ *MMVTUSBUPSͷάϧʔϓԽͷΑ͏ʹɺ ΞχϝʔγϣϯΛHͰғͬͯάϧʔϓԽ͢Εɺ άϧʔϓશମΛTDBMFϝιουͰ֦େͰ͖ΔͷͰɺ DBOWBTͱҧͬͯɺࡉ͔͍ௐΛ͠ͳ͍͍ͯ͘ʂ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 1. SVG.JS͕ศརʂ 2. ΠϥϨͷਤܗͦͷ··͑Δʂ 3. Ξχϝʔγϣϯ͕؆୯ʂ ·ͱΊ
SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 1. SVG.JS͕ศརʂ 2. ΠϥϨͷਤܗͦͷ··͑Δʂ 3. Ξχϝʔγϣϯ͕؆୯ʂ ·ͱΊ ͱ͍͑ࠓճ*O5)&OFUͷϩΰͱ 47(Ξχϝʔγϣϯͷ૬ੑ͕
Α͔ͬͨײ͕ڧ͍ͷͰࢀߟ·Ͱʹʂ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
canvasͱൺͯΈΔ
canvasͱൺͯΈΔ DBOWBTॻ͍ͨ͜ͱ ͳ͔ͬͨʜ
canvasͱൺͯΈΔ ͰൺͯΈΔ w ϙΠϯτΛࢦఆͯ͠ΦϒδΣΫτ͕ඳըͰ͖Δ w $44Ͱมߋ͕Մೳ w ͭͷ1PMZHPOɺ3FDUɺ1BUI͕%0.ཁૉ w ֦େ͕؆୯ʢஔҐஔཁ੍ޚʣ
ϝϦοτ w ΦϒδΣΫτ͕ͭͣͭ%0.ʹͳΔͷͰɺΦϒ δΣΫτ͕૿͑Δͱॏͦ͏ σϝϦοτ
1. SVGΞχϝʔγϣϯ࡞ͬͯΔͳ͏ 2. SVGΞχϝʔγϣϯΛ࡞ΔϙΠϯτ 3. canvasͱൺͯΈΔ 4. ·ͱΊ ࠓͷΞδΣϯμ
·ͱΊ IllustratorϊϦͰͰ͖ΔͷͰ ෑډָ͕͍͍͠͠Αʙʂ օͰSVGΞχϝʔγϣϯ͠Α͏ʂ Sin! Cos! Tan!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠