{"id":286581,"date":"2017-05-19T06:15:03","date_gmt":"2017-05-19T02:15:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=286581"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2017-05-19T02:15:03","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=286581","title":{"rendered":"\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u043d\u0441\u0442\u0440\u043e\u0432"},"content":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443\u0434\u0435\u043b\u044f\u044e\u0442 \u043d\u0435\u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043d\u043e \u043c\u0430\u043b\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u0410 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043c, \u0442\u0443\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0440\u0430\u043a\u0442\u0430\u043b \u2014 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0448\u0435\u0434\u0435\u0432\u0440, \u043f\u043e\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/c90\/fd3\/247\/c90fd3247c204167b3b46eb653a7aa7b.png\"\/><\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0438 gif-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f. \u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0432\u044b\u0448\u0435 \u0438 \u0441\u043a\u0430\u0436\u0438\u0442\u0435, \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u0439 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043e?<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h3>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c<\/h3>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0434\u0438\u043d \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 \u2014 \u043a\u0440\u0438\u0432\u043e\u0439 \u041b\u0435\u0432\u0438.<br \/>  \u0415\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 A1 \u0438 A2. \u041d\u0430\u0439\u0434\u0435\u043c \u0442\u0430\u043a\u0443\u044e \u0442\u043e\u0447\u043a\u0443 A3, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0433\u043e\u043b A1 = 45\u00b0, \u0430 \u0443\u0433\u043e\u043b A3 = 90\u00b0.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/4fa\/83d\/e76\/4fa83de7691445bcafe908ca2a1a884b.png\"\/><br \/>  \u041f\u0440\u043e\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0443 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0442\u043e\u0447\u0435\u043a A1, A3 \u0438 A3, A2.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5c5\/47f\/341\/5c547f341c4f46c3a7590d067f8bcedb.png\"\/><br \/>  \u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b \u0442\u043e\u0447\u0435\u043a.<\/p>\n<p>  \u0422\u0440\u0435\u0442\u044c\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/7df\/394\/68e\/7df39468ecb7404cb266f879b8ac058c.png\"\/><br \/>  \u041d\u0430 14 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u044d\u0442\u0430 \u043a\u0440\u0438\u0432\u0430\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/b3f\/51f\/6b1\/b3f51f6b18ae4611866fdc24cc0682f7.png\"\/><br \/>  \u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043d\u0430 JavaScript:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u043d\u0430 JS<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">  &lt;canvas id=&quot;myCanvas&quot;&gt;&lt;\/canvas&gt;   &lt;script&gt;     window.onload=function(){       var canvas=document.getElementById('myCanvas');       var context=canvas.getContext('2d');       canvas.width=800, canvas.height=800;       context.beginPath();       recurs(context, 17, 400, 250, 400, 550); \/\/\u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0440\u0438\u0441\u0443\u044e\u0449\u0430\u044f \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0440\u0438\u0432\u0443\u044e       context.stroke();     };     var angle=45*Math.PI\/180; \/\/\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0443\u0433\u043b\u044b \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u044b     function recurs(context, n, x0, y0, x1, y1){ \/\/n \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439, \u0422\u043e\u0447\u043a\u0438 A1(x0,y0) \u0438 A2(x1,y1)       if (n==0){         context.moveTo(x0,y0);         context.lineTo(x1,y1);       }else{         var xx=Math.cos(angle)*((x1-x0)*Math.cos(angle)-(y1-y0)*Math.sin(angle))+x0;         var yy=Math.cos(angle)*((x1-x0)*Math.sin(angle)+(y1-y0)*Math.cos(angle))+y0; \/\/\u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u043e\u0447\u043a\u0443 A3         recurs(context, n-1, x0, y0, xx, yy); \/\/A1, A3         recurs(context, n-1, xx, yy, x1, y1); \/\/A3, A2       }     }   &lt;\/script&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <a href=\"http:\/\/fractal.xcont.com\/levy.html\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/a><\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434, \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0440\u0438\u0432\u0443\u044e \u2014 \u0414\u0440\u0430\u043a\u043e\u043d \u0425\u0430\u0440\u0442\u0435\u0440\u0430-\u0425\u0435\u0439\u0442\u0443\u044d\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0443\u0433\u043b\u044b 45\u00b0 \u0438 -45\u00b0<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/adb\/272\/a10\/adb272a10f0d4057ae0b456c8d4d7e6b.png\"\/><br \/>  \u0422\u0440\u0435\u0442\u044c\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/9b1\/4ea\/843\/9b14ea843afd4068854ec0f2fbf040db.png\"\/><br \/>  \u041d\u0430 14 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u044d\u0442\u0430 \u043a\u0440\u0438\u0432\u0430\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/43e\/097\/df7\/43e097df797848d2acf24fb9d9f951f5.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">      }else{         angle2=angle*k; \/\/ &lt;-         var xx=Math.cos(angle2)*((x1-x0)*Math.cos(angle2)-(y1-y0)*Math.sin(angle2))+x0;         var yy=Math.cos(angle2)*((x1-x0)*Math.sin(angle2)+(y1-y0)*Math.cos(angle2))+y0;         recurs(context, n-1, x0, y0, xx, yy, 1); \/\/\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 - k         recurs(context, n-1, xx, yy, x1, y1, -1);       }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <a href=\"http:\/\/fractal.xcont.com\/dragon.html\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/a><\/p>\n<p>  \u041c\u044b \u0441\u0430\u043c\u0443\u044e \u043c\u0430\u043b\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0430\u0448\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u043d\u0435\u0435 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0443\u0433\u043e\u043b, \u0430 \u0444\u0440\u0430\u043a\u0442\u0430\u043b \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0434\u043e \u043d\u0435\u0443\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u043e\u0441\u0442\u0438! \u0412 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0435 (\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0443\u0433\u043e\u043b \u0441 \u0448\u0430\u0433\u043e\u043c \u0432 5\u00b0):<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/c47\/995\/d56\/c47995d560c94dcfbd96ded41ad58832.gif\"\/><\/p>\n<p>  \u0418 \u0432\u043e\u0442 \u0442\u0443\u0442 \u043d\u0430\u0448 \u043f\u044b\u0442\u043b\u0438\u0432\u044b\u0439 \u0443\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u043e\u0432, \u0432\u043c\u0435\u0441\u0442\u043e <b>[45,-45]<\/b>? \u0421\u043a\u0430\u0436\u0435\u043c, <b>[30,-60]<\/b>. \u0418\u043b\u0438 <b>[30,-30,-60,60]<\/b>. \u041f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u043d\u0430\u0448\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u0443\u0433\u043b\u0430\u043c\u0438, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">    function recurs(context, arr, position, n, x0, y0, x1, y1){       if (n==0){         context.fillRect(x1,y1, 1,1);         return position;       }else{         if (!position[n]) position[n]=0;         var xx=Math.cos(arr[position[n]])*((x1-x0)*Math.cos(arr[position[n]])-(y1-y0)*Math.sin(arr[position[n]]))+x0;         var yy=Math.cos(arr[position[n]])*((x1-x0)*Math.sin(arr[position[n]])+(y1-y0)*Math.cos(arr[position[n]]))+y0;         position[n]++;         if (position[n]==arr.length) position[n]=0;         position=recurs(context, arr, position, n-1, x0, y0, xx, yy);         position=recurs(context, arr, position, n-1, xx, yy, x1, y1);         return position;       }     }<\/code><\/pre>\n<p>  \u041c\u0430\u0441\u0441\u0438\u0432 position \u0445\u0440\u0430\u043d\u0438\u0442 \u043d\u043e\u043c\u0435\u0440 \u0443\u0433\u043b\u0430 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 arr \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 (n).  <\/div>\n<\/div>\n<p>  <a href=\"http:\/\/fractal.xcont.com\/angles.html\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/a> (\u0427\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u043f\u0438\u0448\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u043e\u0432 \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445, \u0436\u043c\u0435\u043c \u00abdraw!\u00bb)<\/p>\n<p>  \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0447\u043a\u0438, \u043d\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044f \u0438\u0445 \u043b\u0438\u043d\u0438\u044f\u043c\u0438\u2026 \u0447\u0438\u0441\u0442\u043e \u0438\u0437 \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u0424\u0440\u0430\u043a\u0442\u0430\u043b <b>[30,-30,-60,60]<\/b> \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/987\/086\/550\/987086550ba641ff91c8034ff7c8c8ab.png\"\/><\/p>\n<p>  \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u043e\u0447\u043a\u0438 A3 \u043b\u0435\u0436\u0430\u0442 \u043d\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0441 \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u043e\u043c A1A2:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/877\/594\/cd8\/877594cd8a45412aa392c5c3851295ab.png\"\/><br \/>  \u0415\u0441\u043b\u0438 \u0442\u043e\u0447\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 (\u0438\u043b\u0438 \u0441\u043d\u0430\u0440\u0443\u0436\u0438) \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u2014 \u0444\u0440\u0430\u043a\u0442\u0430\u043b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0436\u0430\u0442\u044b\u043c (\u0438\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u2014 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438). \u041d\u0430\u0433\u043b\u044f\u0434\u043d\u043e:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/c28\/b3c\/634\/c28b3c6346b644bdafbe057c4fd798de.png\"\/><\/p>\n<p>  \u0412\u043e\u0442 \u044d\u0442\u0438\u043c \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u043c \u043c\u044b \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0438 \u043f\u043e \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438:  <\/p>\n<pre><code class=\"javascript\">var xx=Math.cos(arr[position[n]])* ... var yy=Math.cos(arr[position[n]])* ...<\/code><\/pre>\n<p>  \u041d\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u0433\u043e\u043b 120\u00b0 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0443 \u0436\u0435 \u0442\u043e\u0447\u043a\u0443, \u0447\u0442\u043e \u0438 \u0441 \u0443\u0433\u043b\u043e\u043c -60\u00b0. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0443\u0433\u043b\u044b \u043b\u0435\u0436\u0430\u0442 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 (-90\u00b0,90\u00b0). <\/p>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 \u043d\u0430\u0448 \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0443\u0433\u043b\u043e\u0432.<\/p>\n<h3>\u00ab\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0448\u0435\u0434\u0435\u0432\u0440\u044b\u00bb<\/h3>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u0441 \u0443\u0433\u043b\u0430\u043c\u0438 -45\u00b0\/45\u00b0 (\u043a\u043b\u0438\u043a\u0430\u0431\u0435\u043b\u044c\u043d\u043e):<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/web\/2ec\/f7d\/8fb\/2ecf7d8fbf7e4dee984940215d887dc5.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/64b\/e0b\/607\/64be0b6073144766a40c3dec6d4e9d80.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/b14\/9b8\/087\/b149b808701e40b2acf600f539b89b91.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5c2\/c68\/ee5\/5c2c68ee5150460ba24451b0a0d1a163.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/c95\/d95\/9ff\/c95d959ff47d4047a5b9950de0da0ffe.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/e59\/f7f\/78a\/e59f7f78a7f64cdc8fcfe6015fcf7a90.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/578\/a2e\/7fa\/578a2e7fa59f42f683040f56d46d6fc1.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/755\/fec\/ada\/755fecada18646a3b0c8c06975152310.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/600\/79a\/bf5\/60079abf5faf4f228fae0eb470817cf3.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5a2\/9ed\/47a\/5a29ed47aa1a481cb04649e9db4bfe27.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/b8d\/36a\/e4a\/b8d36ae4aae04172a6f07ceef46d412d.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/26a\/27a\/99a\/26a27a99a2db415783929d437566605c.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/699\/96c\/835\/69996c835a1a43f597e24799bb6814cd.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/3e0\/8e7\/ec8\/3e08e7ec866449369bea05c2ba40e4f7.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/8f2\/f46\/801\/8f2f46801fcc4c17a32b4f378bef00d5.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/fbf\/2f8\/ab5\/fbf2f8ab59904e22a78107d75c7b96ad.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/2e4\/ec6\/0ed\/2e4ec60ed0a14ed0b82ee2a1f54eb81e.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/332\/fa6\/b73\/332fa6b731b84831a00a18cff7dff2ad.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/5cc\/904\/999\/5cc9049999c945b8973929a5433c35c2.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/1c1\/160\/436\/1c11604366af46b0a55c3235815c5624.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/90a\/d79\/d99\/90ad79d9907448e0b716eb09cafcf1a8.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/4d2\/1cb\/994\/4d21cb99408744bda7668e073252d830.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/edb\/37f\/651\/edb37f651d2947c88a89f6423513c1d7.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/2ee\/6d2\/ae3\/2ee6d2ae37b64ecc81f01c95c80e7e83.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/5ef\/ab4\/901\/5efab4901cdb4ac6bc7bed37b559fbee.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/082\/40c\/31e\/08240c31e59e45d2b24e2f22ea9f0696.png\"\/><\/a><\/p>\n<p>  \u0421 \u0443\u0433\u043b\u0430\u043c\u0438 -30\u00b0\/30\u00b0\/-60\u00b0\/60\u00b0:<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/web\/91a\/ff9\/d81\/91aff9d815c546a1b19b5ebffd2e3521.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/34e\/eb6\/89c\/34eeb689cc6544f88e8610276d9ac000.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/561\/516\/0e6\/5615160e64834d34be4e82f6f90c0efd.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/4a8\/248\/8c5\/4a82488c5c3d47b2ab05a1afa6bec2d7.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/bae\/bb2\/fde\/baebb2fdeffe4b728e05ff5b2b3c87dd.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/190\/75e\/2e3\/19075e2e350d4e2898832afdde2691e0.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/bf6\/fe1\/6dc\/bf6fe16dc1634e76b38ba581c831fbab.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/e26\/743\/184\/e26743184a3f4d568222d8876f865086.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/dab\/8fe\/174\/dab8fe1741214e2081079f1f24bf04d3.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/d05\/c19\/6bd\/d05c196bd9b84041a7a7b7a676648552.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/bda\/476\/3b3\/bda4763b3443452f8424283a68870663.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/06d\/d08\/4a3\/06dd084a3d884d809d87ea6ea416ef6e.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/951\/a36\/837\/951a368374114c5396b74cec91c925c0.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/fe0\/b7e\/c24\/fe0b7ec247204f9c8ea77235ce8eb60f.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/8a2\/4d3\/312\/8a24d3312ceb4c8983edeee5d98a9785.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/307\/70a\/4a6\/30770a4a617a4033a29e5379ec1db6aa.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/81f\/cb5\/dcd\/81fcb5dcd83449c3a137cfc2bc944cbc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/75d\/1e8\/ebf\/75d1e8ebfaef40eda9761a8477ff2ab7.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/292\/de6\/7c4\/292de67c47d249b0853c622c2e2352d9.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/f11\/4e0\/019\/f114e00192f94b408b82adc00624ab30.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/1d3\/187\/59a\/1d318759a45f423e93bfe022468fb658.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/079\/57f\/d3f\/07957fd3fdde49b299a6e16d7ce51d22.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/ecb\/369\/703\/ecb3697031094f7fab8034a2e77821be.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/7aa\/9ef\/ffe\/7aa9efffeafb4e0a8731d861bc3b5e46.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/55b\/105\/d7a\/55b105d7af6a47b3ab23752256dda514.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/2f3\/14f\/a7d\/2f314fa7d5704a19a4bf475a6a8a34f6.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/a38\/660\/5b7\/a386605b70624d1eb07b56ec883979f9.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/7fc\/79b\/cdd\/7fc79bcddf5c4f2d98a4641d0ec9ffd1.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/eab\/e3d\/5fe\/eabe3d5fe90b48968e2908b60502ddfe.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/9c9\/b24\/be5\/9c9b24be55e341ca9872ad3dd2342c77.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/b54\/006\/6f3\/b540066f35424d0e9d0789528ca2e182.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/d4d\/a4e\/966\/d4da4e966015422e85c292b82b6e1417.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/af4\/dc0\/2e1\/af4dc02e130f4516a4d0d53352b97ade.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5ce\/cd1\/c48\/5cecd1c4883c460ab6652bbf59719a0c.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/000\/cd6\/e1c\/000cd6e1cfbb4f9c8434688c01e28023.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/1f1\/cb3\/750\/1f1cb37504fd415dae0316db6e5db70c.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/df4\/7e1\/185\/df47e1185b4a4503bd617a64bc43cfa4.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/7e4\/73d\/d0a\/7e473dd0af1f4fbc87032f8b0af45570.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/e04\/51f\/14f\/e0451f14f7de4fcc8d2f7936d9f61dbd.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/667\/4e1\/ee2\/6674e1ee2c314195ac294602ce6cb5e1.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/4de\/20c\/d8f\/4de20cd8fc57446784239be7fd0892c1.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/d42\/48e\/431\/d4248e4319864e219751c46a1d58bd06.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/cba\/2f1\/555\/cba2f155505e4a6ba3f06df4290be53e.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/f21\/bb2\/dfe\/f21bb2dfe039407689d1c3a48d91f50e.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/895\/049\/c62\/895049c624f04794a3e95e0ba7660923.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/4a8\/10c\/148\/4a810c1480a543a79c1c8fb5ae716aa5.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/9a7\/abd\/4fc\/9a7abd4fcd5141fb8ee121df10898a58.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/469\/79c\/925\/46979c925a014d8794fb30a1708f276c.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/7c9\/97c\/5b9\/7c997c5b92fe419b906e15e640b6ead9.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/4da\/d24\/72d\/4dad2472d79b47069ee0d2a2dc4662d4.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/a08\/fb4\/471\/a08fb4471f9d4a8089f61988673bd3f0.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/bfb\/f92\/3ef\/bfbf923ef5524ba99e5c4a8d1e706774.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/d61\/0b1\/c4d\/d610b1c4d18046ef8bd890a2bb8002f8.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/8d0\/ac9\/bc0\/8d0ac9bc022442c79962339b60ebdf1b.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/bc3\/d83\/35b\/bc3d8335b33048ca861bf7992cc374ba.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/7c5\/538\/e83\/7c5538e83c2e4443b26416012fb9656a.png\"\/><\/a><\/p>\n<p>  \u0421 \u0443\u0433\u043b\u0430\u043c\u0438 -15\u00b0\/15\u00b0\/-30\u00b0\/30\u00b0\/-45\u00b0\/45\u00b0\/-60\u00b0\/60\u00b0\/-75\/75\u00b0:<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/web\/bcd\/ed6\/ee9\/bcded6ee912a4db987bd1c11485188dc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/ea9\/c95\/dd5\/ea9c95dd524b4720b32280f5e0557012.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/72c\/6c6\/f1c\/72c6c6f1c80446d4ab9c8f797508a623.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5cd\/276\/9ed\/5cd2769eddcc4e1b906727cc593e2aeb.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/69b\/ab3\/71a\/69bab371aeb6475bb7874a7b771e3f84.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/dca\/879\/044\/dca879044d60489ab36153ab89daa37a.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/578\/10e\/3a1\/57810e3a14ea4117a580292f82468a81.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/ca7\/dea\/b0e\/ca7deab0e5214cb6b8dc92336d4e7136.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/50e\/0fe\/b83\/50e0feb83b2b44d3a4cddb92a4dfb55f.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/8ba\/393\/a28\/8ba393a28a4e4654843528013f25615a.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/94f\/275\/d11\/94f275d113394f779cc3b1dd2ab71150.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/db6\/424\/de1\/db6424de133e4704bae5ca0594483e0f.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/e2c\/c9d\/35b\/e2cc9d35bf9e46ce9553474daf9c8b9e.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/f89\/c03\/0e5\/f89c030e544b4693b73ea5ea5a2581bb.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/0cc\/868\/ead\/0cc868ead99e488eb2c834ca80d252b5.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/f54\/855\/99a\/f5485599a8e3482d9d856a3ad49035fc.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/226\/c76\/4aa\/226c764aa82e4a7e9d456ed47364b009.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/abc\/af2\/bdd\/abcaf2bdd2da477a9404aa6aafb58bce.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/7c4\/835\/8e4\/7c48358e4bf149c29cc6637beb81c2e0.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/dfd\/87f\/bf5\/dfd87fbf533649af880234ae1e81119c.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/3c8\/20b\/b48\/3c820bb487c544f5a4e232310d09a6ad.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/ea7\/7f3\/65b\/ea77f365bb4b4c458c481861665239fa.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/b4a\/91c\/6f8\/b4a91c6f84994fc29917e4d1d287819e.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/299\/e3c\/5a8\/299e3c5a8a734d71b3d6dae850618348.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/9aa\/542\/40b\/9aa54240ba7e4cd380dbd4114ec0fb82.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/b14\/e33\/b81\/b14e33b81f1647aa8cbdf2c4fe9a5da0.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/dab\/d11\/088\/dabd110885594691bc582b6e23a189cc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/39f\/6e9\/001\/39f6e9001e444c8385567f6d215ed6d8.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/390\/834\/c33\/390834c33e80480fba06c9400ab39141.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/d3f\/4b7\/c0f\/d3f4b7c0f6f0437196174dc5d8c110dd.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/d42\/352\/3d3\/d423523d3ac1417eb878cb57e8bf61ee.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/2a4\/b85\/b2f\/2a4b85b2fc854af684776e89d7eda58d.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/ffb\/9d6\/e84\/ffb9d6e84c304d908aed9c0f0362199e.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/b6d\/f93\/be0\/b6df93be0fa84cd6932902c0ce6ec34c.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/ed7\/858\/7cd\/ed78587cda5a44719c91c6bc5b05b6c7.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5a0\/216\/eca\/5a0216ecab1e4ac2878ed4d7d9c089b3.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/541\/66f\/fc6\/54166ffc69e54ab7bec3262a00ba77dc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/5f6\/3f1\/8ff\/5f63f18ffb784ea38b16a1d95a6def93.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/f4f\/666\/efd\/f4f666efd9674637bb0ca9dee2b2146d.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/236\/38e\/526\/23638e526c7647e9afc3ef9dad21c74b.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/135\/e84\/276\/135e84276315479da40f1ae49c2a28d0.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/9b6\/5df\/7dc\/9b65df7dc3d34704a74c17fcf4d61e1b.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/e9d\/e77\/bf0\/e9de77bf083a4e79a3e618a10d09f640.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/332\/9e7\/05b\/3329e705bbde4286a3456dc081b6522e.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/28e\/dac\/60e\/28edac60ece648418aeee53a5079f590.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/092\/334\/7bf\/0923347bf4574971ace206cef7adc001.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/c92\/b97\/eab\/c92b97eabb1746d3b5c8d2eea72dd646.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/6f9\/e9b\/cbc\/6f9e9bcbcb634361ad52944f1979751f.png\"\/><\/a><a href=\"https:\/\/habrastorage.org\/web\/67d\/0be\/8ea\/67d0be8ead0d45f3866bdd38bd28c82c.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/073\/536\/110\/0735361104ee468290f428e2ab31db8e.png\"\/><\/a><\/p>\n<p>  \u2026 \u0422\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0433\u043b\u044b 15\u00b0\/30\u00b0\/45\u00b0\/60\u00b0\/75\u00b0 (\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435) \u0438, \u0441\u043a\u0430\u0436\u0435\u043c, \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u00ab\u0432\u043e\u0441\u044c\u043c\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435\u00bb \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b \u2014 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u0435\u0433\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c? \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 10^8 = 100 000 000 \u0448\u0442\u0443\u043a. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u00ab\u0432\u043e\u0441\u044c\u043c\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445\u00bb \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c, \u0441\u043a\u0430\u0436\u0435\u043c, \u00ab\u0434\u0435\u0432\u044f\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445\u00bb \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0435 \u0443\u0433\u043b\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435). \u0412 \u043e\u0431\u0449\u0435\u043c, \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043c\u0430\u043b\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c.<br \/>  \u0418\u0441\u043a\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0447\u0442\u043e-\u0442\u043e \u0441\u0440\u0435\u0434\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u043d\u0430\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u00ab\u0447\u0442\u043e-\u0442\u043e\u00bb \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u2014 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u0427\u0442\u043e \u043c\u0435\u0448\u0430\u0435\u0442 \u043d\u0430\u043c \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0441\u044e\u0434\u0430 \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c? \u041d\u0438\u0447\u0435\u0433\u043e. \u041f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u043c!<\/p>\n<h3>\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f<\/h3>\n<p>  \u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u2014 \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0438\u0441\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0431\u0438\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0441\u0442, \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0435\u043d \u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d.<br \/>  \u0414\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432.  <\/p>\n<ul>\n<li>\u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0439, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0438\u0437 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043e\u0441\u043e\u0431\u0435\u0439. \u041a\u0430\u0436\u0434\u0430\u044f \u043e\u0441\u043e\u0431\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0433\u0435\u043d\u043e\u0432 (\u0433\u0435\u043d\u043e\u0442\u0438\u043f). \u0413\u0435\u043d\u043e\u0442\u0438\u043f\u044b \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u0433\u0435\u043d\u044b \u2014 \u044d\u0442\u043e \u0443\u0433\u043b\u044b, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b.<\/li>\n<li>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0435\u043b\u0435\u043a\u0446\u0438\u044f. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0441\u043e\u0431\u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 (<i>fitness<\/i>). \u0427\u0435\u043c \u043b\u0443\u0447\u0448\u0435 \u043e\u0441\u043e\u0431\u044c \u2014 \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442. \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0443. \u0414\u0435\u043b\u0438\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u043f\u043e\u043f\u043e\u043b\u0430\u043c \u2014 \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e. (\u041a\u0430\u043a \u0434\u0435\u043b\u0438\u0442\u044c \u0438 \u0447\u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u2014 \u0442\u0435\u043c\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043b\u0433\u043e \u0441\u043f\u043e\u0440\u0438\u0442\u044c)<\/li>\n<li>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u2014 \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u0435. \u0418\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c (\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c) \u0434\u0432\u0435 \u043e\u0441\u043e\u0431\u0438 \u2014 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439. \u0414\u0435\u043b\u0430\u0435\u043c \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432: \u0431\u0435\u0440\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0447\u0430\u0441\u0442\u044c \u0433\u0435\u043d\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0438 \u0447\u0430\u0441\u0442\u044c \u0433\u0435\u043d\u043e\u0432 \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0438\u043c\u0438 \u0433\u0435\u043d\u043e\u0442\u0438\u043f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u041e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0433\u0435\u043d\u044b \u0443\u0445\u043e\u0434\u044f\u0442 \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u0442\u043e\u043c\u043a\u0443. \u0411\u0435\u0440\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0434\u0432\u0443\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439. \u041f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u043c \u0442\u0443 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e. \u0422\u0430\u043a \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0430\u0442\u0441\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0438. \u0418\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/6c3\/65f\/887\/6c365f8877bf4d0d8d02095d23eb93f2.PNG\"\/><\/li>\n<li>\u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f \u2014 \u043c\u0443\u0442\u0430\u0446\u0438\u0438. \u0411\u0435\u0440\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u043e\u0441\u043e\u0431\u0435\u0439 \u0438\u0437 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 (\u043e\u0441\u043e\u0431\u0435\u0439) \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0433\u0435\u043d \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043d\u0430\u0448 \u0433\u0435\u043d\u043e\u0444\u043e\u043d\u0434 \u0433\u0435\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435, \u043c\u043e\u0433\u0443\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0432\u044b\u0448\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u043c\u0443\u0442\u0430\u0446\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u043f\u0442\u0438\u043c\u0443\u043c\u0443.<\/li>\n<\/ul>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u0442\u0430\u043f \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043d\u0430 JavaScript.<\/p>\n<p>  <b>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f<\/b><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0443\u0433\u043b\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">function randomangl(min, max, step){   if(step==0) step=1;   var rand=Math.floor(Math.random() * (max\/step - min\/step + 1)) + min\/step;   if(rand==0) rand=1;   rand*=step;   if(rand&gt;max) rand=max;   return Math.round(rand); }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f <i>randomangl<\/i> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0442\u0440\u0435\u043c\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438: \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0433\u043e\u043b, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0433\u043e\u043b \u0438 \u0448\u0430\u0433. \u0423\u0434\u043e\u0431\u043d\u043e, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438:<br \/>  <i>randomangl(-45, 45, 90)<\/i> \u2014 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0443\u0433\u043b\u044b -45\u00b0\/45\u00b0<br \/>  <i>randomangl(-60, 60, 30)<\/i> \u2014 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0443\u0433\u043b\u044b -60\u00b0\/-30\u00b0\/30\u00b0\/60\u00b0<br \/>  <i>randomangl(-75, 75, 15)<\/i> \u2014 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0443\u0433\u043b\u044b -75\u00b0\/-60\u00b0\/-45\u00b0\/-30\u00b0\/-15\u00b0\/15\u00b0\/30\u00b0\/45\u00b0\/60\u00b0\/75\u00b0<\/p>\n<p>  \u0423\u0433\u043b\u044b 0\u00b0 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c. \u0424\u0440\u0430\u043a\u0442\u0430\u043b <b>[45\u00b0,0\u00b0]<\/b> \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0431\u044b \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/f25\/996\/c5d\/f25996c5d3f34c7b97b46d4ba396fc22.png\"\/><\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u043e\u0442 \u0436\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b <b>[45\u00b0]<\/b>, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c 0\u00b0 \u2014 \u0442\u043e\u0447\u043a\u0438 \u0441\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f (\u0432\u0441\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0439). \u041f\u043e \u044d\u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c 90\u00b0. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <i>randomangl(-75, 75, 15)<\/i>. \u0414\u043b\u044f \u043c\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 <i>randomangl(-89, 89, 1)<\/i>. <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">population=[]; fitness=[]; for(var n=anglemin; n&lt;=anglemax; n++){   population[n]=[];   fitness[n]=[];   for(var i=0; i&lt;PopulationSize; i++){     population[n][i]=[];     fitness[n][i]=0;     for(var j=0; j&lt;n; j++){       population[n][i][j]=randomangl(min, max, step);       if(j==0) population[n][i][j]=Math.abs(population[n][i][j]);     }   } }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0443\u0433\u043b\u043e\u0432 (<i>anglemin<\/i>, <i>anglemax<\/i>). \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0433\u0435\u043d \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0441\u043e\u0431\u0438 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u2014 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b <b>[45\u00b0,-45\u00b0]<\/b> \u0438 <b>[-45\u00b0,45\u00b0]<\/b> \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b.<\/p>\n<p>  <b>\u0421\u0435\u043b\u0435\u043a\u0446\u0438\u044f<\/b><\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435, \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0441\u043e\u0431\u0438, \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 fitness-\u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u0439 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0447\u0435\u0442\u043a\u043e \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c (\u043d\u0435 \u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u00ab\u0447\u0442\u043e-\u0442\u043e\u00bb \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 fitness-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u043c \u043a \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0439 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043e\u0442\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043b\u0443\u0447\u0448\u0438\u0435, \u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u2014 \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0432\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u044e\u0449\u0435? \u041d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430.<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/603\/d1c\/5e4\/603d1c5e4ec1477687d8abc811672d0e.png\"\/><\/p>\n<p>  \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u0434\u0432\u0430 \u043a\u0430\u043d\u0432\u0430\u0441\u0430: myCanvas1 \u0438 myCanvas2. \u0418 \u0434\u0432\u0435 \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0438: onclick=\u00abselecter(1);\u00bb \u0438 onclick=\u00abselecter(2);\u00bb<\/p>\n<p>  \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0438\u0441\u0443\u0435\u0442 \u0434\u0432\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0438\u0441\u0443\u0435\u043c \u0434\u0432\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">function get2fractals(){   PopulationNumber=Math.floor(Math.random() * (anglemax - anglemin + 1))+anglemin;   drawcanvas(1);   drawcanvas(2); }  function drawcanvas(n){   var canvas=document.getElementById('myCanvas'+n);   var context=canvas.getContext('2d');   canvas.width=canvasSize, canvas.height=canvasSize;   context.fillStyle = 'rgb(255,255,255)';   context.fillRect (0, 0, canvas.width, canvas.height);   var position=[];      if(n==1){     FractalNumber[1]=Math.floor(Math.random() * (PopulationSize));   }else{     do{       var rnd = Math.floor(Math.random() * (PopulationSize));     }while(rnd==FractalNumber[1])     FractalNumber[2]=rnd;   }      var array1fractal=population[PopulationNumber][FractalNumber[n]];    context.fillStyle = 'rgb(0,0,0)';   draw(context, array1fractal, position, iteration, xA, yA, xB, yB); }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <i>get2fractals<\/i> \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e.<br \/>  \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <i>drawcanvas<\/i> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c <i>if(n==1)<\/i> \u2014 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430. \u041d\u043e\u043c\u0435\u0440 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0438 \u043d\u043e\u043c\u0435\u0440\u0430 \u0434\u0432\u0443\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043c \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 (<i>PopulationNumber<\/i> \u0438 <i>FractalNumber[]<\/i>).<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0436\u043c\u0435\u0442 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <i>Select<\/i> \u0440\u044f\u0434\u043e\u043c \u0441 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0432\u0448\u0438\u043c\u0441\u044f \u0435\u043c\u0443 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u043c, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Select<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">function selecter(n){ \tfitness[PopulationNumber][FractalNumber[n]]++; \tget2fractals(); }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 \u0438 \u0440\u0438\u0441\u0443\u0435\u0442 \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430.<\/p>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0434\u043e\u0431\u0440\u043e\u0441\u043e\u0432\u0435\u0441\u0442\u043d\u044b\u043c \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b \u0432\u044b\u0431\u043e\u0440\u043e\u0432 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0441\u043e\u0431\u0435\u0439 \u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438.<\/p>\n<p>  <b>\u0421\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u043c\u0443\u0442\u0430\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u0443\u0442\u0430\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">function sortf(a, b) {   if (a[1] &lt; b[1]) return 1;   else if (a[1] &gt; b[1]) return -1;   else return 0; }  function evolution(){   var mutation=document.getElementById(&quot;mutatepercent&quot;).value;   var exchange=document.getElementById(&quot;exchangepercent&quot;).checked;      var sizehalf=PopulationSize\/2;   var sizequarter=sizehalf\/2;   for(var n=anglemin; n&lt;=anglemax; n++){        var arrayt=[];     for(var i=0; i&lt;PopulationSize; i++){       arrayt[i]=[];       arrayt[i][0]=population[n][i];       arrayt[i][1]=fitness[n][i];     }     arrayt.sort(sortf);     arrayt.length=sizehalf;     population[n].length=0;     fitness[n].length=0;          for(var i=0; i&lt;sizequarter; i++){       var i0=i*4;       var i1=i*4+1;       var i2=i*4+2;       var i3=i*4+3;              var removed1=Math.floor(Math.random()*(arrayt.length));       var parent1f = arrayt.splice(removed1,1);       var parent1=parent1f[0][0];       var removed2=Math.floor(Math.random()*(arrayt.length));       var parent2f = arrayt.splice(removed2,1);       var parent2=parent2f[0][0];              var child1=[];       var child2=[];              for(var j=0; j&lt;n; j++){         var gen=Math.round(Math.random());         if(gen==1){           child1[j]=parent1[j];           child2[j]=parent2[j];         }else{           child1[j]=parent2[j];           child2[j]=parent1[j];         }       }              population[n][i0]=parent1;       population[n][i1]=parent2;       population[n][i2]=child1;       population[n][i3]=child2;                fitness[n][i0]=0;       fitness[n][i1]=0;       fitness[n][i2]=0;       fitness[n][i3]=0;     }      if(mutation&gt;0){       var m=100\/mutation;       for(var i=0; i&lt;PopulationSize; i++){         var rnd=Math.floor(Math.random()*(m))+1;         if(rnd==1){           var mutatedgene=Math.floor(Math.random()*(n));           population[n][i][mutatedgene]=randomangl(minm, maxm, stepm);         }       }     }   }    if(exchange){     \/\/\/...   }   get2fractals(); }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0411\u0435\u0440\u0435\u043c \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u043a\u0430\u0436\u0434\u0443\u044e \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e. \u041f\u0438\u0448\u0435\u043c \u0432\u0441\u0435\u0445 \u043e\u0441\u043e\u0431\u0435\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u0442\u0443\u0434\u0430 \u0436\u0435 \u043f\u0438\u0448\u0435\u043c \u0438\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 <i>fitness<\/i>. \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043f\u043e \u044d\u0442\u0438\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c. \u041e\u0442\u0440\u0435\u0437\u0430\u0435\u043c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043a\u0443 (\u0441\u0430\u043c\u044b\u0445 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0445). \u0421\u0442\u0430\u0440\u044b\u0435 \u0434\u0432\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0442\u0430\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043b\u0438\u0448\u043d\u0435\u0433\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c. \u0414\u0435\u0440\u0433\u0430\u0435\u043c \u0438\u0437 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u043a\u043e\u0432, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044e \u043f\u0440\u0435\u0434\u043a\u0430\u043c\u0438 \u0438 \u043f\u043e\u0442\u043e\u043c\u043a\u0430\u043c\u0438.<br \/>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043c\u0443\u0442\u0430\u0446\u0438\u0438. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u043c\u0443\u0442\u0430\u0446\u0438\u0439 \u0432\u043e \u0432\u0441\u0435\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043c\u0443\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u0437\u044f\u0442\u043e\u0439 \u043e\u0441\u043e\u0431\u0438.<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043e\u043f\u0446\u0438\u044f <i>exchange<\/i>. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0441\u043e\u0431\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f\u043c\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041c\u043e\u0434\u0435\u043b\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">if(exchange){   var n=anglemin;   while(n&lt;population.length){     var rnd=Math.round(Math.random());     var np=n+1;     if(rnd==1 && (typeof population[np]!=&quot;undefined&quot;)){              var i1=Math.floor(Math.random() * (PopulationSize));       var i2=Math.floor(Math.random() * (PopulationSize));       var tempa1=population[np][i1];       var tempa2=population[n][i2];       var indexofexcessgene=Math.floor(Math.random()*(tempa1.length));       var excessgene=tempa1.splice(indexofexcessgene,1);       tempa2.splice(indexofexcessgene,0,excessgene[0]);       population[np][i1]=tempa2;       population[n][i2]=tempa1;              n+=2;     }else{       n++;     }   } }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0444\u043b\u0430\u0436\u043e\u043a <i>Exchanges<\/i> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438, \u043e\u0434\u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u044c \u0441 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c 50% \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0433\u0435\u043d\u0430\u043c\u0438 \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u044c\u044e \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 (\u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u044f n+1). \u0413\u0435\u043d\u043e\u0432 \u0432 \u0433\u0435\u043d\u043e\u0442\u0438\u043f\u0430\u0445 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u043e\u0431\u043c\u0435\u043d \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0433\u0435\u043d \u0443 \u043e\u0441\u043e\u0431\u0438 \u0432 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 n+1, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0442\u0443 \u0436\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0432 \u0433\u0435\u043d\u043e\u0442\u0438\u043f \u0443 \u043e\u0441\u043e\u0431\u0438 \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 n. \u041c\u0435\u043d\u044f\u0435\u043c \u043e\u0441\u043e\u0431\u0438 \u043c\u0435\u0441\u0442\u0430\u043c\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/c0f\/620\/1a2\/c0f6201a28034337aa6cad8c1da0d0a6.png\"\/><\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u0438\u0441\u0442\u0435\u043b\u043e\u043a (css-\u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 localStorage, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 Parents Tree&#8230;)<\/p>\n<p>  <b>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/xcont\/fractals\">GitHub<\/a><br \/>  \u0418\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043d\u0430 <a href=\"http:\/\/fractal.xcont.com\/\">\u0441\u0430\u0439\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a> (\u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043b\u0438\u043f\u043d\u0443\u0442\u044c!)<\/b><\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u043e\u0438\u0445 \u0441\u0435\u043b\u0435\u043a\u0446\u0438\u0439 \u2014 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u041d\u0443 \u0438 \u0432 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044e, \u0447\u0442\u043e 2D \u2014 \u0445\u043e\u0440\u043e\u0448\u043e, \u0430 3D \u2014 \u0435\u0449\u0435 \u043b\u0443\u0447\u0448\u0435!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/e5a\/4bc\/5b5\/e5a4bc5b59e245d1af1131caa36b4352.gif\"\/><\/p>\n<p>  \u041f\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u043c\u044b\u0448\u043a\u043e\u0439 \u0444\u0440\u0430\u043a\u0442\u0430\u043b \u0432 \u0442\u0440\u0435\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u0445 \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/fractal.xcont.com\/geom3d\/\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0427\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0448 \u0432\u0431\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u044b \u0443\u0433\u043b\u043e\u0432 \/alpha\/beta\/alpa\/beta\/\u2026 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/3cb\/7ae\/e21\/3cb7aee21aa841a7af41ad97bece9036.png\"\/><\/p>\n<p>  Alpha \u2014 \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u043d\u0430\u043c \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430. \u041d\u043e\u0432\u044b\u0439 \u0443\u0433\u043e\u043b Beta \u2014 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0442\u043e\u0447\u043a\u0438 A3 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 A1A2.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0431\u0430\u0433 \u0432 3D \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 3D \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0435\u0441\u0442\u044c \u0437\u0430\u0431\u0430\u0432\u043d\u044b\u0439 \u0431\u0430\u0433 (\u0444\u0438\u0447\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0441\u0442\u0430\u043b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0414\u0440\u0430\u043a\u043e\u043d \u0425\u0430\u0440\u0442\u0435\u0440\u0430-\u0425\u0435\u0439\u0442\u0443\u044d\u044f, \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 4 \u043f\u0430\u0440\u044b \u0443\u0433\u043b\u043e\u0432: <b>45\/180\/45\/0\/45\/0\/45\/180<\/b>.<br \/>  3D \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c 2D \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<br \/>  <b>45\/0\/45\/180\/45\/180\/45\/180\/45\/0<\/b><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/47e\/51e\/893\/47e51e893b6945ff9f99d09942deabe6.png\"\/><\/p>\n<p>  <b>45\/180\/45\/180\/45\/0\/45\/180\/45\/180\/<\/b><br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/4e4\/c2e\/8e7\/4e4c2e8e73b9425793171e8c5041c882.png\"\/><\/p>\n<p>  \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0433\u0430\u043b\u0435\u0440\u0435\u044f \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0445 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u043e\u0432 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/web\/dc8\/bc7\/a6e\/dc8bc7a6eaab407ba67822cf30bf2f0b.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/070\/431\/ffa\/070431ffabb242129831a8caa43adac1.png\"\/><\/a>  <\/div>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/328568\/\"> https:\/\/habrahabr.ru\/post\/328568\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443\u0434\u0435\u043b\u044f\u044e\u0442 \u043d\u0435\u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043d\u043e \u043c\u0430\u043b\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u0410 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043c, \u0442\u0443\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0440\u0430\u043a\u0442\u0430\u043b \u2014 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0448\u0435\u0434\u0435\u0432\u0440, \u043f\u043e\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/web\/c90\/fd3\/247\/c90fd3247c204167b3b46eb653a7aa7b.png\"\/><\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u043d\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0438 gif-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f. \u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0442, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0432\u044b\u0448\u0435 \u0438 \u0441\u043a\u0430\u0436\u0438\u0442\u0435, \u0447\u0442\u043e \u043d\u0430 \u043d\u0435\u0439 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043e?<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-286581","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/286581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=286581"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/286581\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=286581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=286581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=286581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}