рдПрдХ рдФрд░ рдЧрд╛рдЗрдб рдХреНрдпреЛрдВ?
рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореМрдЬреВрджрд╛ рдореИрдиреБрдЕрд▓ рдХреЗрд╡рд▓ рдореВрд▓ рдмрд╛рддреЗрдВ рдорд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рдкреВрд░реНрдг рдХреИрдирд╡рд╛рд╕ рдЧрд╛рдЗрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдпрд╛ рд╡реЗ рдЕрдХреНрд╕рд░ рд╕рд╛рдзрд╛рд░рдг рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ)ред
рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЦреЛрдЬ рдЗрдВрдЬрди рд╕реЗ рдЖрдпрд╛ рдерд╛
рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡
рдХреИрдирд╡рд╛рд╕ рддрддреНрд╡ рдХрд╛ рдирд╛рдо 'рдХреИрдирд╡рд╛рд╕' (рдареАрдХ рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛) рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ 'рдЪреМрдбрд╝рд╛рдИ' рдФрд░ 'рдКрдБрдЪрд╛рдИ', рдФрд░ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ 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()
рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ (рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП)
рд╕реНрдЯрд╛рдЗрд▓рд╛рдЗрдЬреЗрд╢рди, рдЧреНрд░реЗрдбрд┐рдПрдВрдЯреНрд╕ рдФрд░ рд╢реИрдбреЛред
рдЪрд┐рддреНрд░ рдФрд░ рдкрд╛рда рдЦреАрдВрдЪрдирд╛
рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рд╕рдВрд░рдЪрдирд╛
рдПрдиреАрдореЗрд╢рди рдФрд░ рд╣реЗрд░рдлреЗрд░ рдЫрд╡рд┐рдбрдЯрд╛