{"id":255014,"date":"2015-04-11T19:12:02","date_gmt":"2015-04-11T15:12:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=255014"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=255014","title":{"rendered":"\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0442\u043e\u0447\u0435\u043a \u043f\u0443\u0442\u0438"},"content":{"rendered":"<br \/>\n<h4>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0433\u043e\u0432\u043e\u0440\u043a\u0430 \u043f\u0440\u043e \u043a\u0440\u0435\u043d<\/li>\n<li>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 GPS-\u0442\u0440\u0435\u043a\u0430<\/li>\n<li>\u041a\u0430\u043a \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u0433\u043b\u044b \u041a\u0440\u044b\u043b\u043e\u0432\u0430-\u042d\u0439\u043b\u0435\u0440\u0430<\/li>\n<li>\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430<\/li>\n<li>\u0412\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb<\/li>\n<li>\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u0430, \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u0438 \u0431\u0430\u0440\u043e\u043c\u0435\u0442\u0440\u0430<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438\u043d\u0435\u0440\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0430\u043c\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0447\u0435\u043a \u043f\u0443\u0442\u0438, \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u043a\u0438\u0439 GPS-\u0442\u0440\u0435\u043a, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0438\u0445 \u043d\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0439. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0435\u0432\u044b\u0445 \u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0439 \u0435\u0441\u0442\u044c, \u0430 \u043f\u043b\u0430\u0442\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u0430 \u2014 \u043d\u0443\u0436\u043d\u043e \u0447\u0435\u043c-\u0442\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h4>\u041e\u0433\u043e\u0432\u043e\u0440\u043a\u0430 \u043f\u0440\u043e \u043a\u0440\u0435\u043d<\/h4>\n<p>  \u0421\u0442\u043e\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044f\u0441\u044c, 3D \u0442\u043e\u0447\u043a\u0430 \u043d\u0435 \u0434\u0430\u0451\u0442 \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0442\u0435\u043b\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043f\u0443\u0442\u0438 \u043d\u0430\u0442\u044f\u043d\u0443\u0442\u0430 \u043d\u0438\u0442\u043a\u0430, \u0430 \u043d\u0430\u0448 \u043e\u0431\u044a\u0435\u043a\u0442 \u2014 \u044d\u0442\u043e \u0431\u0443\u0441\u0438\u043d\u043a\u0430, \u0442\u043e \u0432\u0434\u043e\u043b\u044c \u043d\u0438\u0442\u043a\u0438 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0447\u0451\u0442\u043a\u043e, \u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0443 \u043f\u0440\u043e \u043a\u0440\u0435\u043d \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/c90\/ff9\/74c\/c90ff974cecb4be8998651801d18c026.jpg\"\/><\/p>\n<h4>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 GPS-\u0442\u0440\u0435\u043a\u0430<\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 GPS-\u0442\u0440\u0435\u043a, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u044e\u0449\u0438\u0439\u0441\u044f \u0444\u0430\u0439\u043b \u043a \u0444\u043e\u0440\u043c\u0430\u0442\u0443, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u042f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u043b \u043a GPX (\u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e XML).<\/p>\n<pre><code class=\"xml\">&lt;trkpt lat=&quot;12.345678&quot; lon=&quot;87.654321&quot;&gt;   &lt;ele&gt;839&lt;\/ele&gt;   &lt;time&gt;2013-05-09T11:24:28.776Z&lt;\/time&gt;   &lt;extensions&gt;     &lt;mytracks c=&quot;194.9&quot; s=&quot;9.25&quot; \/&gt;   &lt;\/extensions&gt; &lt;\/trkpt&gt; . . . &lt;trkpt lat=&quot;12.345678&quot; lon=&quot;87.654321&quot;&gt;   &lt;ele&gt;837&lt;\/ele&gt;   &lt;time&gt;2013-05-09T11:24:31.779Z&lt;\/time&gt;   &lt;extensions&gt;     &lt;mytracks c=&quot;195.7&quot; s=&quot;8.68&quot; \/&gt;   &lt;\/extensions&gt; &lt;\/trkpt&gt; <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0431\u0435\u0440\u0451\u043c \u043b\u044e\u0431\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u0411\u0414 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 MySQL), \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0435\u0451 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e XML. \u0424\u043e\u0440\u043c\u0430\u0442 XML \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u2014 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043d\u0430\u0439\u0442\u0438 \u0448\u0438\u0440\u043e\u0442\u0443, \u0434\u043e\u043b\u0433\u043e\u0442\u0443, \u0432\u044b\u0441\u043e\u0442\u0443 \u0438 \u0432\u0440\u0435\u043c\u044f. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 &#8216;xml_src&#8217;. \u0412\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/c3e\/7fc\/05e\/c3e7fc05e52c4a36b960805d1687cd05.png\"\/><\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0447\u0435\u0448\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 &#8216;points&#8217;. \u041a\u043e\u0434 \u0434\u043b\u044f MySQL:  <\/p>\n<pre><code class=\"sql\">insert into points (lat,lon,h,dt) SELECT cast(xx.lat AS DECIMAL(11, 6))       , cast(xx.lon AS DECIMAL(11, 6))       , cast(xx.ele AS DECIMAL(11, 6))       , cast(replace(replace(xx.`time`, &quot;T&quot;, &quot; &quot;), &quot;Z&quot;, &quot;&quot;) AS DATETIME) FROM   xml_src AS xx; <\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0438\u043c\u0435\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/8da\/492\/f9e\/8da492f9e375409e91d713278473ed39.png\"\/><\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0448\u0438\u0440\u043e\u0442\u0443 \u0438 \u0434\u043e\u043b\u0433\u043e\u0442\u0443 \u0432 \u043c\u0435\u0442\u0440\u044b (\u0441\u043c. \u0441\u0442\u0430\u0442\u044c\u044e <a href=\"http:\/\/habrahabr.ru\/post\/143898\/\">\u00ab\u0417\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0433\u0435\u043e\u0434\u0435\u0437\u0438\u044f\u00bb<\/a> \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0411\u0414, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 MSSQL \u0441\u043c. \u043c\u0435\u0442\u043e\u0434 <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/microsoft.sqlserver.types.sqlgeography.shortestlineto.aspx\">ShortestLineTo<\/a>). \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u0432\u043d\u044b X = 0, Y = 0. \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0432\u043e\u0439. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438, \u0437\u0430\u0442\u0435\u043c \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0432 \u043c\u0435\u0442\u0440\u0430\u0445. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u0447\u0451\u0442\u0430 \u0440\u0430\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"http:\/\/special.habrahabr.ru\/kyocera\/p\/179157\/\">\u00ab\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u0432 MySQL\u00bb<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/1ee\/413\/b5f\/1ee413b5f8f3474c998b8e9e80d9b694.png\"\/><\/p>\n<p>  \u0412\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c 0 \u0441\u0435\u043a\u0443\u043d\u0434 (\u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0417\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f MySQL<\/b><\/p>\n<div class=\"spoiler_text\">\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0440\u0435\u0442\u044c\u044e \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443 &#8216;track&#8217; \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e &#8216;geodist&#8217; \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u0434\u0432\u0443\u0445 \u0442\u043e\u0447\u0435\u043a \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432 \u043c\u0435\u0442\u0440\u0430\u0445.  <\/p>\n<pre><code class=\"sql\">FUNCTION geodist(src_lat DECIMAL(9, 6),                         src_lon DECIMAL(9, 6),                         dst_lat DECIMAL(9, 6),                         dst_lon DECIMAL(9, 6)                         )   RETURNS decimal(11,3)   DETERMINISTIC BEGIN   SET @dist := 6371000 * 2 * asin(sqrt(   power(sin((src_lat - abs(dst_lat)) * pi() \/ 180 \/ 2), 2) +   cos(src_lat * pi() \/ 180) *   cos(abs(dst_lat) * pi() \/ 180) *   power(sin((src_lon - dst_lon) * pi() \/ 180 \/ 2), 2)   ));   RETURN @dist; END <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0435\u0451 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0434\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0432 \u043c\u0435\u0442\u0440\u0430\u0445.<\/p>\n<pre><code class=\"sql\">INSERT INTO track (x, y, z, dt) SELECT if(42.302929 &gt; pp.lat, 1, -1) * geodist(42.302929, 18.891985, pp.lat, 18.891985)      , if(18.891985 &gt; pp.lon, -1, 1) * geodist(42.302929, 18.891985, 42.302929, pp.lon)      , h      , dt FROM   points AS pp; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0438\u043c\u0435\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/944\/abc\/25f\/944abc25fe8d419a82b95d48828040c1.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u043a\u0438 \u0432 \u0440\u0430\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0422\u043e, \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0447\u0435\u0440\u0435\u0437 4 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439, \u0442\u0440\u0435\u0442\u044c\u044f \u0447\u0435\u0440\u0435\u0437 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u2013 \u043d\u0430\u0441 \u0442\u0430\u043a \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442. \u041c\u044b \u0436\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0447\u0438\u043a\u0438? \u0410 \u043e\u043d\u0438 \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0442\u043e\u0447\u043a\u0438 \u0432 \u0440\u0430\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044e. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D1%83%D0%B1%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BF%D0%BB%D0%B0%D0%B9%D0%BD\">\u043a\u0443\u0431\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u043b\u0430\u0439\u043d<\/a>. \u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u0434 \u0440\u0443\u043a\u043e\u0439 \u0431\u044b\u043b Excel, \u044f \u0432 \u043d\u0451\u043c \u043c\u0430\u043a\u0440\u043e\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043b (\u0441\u043c. \u0441\u043f\u043e\u0439\u043b\u0435\u0440). \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0440\u0435\u0448\u0430\u0435\u043c \u0441 \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u00ab\u0434\u0430\u0442\u0447\u0438\u043a\u00bb. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0435 \u00ab\u0434\u0430\u0442\u0447\u0438\u043a\u0438\u00bb \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 10 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043c\u0438 \u0440\u0430\u0432\u0435\u043d 0,1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u0443\u0431\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043f\u043b\u0430\u0439\u043d \u043d\u0430 VB<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"vbscript\">Public Sub interpolate()  '------------------------ Dim i As Integer  Const start_n As Integer = 0 Const n As Integer = 1718  Dim src_x(n) As Double Dim src_y(n) As Double Dim spline_x(n) As Double Dim spline_a(n) As Double Dim spline_b(n) As Double Dim spline_c(n) As Double Dim spline_d(n) As Double  For i = start_n To n - 1     spline_x(i) = Application.ActiveWorkbook.ActiveSheet.Cells(i + 1, 1).Value     spline_a(i) = Application.ActiveWorkbook.ActiveSheet.Cells(i + 1, 2).Value     src_x(i) = spline_x(i)     src_y(i) = spline_a(i) Next  spline_c(0) = 0  Dim alpha(n - 1) As Double Dim beta(n - 1) As Double Dim a As Double Dim b As Double Dim c As Double Dim F As Double Dim h_i As Double Dim h_i1 As Double Dim z As Double Dim x As Double  alpha(0) = 0 beta(0) = 0  For i = start_n + 1 To n - 2     h_i = src_x(i) - src_x(i - 1)     h_i1 = src_x(i + 1) - src_x(i)     If (h_i = 0) Or (h_i1 = 0) Then         MsgBox (&quot;\u041e\u0428\u0418\u0411\u041a\u0410! \u0421\u0442\u0440\u043e\u043a\u0430 &quot; + CStr(i + 1) + &quot; \u041d\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435 X! \u042d\u0442\u043e \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u043b\u0430\u0439\u043d!&quot;)         Exit Sub     End If     a = h_i     c = 2 * (h_i + h_i1)     b = h_i1     F = 6 * ((src_y(i + 1) - src_y(i)) \/ h_i1 - (src_y(i) - src_y(i - 1)) \/ h_i)     z = (a * alpha(i - 1) + c)     alpha(i) = -b \/ z     beta(i) = (F - a * beta(i - 1)) \/ z Next  spline_c(n - 1) = (F - a * beta(n - 2)) \/ (c + a * alpha(n - 2)) For i = n - 2 To start_n + 1 Step -1     spline_c(i) = alpha(i) * spline_c(i + 1) + beta(i) Next  For i = n - 1 To start_n + 1 Step -1     h_i = src_x(i) - src_x(i - 1)     spline_d(i) = (spline_c(i) - spline_c(i - 1)) \/ h_i     spline_b(i) = h_i * (2 * spline_c(i) + spline_c(i - 1)) \/ 6 + (src_y(i) - src_y(i - 1)) \/ h_i Next  '------------------------------- ' my  Dim dx As Double Dim j As Integer Dim k As Integer Dim y As Double row_num = 1  For x = 0 To 3814 Step 0.1     i = 0     j = n - 1     Do While i + 1 &lt; j         k = i + (j - i) \/ 2         If x &lt;= spline_x(k) Then             j = k         Else             i = k         End If     Loop          dx = x - spline_x(j)     y = spline_a(j) + (spline_b(j) + (spline_c(j) \/ 2 + spline_d(j) * dx \/ 6) * dx) * dx     Application.ActiveWorkbook.ActiveSheet.Cells(row_num, 3).Value = x     Application.ActiveWorkbook.ActiveSheet.Cells(row_num, 4).Value = y     row_num = row_num + 1 Next  End Sub <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0438:  <\/p>\n<ol>\n<li>\u0412\u0440\u0435\u043c\u044f \u2013 X<\/li>\n<li>\u0412\u0440\u0435\u043c\u044f \u2013 Y<\/li>\n<li>\u0412\u0440\u0435\u043c\u044f \u2013 Z<\/li>\n<\/ol>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/d71\/5e1\/0b7\/d715e10b761e49c58043d513ee7e5bd1.png\"\/><\/p>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0442\u043e\u0447\u0435\u043a \u00ab\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u00bb, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u00ab\u0434\u0430\u0442\u0447\u0438\u043a\u0438\u00bb. \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 0,1 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0412\u0440\u0435\u043c\u044f \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 t = n \/ 10, \u0433\u0434\u0435 n \u2014 \u044d\u0442\u043e \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/37c\/801\/47f\/37c80147fa764510a49f34d315107980.png\"\/><\/p>\n<h4>\u041a\u0430\u043a \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u0433\u043b\u044b \u041a\u0440\u044b\u043b\u043e\u0432\u0430-\u042d\u0439\u043b\u0435\u0440\u0430<\/h4>\n<p>  \u0412\u043e\u0437\u044c\u043c\u0451\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u043e\u0441\u0430 \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u0430 \u0438\u0437 \u043c\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/255005\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/085\/cc2\/a97\/085cc2a97dc745aa893700b61822af40.png\"\/> <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/997\/849\/1e8\/9978491e80ac4e15a25e1dd98215038e.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/bd1\/278\/001\/bd1278001084462aaf553ab7be6d3d71.png\"\/> <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/abf\/c5c\/9ac\/abfc5c9ac38946babd5308982d4ed048.png\"\/><\/p>\n<p>  \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u043a\u0438, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0435\u0439 \u043d\u043e\u0441 \u0440\u0430\u0432\u043d\u044b:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/b49\/401\/8ad\/b494018ad0214b2284135175f605c698.png\"\/><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0432\u0441\u0435 \u0442\u0440\u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0441\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f v \u0438 \u0443\u0433\u043e\u043b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 alf \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438. \u041f\u0443\u0441\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u043f\u0443\u0442\u0438 \u2013 \u044d\u0442\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u0422\u043e\u0433\u0434\u0430 \u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>  v12 = v1 * v2 = (1; 0; 0) * (0; 1; 0) = (0; 0; 1)<\/p>\n<p>  \u0423\u0433\u043e\u043b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:  <\/p>\n<pre><code class=\"vbscript\">Public Function vectors_angle(v1 As TVector, v2 As TVector) As Double     v1 = normal(v1)     v2 = normal(v2)     vectors_angle = Application.WorksheetFunction.Acos(v1.x * v2.x + v1.y * v2.y + v1.z * v2.z) End Function <\/code><\/pre>\n<p>  Alf12 = 90. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u043e\u0441\u0435\u0439 \u0438 \u0443\u0433\u043b\u043e\u0432:  <\/p>\n<pre><code class=\"vbscript\">Public Function create_quat(rotate_vector As TVector, rotate_angle As Double) As TQuat     rotate_vector = normal(rotate_vector)     create_quat.w = Cos(rotate_angle \/ 2)     create_quat.x = rotate_vector.x * Sin(rotate_angle \/ 2)     create_quat.y = rotate_vector.y * Sin(rotate_angle \/ 2)     create_quat.z = rotate_vector.z * Sin(rotate_angle \/ 2) End Function <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d:<\/p>\n<p>  (w=0,7071; x=0; y=0; z=0,7071)<\/p>\n<p>  \u0418\u0437 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430:  <\/p>\n<pre><code class=\"vbscript\">    sqw = w * w     sqx = x * x     sqy = y * y     sqz = z * z          bank = atan2(2 * (w * x + y * z), 1 - 2 * (sqx + sqy))     altitude = Application.WorksheetFunction.Asin(2 * (w * y - x * z))     heading = atan2(2 * (w * z + x * y), 1 - 2 * (sqy + sqz)) <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430: \u043a\u0443\u0440\u0441 = 90, \u0442\u0430\u043d\u0433\u0430\u0436 = 0, \u043a\u0440\u0435\u043d = 0. <\/p>\n<p>  \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u044b \u043c\u044b \u0442\u0430\u043a \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043e\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u043e\u0441\u0430 \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u0430 \u21162 \u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u21163 \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043e\u0442\u0447\u0451\u0442\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e \u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0435\u0439 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u21162 \u0438 \u21163 (\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u043c \u2013 \u0441\u043c. \u0432 <a href=\"http:\/\/habrahabr.ru\/post\/255005\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>).<br \/>  \u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430 (\u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0432\u0434\u043e\u043b\u044c \u043e\u0441\u0438 Z):<\/p>\n<p>  (w=0,7071; x=0; y=0; z=-0,7071)<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0440\u0430\u0432\u043d\u044b:<br \/>  v2 = (x=1; y=0; z=0)<br \/>  v3 = (x=0; y=0; z=-1)<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/400\/592\/3a7\/4005923a7ff847bfa935797c016b47c4.png\"\/> <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/b58\/ad3\/26c\/b58ad326cb1c4f83bfe75534b9e6fe85.png\"\/><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0430 \u0441 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430:<\/p>\n<p>  (w=0,7071; x=0; y=0; z=-0,7071),<br \/>  \u043a\u0443\u0440\u0441 = 0, \u0442\u0430\u043d\u0433\u0430\u0436 = 90, \u043a\u0440\u0435\u043d = 0.<\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u044b \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0434\u0451\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u0438 \u0432 \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/348\/7bf\/b5c\/3487bfb5cc224cc1a81d048d05d1a02f.png\"\/><\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0438\u0437 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430 \u0441\u0435\u0440\u0438\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043e\u0442\u0447\u0451\u0442\u0430. <\/p>\n<p>  \u041f\u043e\u0434\u0432\u0435\u0434\u0451\u043c \u0438\u0442\u043e\u0433. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0449\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"vbscript\">' \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d &quot;\u043d\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430&quot; q_mul.w = 1 q_mul.x = 0 q_mul.y = 0 q_mul.z = 0  For row_n = M To N      ' \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430     v1.x = Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 1).Value     v1.y = Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 2).Value     v1.z = Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 3).Value  ' \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430     v2.x = Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 1).Value     v2.y = Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 2).Value     v2.z = Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 3).Value  ' \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0442\u0447\u0451\u0442\u0430 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430          q_inv = myMath.quat_invert(q_mul) ' \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430     v1 = myMath.quat_transform_vector(q_inv, v1) ' \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u043c                                          ' \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0448\u0430\u0433\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u043c (1; 0; 0) \u2013 \u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435     v2 = myMath.quat_transform_vector(q_inv, v2) ' \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u043c      ' \u0438\u0449\u0435\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430     r12 = myMath.vecmul(v1, v2) ' \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432     alf = myMath.vectors_angle(v1, v2) ' \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u0433\u043e\u043b \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438     q12 = myMath.create_quat(r12, alf) ' \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0441\u0438 \u0438 \u0443\u0433\u043b\u0430 \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430          ' \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0443\u0433\u043b\u043e\u0432     ypr = myMath.quat_to_krylov(q12)          Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 4).Value = ypr.heading     Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 5).Value = ypr.altitude     Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 6).Value = ypr.bank    ' \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432 \u0441\u0435\u0440\u0438\u044e     q_mul = myMath.quat_mul_quat(q_mul, q12) ' \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u0432      Next <\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u0435 \u0434\u043b\u044f Excel-\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0435\u0440\u0432\u044b\u0445 \u0442\u0440\u0451\u0445 \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u043e\u0432. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 4, 5, 6 \u0441\u0442\u043e\u043b\u0431\u0438\u043a. <\/p>\n<h4>\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430<\/h4>\n<p>  \u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u0433\u043e\u0434\u044f\u0442\u0441\u044f \u2014 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043b\u0435\u0433\u043a\u043e \u2013 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0442\u043e\u0447\u0435\u043a \u2013 \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0430\u043c\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u2013 \u044d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435. \u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0437\u0430\u043c\u0435\u0440\u043e\u0432. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443 \u043d\u0430\u0441 10 \u00ab\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439\u00bb \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432 \u043c\u0435\u0442\u0440\u0430\u0445 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 10. <\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/fd3\/19e\/769\/fd319e7697fc4d06b69566aec658eb33.png\"\/><\/p>\n<p>  \u0411\u0435\u0440\u0451\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/34b\/9d0\/9a0\/34b9d09a0acd46dd82a016da1ec6ec57.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f. \u0413\u0438\u0440\u043e\u0441\u043a\u043e\u043f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0443\u0433\u043b\u043e\u0432\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0435\u0440\u0451\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0443\u0433\u043b\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u0433\u043b\u043e\u0432\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c. <\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0451 \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u0448\u0443\u043c. \u0412 \u0448\u0443\u043c\u0435 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0448\u0443\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u0430 (\u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435) \u0438 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0437\u0435\u043c\u043b\u0438 (\u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u00ab\u0434\u0430\u0442\u0447\u0438\u043a\u00bb \u043d\u0435 \u0432 \u043a\u043e\u0441\u043c\u043e\u0441\u0435). \u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0448\u0443\u043c\u0430 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 (\u0438\u0437\u0443\u0447\u0430\u0435\u043c datasheet \u043d\u0430 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0434\u0430\u0442\u0447\u0438\u043a). \u041c\u043e\u0439 \u0434\u0430\u0442\u0447\u0438\u043a \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 16 \u0431\u0438\u0442 \u0438 \u0438\u043c\u0435\u0435\u0442 4 \u0440\u0435\u0436\u0438\u043c\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0441\u0432\u043e\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c: \u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u00b1250\u00ba\/\u0441\u0435\u043a,\u2026 \u0443 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u00b12000\u00ba\/\u0441\u0435\u043a. \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 131 LSB\/(\u00ba\/s). \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445, \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439:<\/p>\n<p>  \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c = \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c_LSB * \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \/ \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 = 131 * \u00b1250 \/ (2 ^ 16) = 131 * \u00b1250 \/ 65536 = \u00b10,49972534 \u00ba\/\u0441\u0435\u043a.<\/p>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0448\u0443\u043c\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0434\u0443\u0441\u0430. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f Excel-\u044f:<br \/>  =(\u0421\u041b\u0427\u0418\u0421()-0,5)\/N, \u0433\u0434\u0435 N \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u00ab\u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439\u00bb \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p>  \u0417\u0435\u043c\u043b\u044f \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 15 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432 \u0447\u0430\u0441. \u042d\u0442\u043e 0,0041667 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u0447\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f. \u0417\u0430\u0431\u0430\u0432\u044b \u0440\u0430\u0434\u0438 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u044d\u0442\u043e.<\/p>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0417\u0435\u043c\u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u0441\u044c\u044e Z. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0442\u0430\u043a\u0436\u0435, \u0447\u0442\u043e \u0442\u0435\u043b\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u044d\u043a\u0432\u0430\u0442\u043e\u0440\u0435 \u0438 \u043e\u0441\u044c Y \u0442\u0435\u043b\u0430 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043d\u0430 \u0441\u0435\u0432\u0435\u0440 (\u043f\u043e \u043a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439). \u0422\u043e\u0433\u0434\u0430 \u043e\u0441\u044c \u0425 \u0442\u0435\u043b\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0417\u0435\u043c\u043b\u0438 \u0438 \u0442\u0435\u043b\u0430 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043e\u0441\u044c\u044e Z \u0442\u0435\u043b\u0430. \u0417\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u0448\u0438\u0440\u043e\u0442\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043b\u0430 \u043a \u0441\u0435\u0432\u0435\u0440\u0443. \u0422\u043e\u0433\u0434\u0430 \u043e\u0441\u044c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 \u0425 \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435 \u043d\u0430 \u0447\u0438\u0441\u043b\u043e \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0440\u0430\u0432\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043d\u043e\u0432\u043e\u0439 \u0448\u0438\u0440\u043e\u0442\u044b. \u041f\u0440\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0432 \u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u043f\u043e\u043b\u0443\u0448\u0430\u0440\u0438\u0435 \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u043a \u043f\u043b\u044e\u0441, \u0432 \u044e\u0436\u043d\u043e\u0435 \u2014 \u0437\u043d\u0430\u043a \u043c\u0438\u043d\u0443\u0441. \u041a\u043e\u0433\u0434\u0430 \u0442\u0435\u043b\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435, \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u2014 g.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/b1a\/3c0\/d6b\/b1a3c0d6bbd745869d1bc6534caee1e7.png\"\/> <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/9ce\/d64\/f81\/9ced64f815c94422ae369fd7cf49c651.png\"\/><\/p>\n<p>  \u0414\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0417\u0435\u043c\u043b\u0438 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043d\u0443\u0436\u043d\u043e:  <\/p>\n<ol>\n<li>\u0423\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 g \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb.<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0443\u0433\u043b\u0430. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u0430 \u0431\u0435\u0440\u0451\u043c \u0448\u0438\u0440\u043e\u0442\u0443.<\/li>\n<li>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u043c\u0441\u044f \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb.<\/li>\n<\/ol>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043b\u0430 \u043f\u043b\u0430\u043d\u0435\u0442\u043e\u0439 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0437\u0430\u043c\u0435\u0440\u0430 \u0434\u0435\u043b\u0430\u0435\u043c:  <\/p>\n<ol>\n<li>\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u043e\u0441\u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0448\u0438\u0440\u043e\u0442\u0443 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/li>\n<li>\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c \u043f\u043b\u0430\u043d\u0435\u0442\u0430 \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0438 10 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 0,0041667 \/ 10 = 0,00041667.<\/li>\n<li>\u0421\u0442\u0440\u043e\u0438\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0441\u0438 \u0438 \u0443\u0433\u043b\u0430 \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430.<\/li>\n<li>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u0430 (\u043a\u0443\u0440\u0441, \u0442\u0430\u043d\u0433\u0430\u0436, \u043a\u0440\u0435\u043d) \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c \u00ab\u0434\u0430\u0442\u0447\u0438\u043a\u0430\u00bb.<\/li>\n<\/ol>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<br \/>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/835\/f90\/508\/835f905088e54c25bf7c899c913a29c9.png\"\/><\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0442\u0440\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u2014 \u044d\u0442\u043e \u00ab\u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430\u00bb.<\/p>\n<h4>\u0412\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb<\/h4>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0421, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043a\u0430\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a \u043c\u0435\u0440\u0438\u0434\u0438\u0430\u043d\u0443 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u00ab\u044e\u0433\u00bb -&gt; \u00ab\u0441\u0435\u0432\u0435\u0440\u00bb. \u041f\u0443\u0441\u0442\u044c \u043e\u0441\u044c Y \u043d\u0430\u0448\u0435\u0439 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u0421 = (0, 1, 0). \u0410 \u0432\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f g \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0432\u0434\u043e\u043b\u044c \u043e\u0441\u0438 Z, \u043d\u043e \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. g = (0, 0, -1). \u0422\u043e\u0433\u0434\u0430, \u0435\u0441\u043b\u0438 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0442\u0435\u043b\u0430 \u0432 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u0430\u043a \u041d = (1, 0, 0), \u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442\u044b, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u0438 \u0434\u043b\u044f \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 g \u0438 \u0421. \u0412\u0440\u0430\u0449\u0430\u0442\u044c \u044d\u0442\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u043e\u043c. \u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043e\u0442 \u043a\u0432\u0430\u0442\u0435\u0440\u043d\u0438\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 (q_mul).<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u0442\u0440\u043e\u043a \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0443\u0433\u043b\u043e\u0432 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"vbscript\">Public Sub calc_all()  Dim v1 As myMath.TVector Dim v2 As myMath.TVector Dim r12 As myMath.TVector Dim m12 As myMath.TMatrix Dim q12 As myMath.TQuat Dim q_mul As myMath.TQuat Dim q_inv As myMath.TQuat Dim ypr As myMath.TKrylov Dim alf As Double Dim row_n As Long Dim g As myMath.TVector Dim nord As myMath.TVector  g.x = 0 g.y = 0 g.z = -1  nord.x = 0 nord.y = 1 nord.z = 0  q_mul.w = 1 q_mul.x = 0 q_mul.y = 0 q_mul.z = 0  For row_n = 3 To 38142          v1.x = Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 1).Value     v1.y = Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 2).Value     v1.z = Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 3).Value     v2.x = Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 1).Value     v2.y = Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 2).Value     v2.z = Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 3).Value          q_inv = myMath.quat_invert(q_mul)     v1 = myMath.quat_transform_vector(q_inv, v1)     v2 = myMath.quat_transform_vector(q_inv, v2)     g = myMath.quat_transform_vector(q_inv, g)     nord = myMath.quat_transform_vector(q_inv, nord)          r12 = myMath.vecmul(v1, v2)     alf = myMath.vectors_angle(v1, v2)     q12 = myMath.create_quat(r12, alf)     ypr = myMath.quat_to_krylov(q12)          Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 4).Value = ypr.heading     Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 5).Value = ypr.altitude     Application.ActiveWorkbook.ActiveSheet.Cells(row_n, 6).Value = ypr.bank          Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 7).Value = g.x     Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 8).Value = g.y     Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 9).Value = g.z          Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 10).Value = nord.x     Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 11).Value = nord.y     Application.ActiveWorkbook.ActiveSheet.Cells(row_n - 1, 12).Value = nord.z          q_mul = myMath.quat_mul_quat(q_mul, q12)      Next  End Sub <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u2014 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u0441 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0435. \u042d\u0442\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0417\u0430\u0442\u0435\u043c \u0442\u0440\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u2014 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0435 \u0443\u0433\u043b\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430. \u0414\u0430\u043b\u0435\u0435 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb \u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f. \u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0442\u0440\u0438 \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0430 \u2014 \u044d\u0442\u043e \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/73c\/d57\/b4c\/73cd57b4c1f34ba5bcc8e6992a4ade6d.png\"\/><\/p>\n<h4>\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u0430, \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u0438 \u0431\u0430\u0440\u043e\u043c\u0435\u0442\u0440\u0430<\/h4>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0432\u0441\u0451 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0434\u043e\u043b\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u0442\u043e \u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0443 \u043d\u0430\u0441 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0432\u0434\u043e\u043b\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0434\u043e\u043b\u044c \u043e\u0441\u0438 X. \u041f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u0442\u0440\u0451\u0445 \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432: \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u0448\u0443\u043c\u044b \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0442\u0435\u043b\u0430:<\/p>\n<p>  a = (x = length(a), 0, 0);<br \/>  A = a + (9,8 \/ N) * g + rnd,<br \/>  \u0433\u0434\u0435 a \u2014 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0439 \u043f\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f,<br \/>   N \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443,<br \/>   g \u2014 \u0432\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f,<br \/>   rnd \u2014 \u0448\u0443\u043c.<br \/>  \u0412\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0448\u0443\u043c\u0430 \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430. \u0414\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0443 \u0436\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0443:<\/p>\n<p>  \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c = \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c_LSB * \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \/ \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 = 16,384 * \u00b12 \/ 65536 = \u00b10,0005 g = \u00b10,0049 \u043c\/\u04412.<\/p>\n<p>  \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0443\u0445\u0443\u0434\u0448\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438:<br \/>  Ax = length(a) + gx * 9,8 \/ N + random(0,01) \u2014 0,005<br \/>  Ay = gy * 9,8 \/ N + random(0,01) \u2014 0,005<br \/>  Az = gz * 9,8 \/ N + random(0,01) \u2014 0,005<\/p>\n<p>  \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\u0445 \u0434\u0430\u044e\u0442 \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A2%D0%B5%D1%81%D0%BB%D0%B0_(%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%86%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D1%80%D0%B5%D0%BD%D0%B8%D1%8F)\">\u0422\u0435\u0441\u043b\u0430\u0445<\/a>. \u041c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0417\u0435\u043c\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 0,00005 T = 50 uT. \u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<p>  \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c = 15uT * \u00b14800uT \/ 65536 = \u00b11uT.<\/p>\n<p>  \u042d\u0442\u043e \u0434\u0430\u0451\u0442 \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 4%. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0432\u0435\u043a\u0442\u043e\u0440\u0443 \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb, \u0442\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0438 \u00ab\u0443\u0445\u0443\u0434\u0448\u0438\u0442\u044c\u00bb \u043a\u0430\u0436\u0434\u0443\u044e \u0435\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u043d\u0430 4%:<br \/>  mx = Cx + random(2) \u2014 1<br \/>  my = Cy + random(2) \u2014 1<br \/>  mz = Cz + random(2) \u2014 1.<\/p>\n<p>  \u0421 \u0431\u0430\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u043c \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435. \u0418\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0432\u044b\u0441\u043e\u0442\u0435 \u0432 \u043c\u0435\u0442\u0440\u0430\u0445, \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043c\u0435\u0442\u0440\u0430 (\u0441\u043c. \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0431\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435). \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u043f\u0440\u044f\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0432 \u041f\u0430 \u2014 \u0441\u043c. <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B0%D1%80%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0\">\u0431\u0430\u0440\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443<\/a>. \u0410 \u0442\u0430\u043a <\/p>\n<p>  h = Z + random(1) \u2014 0,5.<\/p>\n<p>  \u0412\u043e\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0432\u0441\u0451. \u041a\u043e\u043c\u0443 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u2014 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043b\u044e\u0441\u0438\u043a\u0438. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0442\u0435\u043c\u0443 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 (\u043e\u0442 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u0442\u043e\u0447\u043a\u0430\u043c \u043f\u0443\u0442\u0438) \u2014 \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.     \t<\/p>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/255329\/\"> http:\/\/habrahabr.ru\/post\/255329\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<br \/>\n<h4>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0433\u043e\u0432\u043e\u0440\u043a\u0430 \u043f\u0440\u043e \u043a\u0440\u0435\u043d<\/li>\n<li>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 GPS-\u0442\u0440\u0435\u043a\u0430<\/li>\n<li>\u041a\u0430\u043a \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u0433\u043b\u044b \u041a\u0440\u044b\u043b\u043e\u0432\u0430-\u042d\u0439\u043b\u0435\u0440\u0430<\/li>\n<li>\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0433\u0438\u0440\u043e\u0441\u043a\u043e\u043f\u0430<\/li>\n<li>\u0412\u0435\u043a\u0442\u043e\u0440 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u00ab\u043d\u0430 \u0441\u0435\u0432\u0435\u0440\u00bb<\/li>\n<li>\u0418\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u0430, \u043a\u043e\u043c\u043f\u0430\u0441\u0430 \u0438 \u0431\u0430\u0440\u043e\u043c\u0435\u0442\u0440\u0430<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438\u043d\u0435\u0440\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0430\u043c\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0447\u0435\u043a \u043f\u0443\u0442\u0438, \u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u043a\u0438\u0439 GPS-\u0442\u0440\u0435\u043a, \u0438\u043c\u0435\u044e\u0449\u0438\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0438\u0445 \u043d\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0439. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043b\u0435\u0432\u044b\u0445 \u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0439 \u0435\u0441\u0442\u044c, \u0430 \u043f\u043b\u0430\u0442\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u0430 \u2014 \u043d\u0443\u0436\u043d\u043e \u0447\u0435\u043c-\u0442\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f.  <\/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-255014","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255014","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=255014"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255014\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}