RoughJS рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдлреНрд░реАрд╣реИрдВрдб рдбреНрд░рд╛рдЗрдВрдЧ рдХрд╛ рдЕрдиреБрдХрд░рдг

RoughJS рдПрдХ рдЫреЛрдЯрд╛ (< 9KB ) рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕реНрдХреЗрдЪ , рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рд╢реИрд▓реА рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ <canvas>рдФрд░ рд╕рд╛рде рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ SVGред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ RoughJS рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛


рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рд░реЗрдЦрд╛рдВрдХрди, рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдФрд░ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░реЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рд░реЛрдорд╛рдВрдЪрд┐рдд рд╣реЛрдХрд░, рдореИрдВрдиреЗ рдПрдХ рд╕рдЪреНрдЪреЗ рдмреЗрд╡рдХреВрдл рдХреА рддрд░рд╣ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛: рдХреНрдпрд╛ рдореИрдВ рдПрдХ рдХреЛрдб рдХреА рдорджрдж рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪрд┐рддреНрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд╣рд╛рде рд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирдХрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВрдиреЗ 2 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреА рдПрдХ рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд┐рдо - рд▓рд╛рдЗрдиреЛрдВ, рдмрд╣реБрднреБрдЬ, рджреАрд░реНрдШрд╡реГрддреНрдд рдФрд░ рдШрдЯрддрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рд░реЗрдЦрд╛рдВрдХрди рдФрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд░реЗрдЦрд╛рдВрдХрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЬреЛ рд╡реБрдб рдФрд░ рдЙрдирдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрдирд╛ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪрд░реА рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╛рдордХ рдПрдХ рд▓реЗрдЦ рдорд┐рд▓рд╛ ред рдЗрд╕рдореЗрдВ рд╡рд░реНрдгрд┐рдд рддрдХрдиреАрдХреЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЖрдзрд╛рд░ рдмрдиреАрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реЗрдЦрд╛рдУрдВ рдФрд░ рджреАрд░реНрдШрд╡реГрддреНрдд рдЦреАрдВрдЪрдиреЗ рдореЗрдВред

2017 рдореЗрдВ, рдореИрдВрдиреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрд╛, рдЬреЛ рдХреЗрд╡рд▓ рдХреИрдирд╡рд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рдЦреЛ рджреАред рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдПрд╕рд╡реАрдЬреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдлрдЬ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рднреА рдмрджрд▓ рджрд┐рдпрд╛, рдФрд░ рд╕рд░рд▓ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЖрджрд┐рдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рд╣реИрдХрд░ рдиреНрдпреВрдЬрд╝ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдФрд░ рдЕрдЪрд╛рдирдХ рдЗрд╕реЗ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдорд┐рд▓реАред 2018 рдореЗрдВ, рдпрд╣ рд╢реЛрдПрдЪрдПрди рдХрд╛ рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкрдж рдерд╛ ред

рддрдм рд╕реЗ, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ RoughJS рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдЪреАрдЬреЗрдВ рдмрдирд╛рдИ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдХреНрд▓реВрд╕рд┐рд╡реНрд░реЙ , рд╡реНрд╣рд╛рдИ рдХреИрдЯреНрд╕ рдПрдВрдб рдбреЙрдЧреНрд╕ ... , рд░рдлрд╡рд┐рдЬрд╝ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА ред

рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА ...

рдЕрд╕рдорддрд╛


рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдирдХрд▓ рдХрд╛ рдореВрд▓ рдЖрдзрд╛рд░ рдореМрдХрд╛ рд╣реИред рдЬрдм рд╣рдо рд╣рд╛рде рд╕реЗ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рднреА рджреЛ рдЖрдХрд╛рд░ рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред рдХреЛрдИ рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рдлрд╝рдЬреЗрдПрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рдирд┐рдХ рдмрд┐рдВрджреБ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдХрд╛ рдкрд░рд┐рдорд╛рдг рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ roughnessред


рдПрдХ рдмрд┐рдВрджреБ AрдФрд░ рдЙрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╡реГрддреНрдд рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ ред рдЕрдм AрдЗрд╕ рд╕рд░реНрдХрд▓ рдХреЗ рднреАрддрд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ ред рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рдХреЗ рдЗрд╕ рдЪрдХреНрд░ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ roughnessред

рдкрдВрдХреНрддрд┐рдпрд╛рдВ


рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдиреЗрдВ рдХрднреА рд╕реАрдзреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдореЛрдбрд╝ ( рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд ) рдореЗрдВ рд╡рдХреНрд░рддрд╛ рджрд┐рдЦрд╛рддреА рд╣реИрдВ ред рд╣рдо рдЦреБрд░рджрд░реЗрдкрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд╛рдЗрди рдХреЗ рджреЛ рдЫреЛрд░реЛрдВ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдо рдЦрдВрдб рдХреЗ рдЕрдВрдд рд╕реЗ рд▓рдЧрднрдЧ 50% рдФрд░ 75% рдХреА рджреВрд░реА рдкрд░ рджреЛ рдФрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рд╡рдХреНрд░ рдХреЗ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдЭреБрдХрдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдорд┐рд▓рддрд╛ рд╣реИ ред


рдЬрдм рд╣рд╛рде рд╕реЗ рдбреНрд░рд╛рдЗрдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдЧ рдХрднреА-рдХрднреА рдкреЗрдВрд╕рд┐рд▓ рдХреЛ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдпрд╛ рддреЛ рд▓рд╛рдЗрди рдХреЛ рдЙрдЬреНрдЬрд╡рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╛ рдмрд╕ рд▓рд╛рдЗрди рдХреА рд╕реАрдзреЗрдкрди рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рдПрдХ рд╕реНрдХреЗрдЪ рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, RoughJS рджреЛ рдмрд╛рд░ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЗрд╕ рдкрд╣рд▓реВ рдХреЛ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕ рдХреИрдирд╡рд╛рд╕ рдХреА рд╕рддрд╣ рдХреЛ рджреЗрдЦреЛред рдЦреБрд░рджрд░рд╛рдкрди рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:


рдХреИрдирд╡рд╛рд╕ рдкрд░ рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ, рдЖрдк рдЦреБрдж рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рд╛рде рд╕реЗ рдбреНрд░рд╛рдЗрдВрдЧ рдХрд░рддреЗ рд╕рдордп, рд▓рдВрдмреА рд▓рд╛рдЗрдиреЗрдВ рдЖрдорддреМрд░ рдкрд░ рдХрдо рд╕реАрдзреА рдФрд░ рдЕрдзрд┐рдХ рдШреБрдорд╛рд╡рджрд╛рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдпрд╣реА рд╣реИ, рдПрдХ рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдлрд╕реЗрдЯ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рдореВрд▓реНрдп рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рд╣реИ randomnessред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рд▓рдВрдмреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ, рдЧрд╛рдврд╝рд╛ рд╡рд░реНрдЧ рдПрдХ рд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмреАрдЬ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдХреГрддрд┐ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдкреИрдорд╛рдиреЗ рдХреЗ рд╕рд╛рдеред


рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмрд╛рд╣рд░реА рдЪреМрдХреЛрдВ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЕрд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд▓рд╛рдЗрди рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рднрд┐рдЧреЛрдирд╛ рдХрд╛рд░рдХ рднреА рдЬреЛрдбрд╝рд╛ред рдХреНрд╖реАрдгрди рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд▓рдВрдмрд╛рдИ рдкрд░ рдПрдХ рдЪрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдПрд▓рд┐рдкреНрд╕ (рдФрд░ рдордВрдбрд▓рд┐рдпрд╛рдВ)


рдХрд╛рдЧрдЬ рдХреА рдПрдХ рд╢реАрдЯ рд▓реЗ рд▓реЛ рдФрд░ рдПрдХ рдирд┐рд░рдВрддрд░ рдЧрддрд┐ рдореЗрдВ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдХреБрдЫ рд╣рд▓рдХреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:


рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реВрдк рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдмрд┐рдВрджреБ рд╣рдореЗрд╢рд╛ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред RoughJS рдЗрд╕ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдмрдирд╛ рджреЗрддрд╛ рд╣реИ (рддрдХрдиреАрдХ рдХреЛ рдЧреАрдЯрд░ рдХреЗ рд▓реЗрдЦ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ )ред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо nрджреАрд░реНрдШрд╡реГрддреНрдд рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рджреАрд░реНрдШрд╡реГрддреНрдд nрдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдХреЛ рдЙрд╕рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ roughnessред рдлрд┐рд░ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рдХреНрд░ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рд╕рд┐рд░реЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рджреВрд╕рд░реЗ рд╕реЗ рдЕрдВрддрд┐рдо рддрдХ рдХреЗ рдмрд┐рдВрджреБ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рдХреНрд░ рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдмрд┐рдВрджреБ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред


рдПрдХ рджреВрд╕рд░рд╛ рджреАрд░реНрдШрд╡реГрддреНрдд рднреА рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓реВрдк рдЕрдзрд┐рдХ рдмрдВрдж рд╣реЛ рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреЗрдЪ рдкреНрд░рднрд╛рд╡ рд╣реЛред

рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ, рдЖрдк рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХреИрдирд╡рд╛рд╕ рд╕рддрд╣ рдкрд░ рджреАрд░реНрдШрд╡реГрддреНрдд рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рднрд┐рдиреНрди рдЦреБрд░рджрд░рд╛рдкрди рдФрд░ рджреЗрдЦреЛ рдХрд┐ рдХреИрд╕реЗ рд░реВрдк рдмрджрд▓рддрд╛ рд╣реИ:


рд▓рд╛рдЗрди рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рдЙрдЪреНрдЪрд╛рд░рдг рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдпрджрд┐ рдХреБрдЫ рдЖрдХрд╛рд░ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд рдореЗрдВ, рдпрд╣ рдкреНрд░рднрд╛рд╡ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрдкрд╛рдд рджреНрд╡рд┐рдШрд╛рдд рд╣реИред рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ, рд╕рднреА рдордВрдбрд▓рд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рд▓реЛрдЧ рдЕрдзрд┐рдХ рдЕрд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВред


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд░реНрдХрд▓ рдореЗрдВ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ ( n)ред рдиреАрдЪреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рд╣рд▓рдХреЛрдВ рдХрд╛ рдПрдХ рд╣реА рд╕реЗрдЯ рд╣реИред


рднрд░рдирд╛


рдмрд┐рдВрджреАрджрд╛рд░ рд░реЗрдЦрд╛рдПрдВ рдЖрдорддреМрд░ рдкрд░ рд╣рд╛рде рд╕реЗ рддреИрдпрд╛рд░ рдЖрдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВ ред рдлреНрд░реАрд╣реИрдВрдб рд╕реНрдХреЗрдЪ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓рд╛рдЗрдиреЗрдВ рд╣рдореЗрд╢рд╛ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рднреАрддрд░ рдирд╣реАрдВ рд░рд╣рддреА рд╣реИрдВред рд╡реЗ рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрдВред рдШрдирддреНрд╡, рдХреЛрдг, рд░реЗрдЦрд╛ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╡рд░реНрдЧреЛрдВ рдХреЛ рднрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╡рддрд▓ рдмрд╣реБрднреБрдЬ (рдЬрд┐рд╕рдореЗрдВ рдХреЛрдг 180 ┬░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рдЕрдХреНрд╕рд░ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ:


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдКрдкрд░ рдХреА рдЫрд╡рд┐ рд░рдлрд╝рдЬреЗрдПрд╕ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд▓реА рдЧрдИ рд╣реИред рддрдм рд╕реЗ, рдореИрдВрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдХреИрдирд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдирд╛рдХрд░ рд╕реНрдЯреНрд░реЛрдХ рдлрд┐рд▓рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ ред рдХрд┐рд╕реА рднреА рдмрд╣реБрднреБрдЬ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдХреИрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛рдУрдВ (рд░реЗрдЦрд╛рдкреБрдВрдЬ рд▓рд╛рдЗрдиреЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрднреБрдЬ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рд╣реИред рд░реЗрд╕реНрдЯрд░ рд▓рд╛рдЗрдиреЗрдВ рдмрд╣реБрднреБрдЬ рдХреЗ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдЬрд╛рддреА рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛рдкреБрдВрдЬ рд░реЗрдЦрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рд╛рде рд░реЗрдЦрд╛ рдХрд┐рди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдХрд╛рдЯрддреА рд╣реИред рд╣рдо рдЗрди рдЪреМрд░рд╛рд╣реЗ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВред


рдмрд┐рдВрджреБ рд╕реЗ рдмрд┐рдВрджреБ рддрдХ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рднрд░рдиреЗ рдХреЗ рдореЛрдб рд╕реЗ рдЧреИрд░-рднрд░рдиреЗ рд╡рд╛рд▓реЗ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ; рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд░реЗрдЦрд╛рдкреБрдВрдЬ рд░реЗрдЦрд╛ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЪреМрд░рд╛рд╣реЗ рдмрд┐рдВрджреБ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕реАрдорд╛рд╡рд░реНрддреА рдорд╛рдорд▓реЛрдВ рдФрд░ рд╕реНрдХреИрдирд┐рдВрдЧ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: рдмрд╣реБрднреБрдЬ рдХрд╛ рд░реЗрдЦрд╛рдВрдХрди рдХрд░рдирд╛ , рдпрд╛ рдЫрджреНрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдХреИрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╡рд░рдг
() .

тАФ (Edge Table, ET), , Ymin. Ymin, Xmin.

тАФ (Active Edge Table, AET), , .

:

interface EdgeTableEntry {
  ymin: number;
  ymax: number;
  x: number; // Initialized to Xmin
  iSlope: number; // Inverse of the slope of the line: 1/m
}

interface ActiveEdgeTableEntry {
  scanlineY: number; // The y value of the scanline
  edge: EdgeTableEntry;
}

, :

1. y y ET. .

2. AET .

3. , AET, ET :

(a) ET y AET , ymin тЙд y.

(b) AET , y = ymax, AET x.

() y, x AET.

(d) y , , .. .

(e) , AET, x y (edge.x = edge.x + edge.iSlope)

рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ (рдореВрд▓ рд▓реЗрдЦ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЗрдВ), рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЖрдк рдмрд╣реБрднреБрдЬ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдиреЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреМрди рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓ рднрд░реЗ рдЬрд╛рдПрдВрдЧреЗред


рд╕реНрдЯреНрд░реЛрдХ рдореЗрдВ рднрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рд░реЗрдЦрд╛рдкреБрдВрдЬ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕реНрдЯреНрд░реЛрдХ рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рджрд┐рдП рдЧрдП рдШрдирддреНрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛рдкреБрдВрдЬ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХреЛрдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рдХреЛрдг рджреНрд╡рд╛рд░рд╛ рдЖрдХрд╛рд░ рдХреЛ рдШреБрдорд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдШреБрдорд╛рдП рдЧрдП рдЖрдВрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЦрд╛рдкреБрдВрдЬ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧрдгрдирд╛ рдХреА рдЧрдИ рд░реЗрдЦрд╛рдПрдВ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рдХреЛрдг рдкрд░ рд╡рд╛рдкрд╕ рдШреВрдорддреА рд╣реИрдВред


рд╕рд┐рд░реНрдл рд╕реНрдЯреНрд░реЛрдХреНрд╕ рднрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ


рд░рдлрдЬреЗрдПрд╕ рдЕрдиреНрдп рднрд░рдг рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рд╣реИрдЪрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдХреНрд░реЙрд╕ рд╣реИрдЪрд┐рдВрдЧ рдореЗрдВ рдПрдХ рдХреЛрдг рдкрд░ рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ angle, рдФрд░ рдлрд┐рд░ рдПрдХ рдХреЛрдг рдкрд░ рджреВрд╕рд░реА рд░реЗрдЦрд╛рдПрдБ angle + 90┬░ред Zigzag рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдбреЙрдЯ рдкреИрдЯрд░реНрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЫреЛрдЯреЗ рд╕рд░реНрдХрд▓ рдмрдирд╛рдПрдВред


рдШрдЯрддрд╛ рд╣реИ


RoughJS рдореЗрдВ рд╕рдм рдХреБрдЫ рдШрдЯрддрд╛-рдШрдЯрддрд╛-рдмрдврд╝рддрд╛ рд░рд╣рддрд╛ рд╣реИ - рд░реЗрдЦрд╛рдПрдВ, рдмрд╣реБрднреБрдЬ, рджреАрд░реНрдШрд╡реГрддреНрдд, рдЖрджрд┐ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдПрдХ рд╕реНрдХреЗрдЪ рд╡рдХреНрд░ рдмрдирд╛рдирд╛ рд╣реИред рд░рдлрд╝рдЬреЗрдПрд╕ рдореЗрдВ, рд╣рдо рдПрдХ рд╡рдХреНрд░ рдХреЗ рд▓рд┐рдП рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рд╡рдХреНрд░ рд╕рдиреНрдирд┐рдХрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдиреНрд╣реЗрдВ рдХреНрдпреВрдмрд┐рдХ рдмреЗрдЬрд╝рд┐рдпрд░ рдХрд░реНрд╡реНрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ ред

рдкреНрд░рддреНрдпреЗрдХ рдмреЗрдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░ рдореЗрдВ рджреЛ рдЕрдВрдд рдмрд┐рдВрджреБ рдФрд░ рджреЛ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рдХрд░ roughness, рдЖрдк рдЗрд╕реА рддрд░рд╣ "рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд" рд╡рдХреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╡рдХреНрд░ рднрд░рдирд╛


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдШрдЯрддрд╛ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпреБрддреНрдХреНрд░рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╡рдХреНрд░ рдПрдХ рдмрд╣реБрднреБрдЬ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИред рдмрд╣реБрднреБрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдШреБрдорд╛рд╡рджрд╛рд░ рдЖрдХреГрддрд┐ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рд╕реНрдХреИрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдХреНрдпреВрдмрд┐рдпрд░ рдмреЗрдЬрд┐рдпрд░ рд╡рдХреНрд░ рдХреЗ рд╕рдореАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд╡рдХреНрд░ рдкрд░ рдЕрдВрдХ рдХрд╛ рдирдореВрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред


рдпрджрд┐ рд╣рдо рдирдореВрдирд╛ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рдШрдирддреНрд╡ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЖрдВрдХрдбрд╝рд╛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдВрдХ рдорд┐рд▓рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╡рдХреНрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рддреЗрдЬ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдВрдХ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╡рдХреНрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓рдЧрднрдЧ рд╕реАрдзрд╛ рд╣реИ, рддреЛ рдХрдо рдЕрдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рд╕рдорд╛рдзрд╛рди рд╡рдХреНрд░ рдХреА рд╡рдХреНрд░рддрд╛ / рдЪрд┐рдХрдирд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдШреБрдорд╛рд╡рджрд╛рд░ рд╣реИ, рддреЛ рд╣рдо рд╡рдХреНрд░ рдХреЛ рджреЛ рдЫреЛрдЯреЗ рд╡рдХреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЪрд┐рдХрдирд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВрдЧреЗред рдЗрд╕ рдкреЛрд╕реНрдЯ

рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рдХреНрд░ рдХреА рдЪрд┐рдХрдирд╛рдИ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ ред рд╕рд╣рдирд╢реАрд▓рддрд╛ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЪрд┐рдХрдирд╛рдИ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рдирд┐рд░реНрдгрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рдХреНрд░ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣рд╛рдБ 0.7 рдХреЗ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╡рдХреНрд░ рд╣реИ:




рдЕрдХреЗрд▓реЗ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╡рдХреНрд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрдкрдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдпрд╣ рджреВрд░реА рдирд╛рдордХ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░реИрдорд░-рдбрдЧрд▓рд╕-рдкреАрдХрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреВрд░реА, рдХреЗ рдмрд░рд╛рдмрд░ , рдФрд░ 0.15, рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдЕрдВрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ ред0.751.53.0


рдЖрдХреГрддрд┐ рдХреА рдЦреБрд░рджрд░рд╛рдкрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ , рдЖрдк рдЙрдЪрд┐рдд рджреВрд░реА рдорд╛рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдмрд╣реБрднреБрдЬ рдХреЗ рд╕рднреА рдХреЛрдиреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдШреБрдорд╛рд╡рджрд╛рд░ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдПрд╕рд╡реАрдЬреА рд╕рд░реНрдХрд┐рдЯ


рдПрд╕рд╡реАрдЬреА рдХрдВрдЯреНрд░реЛрд╡рд░реНрд╕ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред

рд░рдлрдЬреЗрдПрд╕ рдорд╛рд░реНрдЧ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рддреАрди рдкрд░рд┐рдЪрд╛рд▓рди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ: рд╣рдЯреЛ , рд▓рд╛рдЗрди рдФрд░ рдХреНрдпреВрдмрд┐рдХ рдХрд░реНрд╡ ред ( рдкрд╛рде-рдбреЗрдЯрд╛-рдкрд╛рд░реНрд╕рд░ )ред рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рдбреНрд░рд╛рдЗрдВрдЧ рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдШрдЯрддрд╛ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрдХрдбрд╝рд╛ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреЙрдЗрдВрдЯ-рдСрди-рдкрде

рдкреИрдХреЗрдЬ рдкрдереЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкрде рдмрд┐рдВрджреБрдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рдХреНрд░ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдирдореВрдиреЗ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрде рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрд┐рдВрджреБ рдЧрдгрдирд╛ рд╣реИ M240,100c50,0,0,125,50,100s0,-125,50,-150s175,50,50,100s-175,50,-300,0s0,-125,50,-100s0,125,50,150s0,-100,50,-100:


рдПрдХ рдФрд░ рдПрд╕рд╡реАрдЬреА рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдореБрдЭреЗ рджрд┐рдЦрд╛рдирд╛ рдкрд╕рдВрдж рд╣реИ рд╡рд╣ рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ :


RoughJS рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ


рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдпрд╛ Github рдкрд░ рднрдВрдбрд╛рд░ рдпрд╛ API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЯреНрд╡рд┐рдЯрд░ @RoughLib рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ ред

All Articles