CANVAS рдХрджрдо рд╕реЗ рдХрджрдо: рдореВрд▓ рдмрд╛рддреЗрдВ

CANVAS рдХрджрдо рд╕реЗ рдХрджрдо:

  1. рдореВрд▓ рдмрд╛рддреЗрдВ
  2. рдЫрд╡рд┐
  3. рдкреЛрдВрдЧ
  4. рдЯреИрдЧ


рдпрджрд┐ рдЖрдк рдЕрдВрдЧреНрд░реЗрдЬреА-рд░реВрд╕реА рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдорд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдХреИрдирд╡рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдЯреИрдЧ рдПрдХ HTML 5 рддрддреНрд╡ рд╣реИ рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рдЯрдореИрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдЯрдореИрдк рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдореЗрд░реЗ рдЫреЛрдЯреЗ рдкрд╛рда рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕ рдХрдард┐рди рдХрд╛рд░реНрдп рдореЗрдВ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рдХрд┐ HTML рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕ рдЪреАрдЬ рдХреЗ рд╕рд╛рде рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рд╣рдорд╛рд░реЗ рдХреИрдирд╡рд╛рд╕ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ "рдЯреНрдпреВрдирд┐рдВрдЧ"



рд╣рдорд╛рд░реЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЯреИрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ - рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ, рдКрдБрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ, рдХреНрд░рдорд╢рдГ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЖрдХрд╛рд░ 150x300 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рдВрджрд░реНрднреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреА рд╣реИред

рдкреНрд░рд╛рдердорд┐рдХ рдЙрджрд╛рд╣рд░рдг:

<!doctype html> <html> <head> <title>canvasExample</title> <meta charset='utf-8' /> </head> <body> <canvas height='320' width='480' id='example'> </canvas> <script> var example = document.getElementById("example"), ctx = example.getContext('2d'); ctx.fillRect(0, 0, example.width, example.height); </script> </body> </html>
      
      





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



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



рд╕рдмрд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрдВрдХрдбрд╝рд╛ рдЬреЛ рдЖрдк рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдЖрдпрдд рд╣реИред рдЖрдпрддреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдХрд╛рд░реНрдп рд╣реИрдВред

 strokeRect(x, y, , ) //   fillRect(x, y, , ) //    clearRect(x, y, , ) //         
      
      





рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 <!doctype html> <html> <head> <title>rectExample</title> <meta charset='utf-8' /> </head> <body> <canvas id='example'> </canvas> <script> var example = document.getElementById("example"), ctx = example.getContext('2d'); example.width = 640; example.height = 480; ctx.strokeRect(15, 15, 266, 266); ctx.strokeRect(18, 18, 260, 260); ctx.fillRect(20, 20, 256, 256); for (i = 0; i < 8; i += 2) for (j = 0; j < 8; j += 2) { ctx.clearRect(20 + i * 32, 20 + j * 32, 32, 32); ctx.clearRect(20 + (i + 1) * 32, 20 + (j + 1) * 32, 32, 32); } </script> </body> </html>
      
      





рдФрд░ рдЕрдм рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд▓рд╛рдЗрди-рдмрд╛рдп-рд▓рд╛рдЗрди рдкрд╛рд░реНрд╕рд┐рдВрдЧ:

10 рдФрд░ 11 рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдордиреЗ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛ - рддрд╛рдХрд┐ рдЬрд┐рд╕ рдЫрд╡рд┐ рдХреА рд╣рдордиреЗ рдХрд▓реНрдкрдирд╛ рдХреА рдереА, рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ;

рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ 12 рдФрд░ 13 рд╣рдо рджреЛ рдЕрдзреВрд░реЗ рдЖрдпрддреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ "рдЪреМрдЦрдЯ" рдХреЗ рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдлреНрд░реЗрдо рдХрд╛ рдкреНрд░рддреАрдХ рд╣реЛрдЧрд╛,

рдкрдВрдХреНрддрд┐ 14 рдореЗрдВ рд╣рдо рдПрдХ рднрд░реА рд╣реБрдИ рдЖрдпрдд рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ 64 рд╡рд░реНрдЧреЛрдВ рдХреЛ 32 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рд╛рдЗрдб рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреА,

15-19 рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЪрдХреНрд░ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдХреНрд░рдо рдореЗрдВ рдПрдХ рдХрд╛рд▓реЗ рдЖрдпрдд рдкрд░ рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╡рд┐ рдПрдХ рдЪреМрдЦрдЯреЗ рдХреА рддрд░рд╣ рджрд┐рдЦреЗ



рд░реЗрдЦрд╛рдПрдБ рдФрд░ рдЪрд╛рдк



рд░реЗрдЦрд╛рдУрдВ рд╕реЗ рдмрдиреА рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХрдИ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 beginPath() closePath() stroke() fill()
      
      





StartPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЖрдХреГрддрд┐ рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ "рд╢реБрд░реВ" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рдХреЙрд▓ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ "рдбреНрд░реЙ" рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред

рдХреНрд▓реЛрдЬрдкрд╛рде рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреНрд░рд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрдХрд░ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╡реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

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

рдЬреЛ рд▓реЛрдЧ рдкреБрд░рд╛рдиреЗ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА 486x рд╕реНрдХреВрд▓ рдореЗрдВ рдПрдХ рдШрд░, рдПрдХ рдмрд╛рдбрд╝ рдФрд░ рдПрдХ рдкреЗрдбрд╝ рдЦреАрдВрдЪрддреЗ рдереЗ, рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд╣ рддреБрд░рдВрдд рдиреАрдЪреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗред рддреЛ, рдЬреИрд╕реЗ рддрд░реАрдХреЗ рд╣реИрдВ

 moveTo(x, y) //  ""   x, y     lineTo(x, y) //       ,       arc(x, y, radius, startAngle, endAngle, anticlockwise) //  ,  x  y  ,     ,    
      
      





рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рдХрд╛ рдкреНрд░рднрд╛рд╡ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 <!doctype html> <html> <head> <title>pathExample</title> <meta charset='utf-8' /> </head> <body> <canvas id='example'> </canvas> <script> var example = document.getElementById("example"), ctx = example.getContext('2d'); example.height = 480; example.width = 640; ctx.beginPath(); ctx.arc(80, 100, 56, 3/4 * Math.PI, 1/4 * Math.PI, true); ctx.fill(); // *14 ctx.moveTo(40, 140); ctx.lineTo(20, 40); ctx.lineTo(60, 100); ctx.lineTo(80, 20); ctx.lineTo(100, 100); ctx.lineTo(140, 40); ctx.lineTo(120, 140); ctx.stroke(); // *22 </script> </body> </html>
      
      





рд▓рд╛рдЗрди 14 рдЖрд░реНрдХ рдХреЗ рд░рдВрдЧ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИ, рд▓рд╛рдЗрди 22 рд╣рдорд╛рд░реЗ рдореБрдХреБрдЯ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдЦреАрдВрдЪрддреА рд╣реИред



рдмрд░реНрдирд╕реНрдЯреАрди-рдмреЗрдЬрд╝рд┐рдпрд░ рдХрд░реНрд╡реНрд╕



рдмреЗрдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░ рдХреНрдпрд╛ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдмреЗрд╣рддрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдЧрд╛ред

рджреЛ рдХрд╛рд░реНрдп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрд░рдорд╢: рдШрди рдмрд┐рдЬрд╝рд┐рдпрд░ рд╡рдХреНрд░ рдФрд░ рдПрдХ рджреНрд╡рд┐рдШрд╛рдд рд╡рдХреНрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

 quadraticCurveTo(Px, Py, x, y) bezierCurveTo(P1x, P1y, P2x, P2y, x, y)
      
      





x рдФрд░ y рдРрд╕реЗ рдмрд┐рдВрджреБ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдЬрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рджреНрд╡рд┐рдШрд╛рдд рд╡рдХреНрд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ P (Px, Py) рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рдВрджреБ рд╣реИрдВ рдЬреЛ рд╡рдХреНрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдШрди рд╡рдХреНрд░ рдореЗрдВ, рдХреНрд░рдорд╢рдГ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдВрдХред

рджреЛ рдШрдЯрддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 <!doctype html> <html> <head> <title>curveExample</title> <meta charset='utf-8' /> </head> <body> <canvas id='example'> </canvas> <script> var example = document.getElementById("example"), ctx = example.getContext('2d'); example.height = 480; example.width = 640; ctx.beginPath(); ctx.moveTo(10, 15); ctx.bezierCurveTo(75, 55, 175, 20, 250, 15); ctx.moveTo(10, 15); ctx.quadraticCurveTo(100, 100, 250, 15); ctx.stroke(); </script> </body> </html>
      
      





рд░рдВрдЧ рдЬреЛрдбрд╝реЗрдВ



рдпрд╣ рдХрд┐ рд╣рдорд╛рд░реА рдЫрд╡рд┐ рдХреЗрд╡рд▓ рджреЛ рд░рдВрдЧреЛрдВ рдХреА рдирд╣реАрдВ рд╣реЛрдЧреА, рдмрд▓реНрдХрд┐ рдХреЛрдИ рднреА рд░рдВрдЧ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рджреЛ рдЧреБрдг

 fillStyle = color //    strokeStyle = color //          css,       
      
      





рд░рдВрдЧ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЪрд╛рд░ рддрд░реАрдХреЗ

 //        ctx.fillStyle = "orange"; ctx.fillStyle = "#FFA500"; ctx.fillStyle = "rgb(255,165,0)"; ctx.fillStyle = "rgba(255,165,0,1)"
      
      





рдЗрд╕реА рддрд░рд╣, рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╢рддрд░рдВрдЬ рдХреА рдмрд┐рд╕рд╛рдд рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рд░рдВрдЧ рдЬреЛрдбрд╝реЗрдВ:

 <!doctype html> <html> <head> <title>rectExample</title> <meta charset='utf-8' /> </head> <body> <canvas id='example'> </canvas> <script> var example = document.getElementById("example"), ctx = example.getContext('2d'); example.height = 480; example.width = 640; ctx.strokeStyle = '#B70A02'; //    ctx.strokeRect(15, 15, 266, 266); ctx.strokeRect(18, 18, 260, 260); ctx.fillStyle = '#AF5200'; //    ctx.fillRect(20, 20, 256, 256); for (i = 0; i < 8; i += 2) for (j = 0; j < 8; j += 2) { ctx.clearRect(20 + i * 32, 20 + j * 32, 32, 32); ctx.clearRect(20 + (i + 1) * 32, 20 + (j + 1) * 32, 32, 32); } </script> </body> </html>
      
      





рдХрд╛рд░реНрдп



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

рдореИрдВрдиреЗ рдмреИрдЯрд▓рдЪрд┐рдЯ рдЧреЗрдо рдХреЗ рд╕реНрддрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреБрди: рдЯреИрдирд┐рдХреА рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ , рдФрд░ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреЗрд╕реНрдЯреЗрдмрд┐рди рдХреА рдПрдХ рдХрдбрд╝реА рд╣реИ ред

рдЕрдВрдд рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреАред рдбреЗрдВрдбреА рдЬреЛ рддрд╕реНрд╡реАрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ, рд╕реНрдХреНрд░реАрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди 256 ├Ч 240 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╕рд┐рджреНрдз рддрдВрдЪрд┐рдХреА рдЖрдХрд╛рд░ 13h13 рдмрдбрд╝реЗ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдпреБрджреНрдз рдХрд╛ рдореИрджрд╛рдиред рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ 4 рд░рд┐рдкреАрдЯ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬрд┐рдирдореЗрдВ рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, 26x26 = 676 рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ)ред рддреЛ рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдпрд╣ рдореВрд▓ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдХреИрд╕реЗ рдерд╛ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рд╕реЗ рдорд╛рдкрдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк 26 рд╕реЗ 240 рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ 8 рд╣реЛрдЧрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЖрдпрд╛рдо 8x8 рдкрд┐рдХреНрд╕реЗрд▓ рдерд╛ рдпрд╛рдиреАред рдпреБрджреНрдз рдХреЗ рдореИрджрд╛рди рдХрд╛ рдЖрдХрд╛рд░ 208x208 рд╣реИ, рдФрд░ рдмрдбрд╝рд╛ рдмреНрд▓реЙрдХ 16x16 рд╣реИред рдЪреМрдбрд╝рд╛рдИ 256 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдм рд╣рдо рд╕рд╣реА рдХреЙрд▓рдо рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдКрдкрд░ / рдиреАрдЪреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВред рджрд╛рдИрдВ рдУрд░, рдпрджрд┐ рдЖрдк рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЪреМрдбрд╝рд╛рдИ рджреЛ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдПрдХ рдЖрдпрд╛рдо рд╣реИ, рдХреБрд▓ 2 * 16 = 32ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 32 + 208 = 240 рдмрд╛рдпрд╛рдВ рдХреНрд╖реЗрддреНрд░ 16 рд╣реИ, рдФрд░ рдХреНрд░рдорд╢рдГ рдиреАрдЪреЗ рдФрд░ рдКрдкрд░, рд╕рдорд╛рди 16 рдкрд┐рдХреНрд╕реЗрд▓ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рдмрдбрд╝реЗ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдпрд╛рдо рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕реЗрд▓рд╕рд╛рдЗрдЬрд╝ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рднреА рдЧрдгрдирд╛ рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЖрдк рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рдпреЛрдЧ рдФрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЗрд╕реЗ рджреЛ рд╢рдХреНрддрд┐рдпреЛрдВ (16, 32, 64, 128 ...) рдХреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧреЗ рдЬреИрд╕реЗ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдкреБрд░рд╛рдиреА рдбрдВрдбреА рдкрд░ рдерд╛, рддреЛ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ 16 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреНрдп рдореВрд▓реНрдп рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдореЗрд░реЗ рдЬреИрд╕рд╛ рдХреЛрдИ рджреВрд╕рд░рд╛ рд╡реНрдпрдХреНрддрд┐ рдореЗрд░реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдЧрд▓реА рдХрдбрд╝реА рд▓рд┐рдЦреВрдВрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЗрд╕реЗ рдЗрд╕рдореЗрдВ рдЫрд┐рдкрд╛рдКрдВрдЧрд╛



рдЕрдЧрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЗрдЦреЗрдВ: CANVAS рд╕реНрдЯреЗрдк рдмрд╛рдп рд╕реНрдЯреЗрдк: рдЫрд╡рд┐рдпрд╛рдБ



All Articles