рд╕реБрд▓рдн рднрд╛рд╖рд╛ рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдкрд░рд┐рд╡рд░реНрддрди

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





рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛



рдЕрдиреБрд╡рд╛рдж рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╡рд┐рдзрд┐ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдП рдЧрдП рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ ctx.translate(x,y)



: ctx.translate(x,y)



ред рд╣рдо рдиреАрдЪреЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ





рд╕реНрдХреЗрд▓



рд╕реНрдХреЗрд▓, рдЬреИрд╕реЗ рдЕрдиреБрд╡рд╛рдж, x рдФрд░ y рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ - рд╡реЗ рдорд╛рди рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдХреНрд╖ рдХреЛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ctx.scale (2,3) рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рджреЛ рдмрд╛рд░ рдЪреМрдбрд╝рд╛ рдФрд░ рддреАрди рдЧреБрдирд╛ рдКрдВрдЪрд╛ рдЦреАрдВрдЪрд╛ рдЬрд╛рдПрдЧрд╛ред X = -1 рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╣рдо рдЫрд╡рд┐ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдорд┐рд░рд░ рдХрд░реЗрдВрдЧреЗ, y = -1 рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╣рдо рдЗрдореЗрдЬ рдХреЛ рдорд┐рд░рд░ рдХрд░реЗрдВрдЧреЗред

рдкреИрдорд╛рдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ





рдШреБрдорд╛рдПрдБ



рд░реЛрдЯреЗрдЯ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд░реЗрдбрд┐рдпрди рдореЗрдВ рдХреЛрдг рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдзреБрд░реА рдмрд┐рдВрджреБ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЫрд╡рд┐ рдХреЛ рдШреБрдорд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0: 0)ред рдЖрдк рдПрдХ рд╕рд░рд▓ рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдЧреНрд░реАрдзрд╛рд░рд┐рдпреЛрдВ рдХреЛ рд░реЗрдбрд┐рдпрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд▓рд┐рдмрд╛рд╕рдирд╡рд╛рд╕ рдореЗрдВ рдирдВрдмрд░.рдбрд┐рдЧреНрд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ:

 Number.prototype.degree = function () { return this * Math.PI / 180; }; (60).degree() // 60   
      
      





рдШреВрдордиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ



рдпрджрд┐ рд╣рдо рдХреБрдЫ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдШреБрдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╕реНрд╡реАрд░, рддреЛ рд╣рдореЗрдВ рдШреБрдорд╛рдПрдЧреА рдФрд░ рдЕрдиреБрд╡рд╛рдж рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рдХрднреА рднреА рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреАред рд░реЛрдЯреЗрд╢рди рдХреЗ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЗ рдХреЗрдВрджреНрд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (-рдЙрдкрд▓рдмреНрдзрддрд╛ / 2, -height / 2) рдореЗрдВ рдЦреАрдВрдЪрдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо 100: 100 рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рд╕реНрдерд┐рдд рдПрдХ 50x50 рдЫрд╡рд┐ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо 125: 125 рдХреЗ рд╕рдордиреНрд╡рдп рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдордиреНрд╡рдп -25: -25 рдкрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рдХрд▓реНрдк LibCanvas рдФрд░ рд░реЛрдЯреЗрдЯрдЖрдИрдореИрдЬ рд╡рд┐рдзрд┐ (рдпрд╛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдбреНрд░рд╛рдЗрдореЗрдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рди рдХрд┐ рддрдирд╛рд╡ред

рдЪрд┐рддреНрд░ рдХреЛ рдШреБрдорд╛рдПрдВ





setTransform



 ctx.setTransform(m11, m12, m21, m22, dx, dy);
      
      





рдЖрдЗрдП рд╣рдо рдмрджрд▓реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

dx, dy



- рдЕрдиреБрд╡рд╛рдж рд╡рд┐рдзрд┐ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ, рдЫрд╡рд┐ рдХреЛ рдЙрдЪрд┐рдд рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред

m11, m22



- рд╕реНрдХреЗрд▓ рд╡рд┐рдзрд┐ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ, рдЬрд┐рд╕рд╕реЗ рдкрд┐рдХреНрд╕рд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПред

m12, m21



- рдЕрдзрд┐рдХ рд░реЛрдЪрдХред рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ (x, y) рдХреЛ y * m21 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рджрд╛рдИрдВ рдУрд░ рдФрд░ x * m12 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдиреАрдЪреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ m21 = 1 рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджрд╛рдИрдВ рдУрд░ 1 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реЗрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛



рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рд╡рд┐рдзрд┐ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрдЯрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрд╣ рд╣рд░ рдмрд╛рд░ рдкрд┐рдЫрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдУрд╡рд░рд▓реЗ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?



рдЖрдЗрд╕реЛрдореЗрдЯреНрд░рд┐рдХ рдореИрдк



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



рд╣рдо рдЗрд╕реЗ m21 = 1 рдХреЗ рд╕рд╛рде рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ m12 = -0.5 рдХреЗ рд╕рд╛рде рдКрдкрд░ рдЙрдард╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ m22 = 0.5 рдХреЗ рд╕рд╛рде рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВ (рдЖрдк рдЗрд╕реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЪрд░рдгреЛрдВ рдореЗрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред

рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрд╖реИрддрд┐рдЬ рд╕реЗ 26.565 ┬░ рдХреЗ рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдордорд┐рддреАрдп рджреГрд╢реНрдп рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╣рдо 30 ┬░ рдХреЗ рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордорд┐рддреАрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдЗрд╕реЗ X рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рд╕реЗрд▓ рдЪреМрдбрд╝рд╛рдИ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдорддрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:



рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрд╢рд┐рдХрд╛ рдмрд┐рдВрджреБ O рдкрд░ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде ABCD рд╣реИред рдХреЛрдг BAO рд╡рд╣ рдХреЛрдг рд╣реИ рдЬрд┐рд╕реЗ 26.6 рд╕реЗ рдмрдирд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЕрдм AO = BD, рдЕрд░реНрдерд╛рдд рд╕рдорджреНрд╡рд┐рдмрд╛рд╣реБ рддреНрд░рд┐рднреБрдЬ BAD рдХреА рдКрдБрдЪрд╛рдИ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рд╣рдореЗрдВ рдЗрд╕ рддреНрд░рд┐рднреБрдЬ рдХреЛ рд╕рдордмрд╛рд╣реБ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рддрд╛рдХрд┐ рдмреАрдПрдбреА рдХреЛрдг 60 рдбрд┐рдЧреНрд░реА рд╣реЛ рдЬрд╛рдП), рдЕрд░реНрдерд╛рдд рдХреБрдЫ рдХрд╛рд░рдХ рджреНрд╡рд╛рд░рд╛ рдКрдВрдЪрд╛рдИ рдХрдо рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП AO = BD = 1 рддреЛрддрд╛ред рддрдм рдПрдУ рдХреЛ рддреЛрддрд╛ рдХреЗ рд╡рд░реНрдЧрд░реНрдЯ (рдПрдмреА 2 -рдмреАрдУ 2 ) = рд╡рд░реНрдЧрд░реНрдЯ (1-0.25) = 0.866 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣ рдЧреБрдгрд╛рдВрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЕрдкрдиреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ:

 ctx.setTransform(0.866, -0.5, 0.866, 0.5, 0, 0)
      
      





рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдирдХреНрд╢рд╛ рдХреИрд╕реЗ рдорд┐рд▓рд╛





рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВ, рд╕реБрдЭрд╛рд╡ рджреЗрдВ, рд╕рд╛рде рдореЗрдВ рд╣рдо рд╡рд┐рд╖рдп рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░ рджреЗрдВрдЧреЗред



All Articles