рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдиреЗ
рдкреЙрд▓реАрдЧреЙрди (рд╡реЛрдХреНрд╕ рдореАрдбрд┐рдпрд╛) рд╕реЗ рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рдЧреЗрдорд┐рдВрдЧ рдХрдВрд╕реЛрд▓ рдХреА рд╕рдореАрдХреНрд╖рд╛ рджреЗрдЦреА рд╣реИред рдпреЗ рд╡реЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╢рд╛рдиреНрддрд┐ рд╢реИрд▓реА рдореЗрдВ рдХрдиреНрд╕реЛрд▓ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдереЗ:
рд╕рдореАрдХреНрд╖рд╛ рд╢рд╛рдВрдд, рдмрд▓реНрдХрд┐ рдЕрд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдирдИ рд▓рдЧ рд░рд╣реА рдереАред рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ -
рдПрд╕рд╡реАрдЬреА рдПрдиреАрдореЗрд╢рди, рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдкреБрд░рд╛рдиреЗ "рдЧреБрдкреНрдд" рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ
рдПрд╕рд╡реАрдЬреА рджреНрд╡рд╛рд░рд╛
path
рддрддреНрд╡ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЫрд┐рдкреА рд╣реИрдВ - рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред
рд╕реНрдЯреНрд░реЛрдХ-рдбрд╢рд░рд░реЗ рдкреНрд░рдХреНрд╖реЗрдк, рд╕рд┐рджреНрдзрд╛рдВрдд
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓рд╛рдЗрди рдПрдиреАрдореЗрд╢рди рдХреА рддрдХрдиреАрдХ рдирдИ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рддрдХ
рдПрд╕рд╡реАрдЬреА рдФрд░ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рд╣рд░ рдЪреАрдЬ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЕрдирдЬрд╛рди рдереА, рд▓реЗрдХрд┐рди рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рд░рд╣реА рд╣реИред рддреЛ,
path
рддрддреНрд╡ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЪрд╛рд▓
path
рддрддреНрд╡ рдХреЗ
рд╕реНрдЯреНрд░реЛрдХ-рджрд╢рд╣рд░рд╛ рдЧреБрдг рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдЧреБрдг рдЖрдкрдХреЛ рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓ред рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрди рдХреА рдкреВрд░реА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдареЛрд╕ рд░реЗрдЦрд╛ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рд╣рдо рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд░рд╛рд▓ рдХреА рд▓рдВрдмрд╛рдИ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЗрди рдХреА рдкреВрд░реА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЕрджреГрд╢реНрдп рд░реЗрдЦрд╛ рдорд┐рд▓рддреА рд╣реИред рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреВрд░реЗ рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рдЕрдВрддрд░рд╛рд▓ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рдмрдврд╝рд╛рддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдЕрдВрдд рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рд╕реНрдЯреНрд░реЛрдХ-рдбреИрд╢рдСрдлрд╝рд╕реЗрдЯ ред рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдкрд╣рд▓реЗ рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рд▓рд┐рдП рдСрдлрд╕реЗрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдСрдлрд╕реЗрдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░реЗрдЦрд╛ рдХреЗ рдЕрдВрдд рд╕реЗ рдПрдХ рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рд╡реЛрдХреНрд╕ рдореАрдбрд┐рдпрд╛ рдХреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдПрдХ рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ (рдЬреЛ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмреЗрдорд╛рдиреА рд╣реИ), рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЙрдирдХреЗ рдмреНрд▓реЙрдЧ рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЬрд╝рд░реВрд░рдд рд╣реИ):
рдмрд╣реБрднреБрдЬ рдлрд╝реАрдЪрд░ рдбрд┐рдЬрд╝рд╛рдЗрди: рдордЬрд╝реЗ рдФрд░ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдПрд╕рд╡реАрдЬреА рдПрдирд┐рдореЗрд╢рди ред
рдПрд╕рд╡реАрдЬреА рдПрдирд┐рдореЗрд╢рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
Vox Media рдиреЗ рд╕реБрдЧрдо рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП
requestAnimationFrame
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ
рдЬрд╛рдПрдВрдЧреЗ ,
рдЗрд╕рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП
D3.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЕрд╡рдзрд┐-рдЖрдзрд╛рд░рд┐рдд рдПрдиреАрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдпрд╣рд╛рдБ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдХрдВрд╕реЛрд▓ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдХреЛрдб рд╣реИред
queue() .defer(d3.xml, "PS4.svg", "image/svg+xml") .await(ready); function ready(error, xml) {
transition(path)
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо
рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди tweenDash()
рдирд╛рдо, рдЯреНрд╡реАрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐
tweenDash()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд
tweenDash()
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рд╡реАрдЬреА
path
рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд
рдЧреЗрдЯрдЯреЛрдЯрд▓рдЯреНрд░рд┐рдХреНрд╕ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░,
d3.interpolateString (a, b) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
, stroke-dasharray
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ
stroke-dasharray
рдХреЛ
stroke-dasharray
, рдЬреЛ
stroke-dasharray: 0,l;
рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ
stroke-dasharray: 0,l;
stroke-dasharray: l,l;
рдкрд╣рд▓реЗ
stroke-dasharray: l,l;
(рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдореВрд▓реНрдп рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рджреВрд╕рд░рд╛ рдЕрдВрддрд░рд╛рд▓ рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣
bl.ocks.org рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
PlayStation 4: SVG рдПрдиреАрдореЗрд╢рди ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ рддрддреНрд╡ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ
path
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡реЗрдм рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреА рддреИрдпрд╛рд░реА рдФрд░ рдЕрдиреБрдХреВрд▓рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╡рд┐рд╖рдп рд╣реИ, рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрдВрдЧред
рдкрде рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдЖрдВрджреЛрд▓рди
path
рдХреА рдПрдХ рдФрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╡рд┐рдзрд┐ рд╣реИ -
getPointAtLength (рдлреНрд▓реЛрдЯ рдореЗрдВ рджреВрд░реА) ред рдпрд╣ рдЖрдкрдХреЛ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреВрд░реА рдкрд░ рд╕реНрдерд┐рдд рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдорд╛рд░реНрдХрд░ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рдореМрдЬреВрджрд╛ рд▓рд╛рдЗрди рдХреЗ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдХреЗ рдЪрд┐рдХрдиреА рд░реЛрдЯреЗрд╢рдиред
рдЪрд▓рд┐рдП рдмрд┐рдирд╛ рд▓рд╛рдЗрди рдХреЗ рдЪрд▓рддреЗ рд╣реБрдП рдмрд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
queue() .defer(d3.xml, "wiggle.svg", "image/svg+xml") .await(ready); function ready(error, xml) {
рдпрд╣рд╛рдВ
pathStartPoint(path)
path
рддрддреНрд╡ рдХреЗ
рдбреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЦреАрдВрдЪрддреА рд╣реИред TranslAlong
translateAlong(path)
рд╣рдорд╛рд░реЗ рдорд╛рд░реНрдХрд░
translateAlong(path)
рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдПрдХ рдЗрдВрдЯрд░рдкреЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдПрд╕рд╡реАрдЬреА рдкрде рддрддреНрд╡ рдХреЗ рд╕рд╛рде 3 рдбреА.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХрд░ рдПрдиреАрдореЗрд╢рди рдЖрдк рд▓рд╛рдЗрди рдбреНрд░рд╛рдЗрдВрдЧ рдПрдиреАрдореЗрд╢рди рдФрд░ рдорд╛рд░реНрдХрд░ рдЖрдВрджреЛрд▓рди рдХреЛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
рдПрд╕рд╡реАрдЬреА рдкрде рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХрд░ рдПрдиреАрдореЗрд╢рди D3.js II ред
рдЖрдЗрдП рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рд░реЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдФрд░ рд╕рд░реНрдХрд▓ рд╕реЗ рдорд╛рд░реНрдХрд░ рдХреЛ рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдореЗрдВ рдмрджрд▓ рджреЗрдВ)ред рдПрдХ рдорд╛рд░реНрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕
48
рдЪреМрдбрд╝рд╛рдИ рдФрд░
24
рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓рд╛ рдПрдХ рд░реЙрдХреЗрдЯ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рдорд╛рд░реНрдХрд░ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдВрдХрд░ рдкреЙрдЗрдВрдЯ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдСрдлрд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдВрдХрд░ рдорд╛рд░реНрдХрд░ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣реЛред рдЗрд╕реЗ рдШреБрдорд╛рддреЗ рд╕рдордп рдЗрд╕реЗ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рднреА рд╣реЛрддрд╛ рд╣реИред рд╡реЗ рдСрдлрд╕реЗрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рд╕реАрдзреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ
рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рдХреА
рдкрд░рд┐рднрд╛рд╖рд╛ рд╣рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА, рд╣рдо рдЪрд╛рдк рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдг рдХрд╛
рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВрдЧреЗред
рдЗрдВрдЯрд░рдкреЛрд▓рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛
translateAlong(path)
рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
function translateAlong(path) { var l = path.getTotalLength(); var t0 = 0; return function(i) { return function(t) { var p0 = path.getPointAtLength(t0 * l);
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ:
D3.js III рдХреЗ рд╕рд╛рде SVG рдкрде рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХрд░ рдПрдиреАрдореЗрд╢рди ред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдФрд░ рдХрд┐рд╕ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдк рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реБрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдкрд╛рда рдХрд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдХреНрд╖рд░ рдПрдХ рдЕрд▓рдЧ
path
рддрддреНрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВред
рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░реЗрдЦ рдФрд░ рдпреЛрдЬрдирд╛рдУрдВ (рддреАрд░реЛрдВ рдХрд╛ рдПрдиреАрдореЗрд╢рди, рдЖрджрд┐) рдкрд░ рдорд╛рд░реНрдЧреЛрдВ рдХреА рдЧрддрд┐ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдФрд░ рдЗрдиреНрдлреЛрдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рднреА, рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЕрдЧрд░ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╛рдардХ рдХреЗ рдзреНрдпрд╛рди рдХреЛ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╣ рд╕рдм рд╣реИред рдХреЛрд╢рд┐рд╢ рдХрд░реЛ, рдкреНрд░рдпреЛрдЧ рдХрд░реЛ, рд╕реГрдЬрди рдХрд░реЛ - рд╕рдм рдХреБрдЫ рддреБрдореНрд╣рд╛рд░реЗ рд╣рд╛рде рдореЗрдВ рд╣реИред рдФрд░ рдЗрд╕ рд╕рд╛рд▓ рдЖрдкрдХрд╛ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпреБрдкреАрдбреА:рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рд▓реЗрдЦ: