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
inureo
April 23, 2015
Programming
1
150
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
94
リアルタイム回答集計システムを作って、実際にイベントで使った話
inureo
1
810
はじめてのexpress+socket.io
inureo
1
4.1k
Other Decks in Programming
See All in Programming
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
Code Reviews
bkuhlmann
4
880
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
7
3.4k
せっかくモデル図描くのなら、嬉しいことが多い方がいいよね!
kuboaki
1
3.1k
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
340
ゆるい個人開発のススメ
kuroppe1819
10
930
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
プールにゆこう
irof
2
120
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
360
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
100
Ruby Function Composition
bkuhlmann
1
330
pixivアプリでマルチモジュールを実現するまで
gatosyocora
1
130
Featured
See All Featured
Done Done
chrislema
178
15k
The Language of Interfaces
destraynor
151
23k
Automating Front-end Workflow
addyosmani
1355
200k
Web development in the modern age
philhawksworth
202
10k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
A Tale of Four Properties
chriscoyier
150
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
2k
Adopting Sorbet at Scale
ufuk
67
8.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
Web Components: a chance to create the future
zenorocha
305
41k
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!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠