LibCanvas: рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░

рдЫрд╣ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рдСрдирд▓рд╛рдЗрди рдЖрд╡реЗрджрди "Starry Sky Map" рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рдиреЗ рдХрднреА рддрд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдЖрдХрд╛рд╢ рдХреЗ рдЗрд╕ рдирдХреНрд╢реЗ рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдЗрд╕рдиреЗ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЬреЗрдПрд╕ рдкрд░ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдХрд╛рд░рдг рддреИрдпрд╛рд░ рд▓рд┐рдмрд╛рд╕рдирд╡ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ред
рдЫрд╡рд┐


рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдмрд▓реНрдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд┐рддрд╛рд░реЗ рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ 6,000 рд╣реИрдВред рдпрд╣рд╛рдВ, рдореИрдВрдиреЗ рд╕реНрдЯрд╛рд░ рдХреИрдЯрд▓реЙрдЧ рдХреА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ js рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдорджрдж рд╕реЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

LibCanvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╢реНрди рдмрди рдЧрдпрд╛; рдХреНрдпрд╛ рдпрд╣ рд╣рдореЗрд╢рд╛ LibCanvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрд╡рдпрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЧреНрд░рд╣реЛрдВ рдХреЗ рджреГрд╢реНрдп рдЖрдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдХреЛрд▓рд╛рдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рдерд╛, рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд▓рд┐рдмреНрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЧрдгрд┐рддреАрдп рдФрд░ рдЦрдЧреЛрд▓реАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдЗрди рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ ред
рд╡рд╣рд╛рдВ, рдХреНрд░рдорд╢рдГ:


рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛

рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдпрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ
рдпрд╣рд╛рдБ рднреА рдЧреНрд░рд╣реЛрдВ рдФрд░ рдзреВрдордХреЗрддреБрдУрдВ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рддрддреНрд╡ рд╣реИрдВред

рддрд╛рд░рд╛рдВрдХрди рдкреНрд░рджрд░реНрд╢рди

for (var i = 0; i < (stars.length); i++){ var decr=stars[i][1]; // var tr=sr-stars[i][0]; //  var zl=atmospheric_refraction(equatorial_to_horizontal(decr, tr, phi)[1]);//  var mag=Math.round(stars[i][2]/100); // if (zl<90 && mag<magmax){// ,    var r_star=k1*1+k2*(magmax-mag); var Az=equatorial_to_horizontal(decr, tr, phi)[0]; // var cor1=to_xy(zl,Az);     var x=(cor1[0]*1).toFixed(0); //  var y=(cor1[1]*1).toFixed(0); // /*      */ if (mag<1.5){ var circl3 = new LC.Circle( x,y,r_star*2); ct.fill(circl3, ct .createRadialGradient( new LC.Circle(x, y, 1), new LC.Circle(x, y, r_star*2)) .addColorStop({ '0.0': 'rgba(200,200,200,0.4)', '1.0': 'rgba(200,200,200,0)' })); var circl = new LC.Circle( x,y,r_star*0.8); //  ct.fill(circl, '#FFF');//  }else{ /*       */ var circl = new LC.Circle( x,y,r_star); //  ct.fill(circl, '#FFF');//  } m++; } } 


рдЧреНрд░рд╣


рдирдХреНрд╢рд╛ рдкреНрд░рджрд░реНрд╢рди

рдореИрдВрдиреЗ рдЧреНрд░рд╣реЛрдВ рдХреЛ рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк)ред рдЧреНрд░рд╣реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрд╛ рдерд╛

рдХреЛрд▓рд╛рдЬ рдореИрдкрд┐рдВрдЧ

рдпрд╣рд╛рдБ рднреА, рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдХреЛрд▓рд╛рдЬ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ред
рдиреАрдЪреЗ рдЧреНрд░рд╣реЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡рд╛рд▓реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рднреА рдмрдирд╛рдИ рдЧрдИ рдереАред
рд╣реЗрдб рдлрд╛рдЗрд▓ рдореЗрдВ рдЧреНрд░рд╣реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:
 //============================================================================================================ for (var i = 0; i < (planets.length); i++){ var tyu=planetposition(planets[i][0], planets[i][1], jdn, planets[i][3], planets[i][4], planets[i][5], planets[i][6], planets[i][7], planets[i][8],planets[i][9],planets[i][10]) if (i==0){ sundelta=tyu[1] } if (planetinfo1==1){ //  "  " res+="<tr><td>"+planets[i][8]+"</td><td>"+deltafloor(tyu[1])+"</td><td>"+alphafloor(tyu[0])+"</td><td>"+(tyu[3]).toFixed(3)+"</td><td>"+(tyu[2]).toFixed(1)+"</td><td>"+(2*tyu[4]).toFixed(1)+"</td></tr>"; } var zl=atmospheric_refraction(equatorial_to_horizontal(tyu[1], sr-15*tyu[0], phi)[1]);//  if (i==0){ sunz=zl } //alert(tyu) if (i>0){ draw(ctx, tyu[4], i,tyu[3],planets[i][8], date); } if (zl<90){ var Az=equatorial_to_horizontal(tyu[1], sr-15*tyu[0], phi)[0]; // var cor1=to_xy(zl,Az); var x=(cor1[0]*1).toFixed(0);//  var y=(cor1[1]*1).toFixed(0);// var R=Math.round((9-1*tyu[2])*kp2); if (R>10){ R=10 var R1=20*R if (planets[i][8]==''){ //     R=7 sunx=x suny=y } }else{ var R1=kp1*R } var circl = new LC.Circle( x,y,R); //   var circl2 = new LC.Circle( x,y,R1); //   ct.fill(circl, 'rgba('+planets[i][11][0]+','+planets[i][11][1]+','+planets[i][11][2]+',1)'); //   //   ct.text({ text: planets[i][8], padding: [ 1*y, 1*x], size:15, color:'rgba('+planets[i][11][0]+','+planets[i][11][1]+','+planets[i][11][2]+',1)' }); //alert(planets[i][11][0]) //  ----- ct.fill(circl2, ct .createRadialGradient( new LC.Circle(x, y, 1), new LC.Circle(x, y, R1)) .addColorStop({ '0.0': 'rgba('+planets[i][11][0]+','+planets[i][11][1]+','+planets[i][11][2]+',0.85)', '1.0': 'rgba('+planets[i][11][0]+','+planets[i][11][1]+','+planets[i][11][2]+',0)' }));/**/ //---------- } } 


рдЪрдВрджреНрд░рдорд╛

рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдФрд░ рдЪрд░рдг рдХреЗ рд╕рд╛рде рдЪрдВрджреНрд░рдорд╛ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрддрдирд╛ рдЕрдзрд┐рдХ рд╣реИред
рдЪрдВрджреНрд░рдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ Jan Meus рдХрд╛ рд░реЗрдбреАрдореЗрдб рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд┐рдпрд╛, рдЬреЛ рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдмрд╛рд╣рд░реА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛: github

рдзреВрдордХреЗрддреБ рдФрд░ рдХреНрд╖реБрджреНрд░ рдЧреНрд░рд╣

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

рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рд╕рдорд╛рдзрд╛рди

рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реБрд╕реНрддреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рддреЗрдЬ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред рдпрд╣рд╛рдВ рдХреБрдЫ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдпрд╣ рд╢рд╛рдпрдж рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рд░рд╛рдп рд╣реИ ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╡реГрджреНрдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕ рдмрдЧ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ: http://astrokot.ru/planetarium/dev/planetarium.html

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


All Articles