рдПрдХ рдФрд░ рдХреИрдирд╡рд╕ рдЧрд╛рдЗрдб [1]: рдХреИрдирд╡рд╕ рддрддреНрд╡, рдЖрдпрддреЗрдВ, рд░рд╛рд╕реНрддреЗ

рдПрдХ рдФрд░ рдЧрд╛рдЗрдб рдХреНрдпреЛрдВ?


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

рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЦреЛрдЬ рдЗрдВрдЬрди рд╕реЗ рдЖрдпрд╛ рдерд╛

рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡


рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡ рдХрд╛ рдирд╛рдо 'рдХреИрдирд╡рд╛рд╕' (рдареАрдХ рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛) рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ 'рдЪреМрдбрд╝рд╛рдИ' рдФрд░ 'рдКрдБрдЪрд╛рдИ', рдФрд░ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ CSS рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдБрдЪрд╛рдИ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреИрдирд╡рд╛рд╕ рдХреЗ рд╕рдордиреНрд╡рдп рд╡рд┐рдорд╛рди рдкрд░ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░ рдкрд╛рда рдХреЛ рдХреИрдирд╡рд╛рд╕ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреИрдирд╡рд╛рд╕ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд▓реИрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
<!doctype html> <html> <head> <title> </title> </head> <body> <canvas id="cnv" width="600" height="600">  </canvas> <script type="text/javascript" src='your_file.js'></script> </body> </html> 


рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЖрд░реЗрдЦрдг рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ '2d' рддрд░реНрдХ рдХреЗ рд╕рд╛рде getContext рддрддреНрд╡ рдХреЗ рдХреИрдирд╡рд╛рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВред
 var ctx = document.getElementById('cnv').getContext('2d') 


рдЖрдпрддреЛрдВ


рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдЖрдпрдд рдПрдХрдорд╛рддреНрд░ рдЖрджрд┐рдо рд╣реИред рдЖрдпрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 3 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред

рдЖрдпрдд рднрд░реЗрдВ


fillRect - рдПрдХ рднрд░рд╛ рд╣реБрдЖ рдЖрдпрдд рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рддрд░реНрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
 fillRect(float x, float y, float w, float h) 

рдЬрд╣рд╛рдВ x рдФрд░ y рдХреНрд░рдорд╢рдГ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ, рдФрд░ w рдФрд░ h рдХреНрд░рдорд╢рдГ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВред
 ctx.fillRect(200, 250, 200, 100) 

рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдХреИрдирд╡рд╛рд╕ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ 200 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ 100 рдкрд┐рдХреНрд╕рд▓ рдХреА рдКрдВрдЪрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрдд рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд░реНрдХрд▓ рдЖрдпрдд


stroRect - рдлрд┐рд▓рд░рдХреНрдЯ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрд╣ рдЖрдпрдд рдХреЛ рдирд╣реАрдВ рднрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдХрдВрдЯреНрд░реЛрд▓реНрд╕ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВред
 ctx.strokeRect(150, 200, 300, 200) 

рдЕрдм, рднрд░реА рд╣реБрдИ рдЖрдпрдд рдХреЗ рдЖрд╕рдкрд╛рд╕, рд╣рдордиреЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЖрдХреГрддрд┐ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред

рдЖрдпрдд рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВ


ClearRect - рдПрдХ рд╣реА рддрд░реНрдХ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рднрд╛рдЗрдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрд╣ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдХреБрдЫ рдкрд╣рд▓реЗ рдерд╛, рдЙрд╕реЗ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдордиреЗ рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИред рдЪрд▓реЛ рднрд░реЗ рд╣реБрдП рдЖрдпрдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдЯрд╛ рджреЗрдВ,
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:
 ctx.clearRect(350, 300, 50, 50) 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рднрд░реЗ рд╣реБрдП рдЖрдпрдд рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрд╛рдЯ рджреЗрддреЗ рд╣реИрдВред

рд░рд╛рд╕реНрддрд╛


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

рд░рд╛рд╕реНрддрд╛ рд╢реБрд░реВ рдХрд░реЛ


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

рд╣рдо рдмрд┐рдВрджреБ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ


 moveTo(float x, float y) 
- рдХрд░реНрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ (x; y) рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
 ctx.moveTo(200,200) 

рдмрд┐рдВрджреБ рдкрд░ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪреЗрдВ


 lineTo(float x, float y) 
- рдХрд░реНрд╕рд░ рд╕реНрдерд┐рддрд┐ рд╕реЗ (x; y) рддрдХ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
 ctx.lineTo(400,400) 

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


рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХреИрдирд╡рд╛рд╕ рдкрд░ рд▓рд╛рдЗрди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЛрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдХреЙрд▓ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
 ctx.stroke() 

рдЕрдм, рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪреА рдЧрдИ рд╣реИред

рддрд╛рд▓рд╛


рдпрджрд┐ рд╣рдо рдХреБрдЫ рдЖрдХреГрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреНрд▓реЛрдЬрдкрд╛рде рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рддреНрд░рд┐рднреБрдЬ рдмрдирд╛рдПрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╡рд╣рд╛рдВ рдбрд╛рд▓реЗрдВрдЧреЗ:
 ctx.beginPath() ctx.moveTo(200,200) ctx.lineTo(400,400) ctx.lineTo(200,400) ctx.closePath() ctx.stroke() 

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

рдореЗрдВ рднрд░реЗрдВ


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

рдбрдЧ



 arc(float x, float y, float r, float startAngle, float endAngle, bool anticlockwise) 
- рдмрд┐рдВрджреБ (x; y), рддреНрд░рд┐рдЬреНрдпрд╛ - r, рдкреНрд░рд╛рд░рдВрдн рдХреЛрдг рдФрд░ рдЕрдВрдд рдореЗрдВ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдЪрд╛рдк рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ, EndAngle, рдФрд░ рдпрджрд┐ anticlockwise = true рд╣реИ, рддреЛ рд╡реГрддреНрдд рдХрд╛ рднрд╛рдЧ рд╡рд╛рдорд╛рд╡рд░реНрдд, рдЕрдиреНрдпрдерд╛ рдЙрд╕рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
:
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╡реГрддреНрдд рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВред
 ctx.beginPath() ctx.arc(200,300,70,0,Math.PI*0.85,false) ctx.stroke() ctx.beginPath() ctx.arc(200,300,70,0,Math.PI*0.85,true) ctx.fill() 

рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЖрд░реНрдХреНрд╕



 arcTo(float x1, float y1, float x2, float y2. float r) 
- рджреЛ рдЦрдВрдбреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд▓рдЧреНрди рддреНрд░рд┐рдЬреНрдпрд╛ r рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд╛рдк рдЦреАрдВрдЪреЗрдВ - AB рдФрд░ BC, рдЬрд╣рд╛рдВ рдмрд┐рдВрджреБ A рдХрд░реНрд╕рд░ рд╕реНрдерд┐рддрд┐ рд╣реИ, B = = (X1; y1) C = (x2; y2);
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 ctx.beginPath() ctx.moveTo(200,300) ctx.arcTo(300,100,400,300,50) ctx.stroke() 


рджреНрд╡рд┐рдШрд╛рдд рд╡рдХреНрд░



 quadraticCurveTo(float x1, float y1, float x2, float y2) 
- рддреАрди рдмрд┐рдВрджреБрдУрдВ (рдХрд░реНрд╕рд░ рд╕реНрдерд┐рддрд┐, (X1; y1), (x2; y2)) рджреНрд╡рд╛рд░рд╛ рдЧрдард┐рдд рджреНрд╡рд┐рдШрд╛рдд рд╡рдХреНрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдХреНрдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ:

 ctx.beginPath() ctx.moveTo(100,100) ctx.quadraticCurveTo(200,200,50,200) ctx.stroke() 


рдмреЗрдЬрд┐рдпрд░ рдШрдЯрддрд╛ рд╣реИ



 bezierCurveTo(float x1, float y1, float x2, float y2, float x3, float y3) 
- рдШрди рдмреЗрдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░ рдЦреАрдВрдЪрдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
 ctx.beginPath() ctx.moveTo(100,100) ctx.bezierCurveTo(200,200,100,300,50,100) ctx.stroke() 


рдЖрдпрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ


 rect(float x, float y, float w, float w) 
- FillRect рдФрд░ рд╕реНрдЯреНрд░реЛрдХRect рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХреЗрд╡рд▓ рдкрде рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдпрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЕрдм рдЬрдм рд╣рдордиреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдкрдереЛрдВ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦ рд▓реА рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рджреЛ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реАрдЦрдиреЗ рд╣реЛрдВрдЧреЗред

рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рд╣реИ?


 isPointInPath(float x, float y) 
- рд╕рд╣реА рд╣реИ рдЕрдЧрд░ рд╕рдВрдЪрд░рд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдмрд┐рдВрджреБ рдЕрдВрджрд░ рд╣реИред рдЗрд╕ рдЖрдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЖрдХреГрддрд┐ рдкрд░ рдХреНрд▓рд┐рдХ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рднреА рдорд╛рдиреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 ctx.beginPath() ctx.rect(200,200,100,200) console.log(ctx.isPointInPath(250,250)) console.log(ctx.isPointInPath(100,100)) 

рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рд▓реЗ рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓ рдкрд░ рд╕рд╣реА рдФрд░ рдлрд┐рд░ рдЕрд╕рддреНрдп рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдбреНрд░рд╛рдЗрдВрдЧ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ



рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЛрдХ рдФрд░ рднрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд▓рд┐рдк рдлрд╝рдВрдХреНрд╢рди рднреА рд╣реИ, рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ рдХреЛ рдХреЗрд╡рд▓ рддрдм рд╣реА рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╡рд╣ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реЛ рдЬрд╣рд╛рдВ рдкрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдЗрдП рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ:
 ctx.beginPath() ctx.arc(200,300,70,0,Math.PI*2,true) ctx.stroke() //       ctx.clip() //      ctx.beginPath() ctx.moveTo(100,320) ctx.lineTo(500,320) ctx.lineTo(100,250) ctx.stroke() //  ,         


рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ (рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП)


рд╕реНрдЯрд╛рдЗрд▓рд╛рдЗрдЬреЗрд╢рди, рдЧреНрд░реЗрдбрд┐рдПрдВрдЯреНрд╕ рдФрд░ рд╢реИрдбреЛред
рдЪрд┐рддреНрд░ рдФрд░ рдкрд╛рда рдЦреАрдВрдЪрдирд╛
рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рд╕рдВрд░рдЪрдирд╛
рдПрдиреАрдореЗрд╢рди рдФрд░ рд╣реЗрд░рдлреЗрд░ рдЫрд╡рд┐рдбрдЯрд╛

Source: https://habr.com/ru/post/In119238/


All Articles