рдкреНрд░рд╛рдердорд┐рдХ рдЙрдкрдЧреНрд░рд╣ рдЙрдбрд╝рд╛рди рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдЧрдгрд┐рдд рдХрд╛ рдЕрдзреНрдпрдпрди рдерд╛ред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рдерд╛: рдкреНрд░рд╛рдердорд┐рдХ рдХрд┐рдиреЗрдореИрдЯрд┐рдХреНрд╕ рд╕рдореАрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
/* t -   G -  (  ) msun -    (  ) */ var r2=(xsun-xc)*(xsun-xc)+(ysun-yc)*(ysun-yc); //  - var gs=G*msun/r2; // ,   //      var ivx=(t*t*gs/2)*(xsun-xc)/Math.sqrt(r2); var ivy=(t*t*gs/2)*(ysun-yc)/Math.sqrt(r2); //     vx+=ivx/t; vy+=ivy/t; var V=Math.sqrt(vx*vx+vy*vy) //   /*  */ xc+=vx*t; yc+=vy*t; 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░ рдЧрдгрд┐рддреАрдп рднрд╛рдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред

рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ рдФрд░ рд╕реНрд╡рдпрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЧрддрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред
рджреЛ рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЗрдПрд╕ рдкрд░ рд▓рд╛рдЧреВ:
 var xc,yc,xc2,yc2,intervalID,vx,vy; /*   */ cnv.addEventListener('mousedown',function (event) { /*     */ xc=event.offsetX; yc=event.offsetY; /*      */ clearInterval(intervalID) }, false) /*      ,       */ cnv.addEventListener('mouseup',function (event) { /*      */ clearInterval(intervalID) /*    */ xc2=event.offsetX; yc2=event.offsetY; /*    */ vx=(-xc+xc2)*0.4 /*  */ vy=(-yc+yc2)*0.4 intervalID=setInterval(dodo,70); }, false) 

рдкрд░реАрдХреНрд╖рдг

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

 var i=0; do{ var r2=(xsun-xc)*(xsun-xc)+(ysun-yc)*(ysun-yc); var gs=G*msun/r2; var ivx=(t*t*gs/2)*(xsun-xc)/Math.sqrt(r2); var ivy=(t*t*gs/2)*(ysun-yc)/Math.sqrt(r2); vx+=ivx/t; vy+=ivy/t; var V=Math.sqrt(vx*vx+vy*vy) xc+=vx*t; yc+=vy*t; i++ }while(i<=1/t) 

рдлреЗрд░рдмрджрд▓

рд╢реЛрдзрди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрдкрдЧреНрд░рд╣ рдХрд╛ рддреНрд░рд┐рдЬреНрдпрд╛ рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рдпрд╛, рдЬреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрдм рд╣реИ рдЬрдм рдЙрдкрдЧреНрд░рд╣ рдЪрд┐рддреНрд░ рдХреЗ рдмрд╛рд╣рд░ рдЙрдбрд╝рд╛рди рднрд░рддрд╛ рд╣реИ:
 ctx.moveTo(xc,yc) ctx.lineTo(xsun,ysun) ctx.stroke() 

рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╣реИ: http://astrokot.ru/planetarium/vectors.html


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


All Articles