{"id":353258,"date":"2024-05-20T22:24:25","date_gmt":"2024-05-20T22:24:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=353258"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=353258","title":{"rendered":"<span>\u041a\u0430\u043a \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0442\u0438\u043f\u0430 \u00ab\u044d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u00bb<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041d\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u043c \u00ab\u044d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u00bb \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a \u00ab\u043e\u0434\u0438\u043d \u043a\u0430\u043c\u0435\u043d\u044c\u00bb. \u041e\u0434\u0438\u043d &#8212; \u00abein\u00bb, \u043a\u0430\u043c\u0435\u043d\u044c &#8212; \u00abStain\u00bb. \u0412\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u0434 \u044d\u0442\u043e\u0439 \u0444\u0430\u043c\u0438\u043b\u0438\u0435\u0439 \u0436\u0438\u043b \u043e\u0434\u0438\u043d \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0438 \u0437\u0432\u0430\u043b\u0438 \u0435\u0433\u043e &#8230; \u041d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0447\u044c \u043d\u0435 \u043e \u043d\u0451\u043c. \u0420\u0435\u0447\u044c \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u043e \u043f\u043e\u0438\u0441\u043a\u0443 \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0438, \u0442\u0430\u043a\u043e\u0439 \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u0437 \u043d\u0435\u0451 \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u0431\u044b\u043b\u0430 \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439. \u00ab\u041e\u0434\u0438\u043d \u043a\u0430\u043c\u0435\u043d\u044c\u00bb &#8212; \u044d\u0442\u043e \u043f\u0440\u043e \u043f\u043b\u0438\u0442\u043a\u0443. \u0412 \u043c\u043e\u0437\u0430\u0438\u043a\u0435 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430 \u0442\u0430\u043a\u0438\u0445 \u043f\u043b\u0438\u0442\u043e\u043a \u0434\u0432\u0435, \u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443. \u041d\u0435 \u0432\u0434\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BB%D0%B8%D1%82%D0%BA%D0%B8\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0438<\/a> \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 (2023) \u0440\u0435\u0448\u0435\u043d\u0430. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u043c\u043e\u0437\u0430\u0438\u043a\u0438.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u00ab\u0448\u043b\u044f\u043f\u0430 \u044d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430\u00bb &#8212; \u043f\u043b\u0438\u0442\u043a\u0430, \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043d\u0430 \u0448\u043b\u044f\u043f\u0443. \u0418\u043b\u0438, \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u043d\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0443. \u0418\u0437 \u043d\u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443. \u0422\u043e\u043b\u044c\u043a\u043e, \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0430\u043c\u0438 \u0448\u043b\u044f\u043f\u044b, \u0442\u0430\u043a \u0438 \u0438\u0445 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0421\u0447\u0438\u0442\u0430\u0442\u044c \u043b\u0438 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u043e\u0439? \u041c\u043e\u0436\u043d\u043e \u0438 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u043b\u0438\u0442\u043a\u0430 \u00ab\u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0430\u00bb. \u0418\u0437 \u043d\u0435\u0451 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443, \u043f\u043e \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c. \u042d\u0442\u0438 \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u043f\u043b\u0438\u0442\u043e\u043a \u043c\u043e\u0433\u0443\u0442, \u043f\u043b\u0430\u0432\u043d\u043e \u043c\u0435\u043d\u044f\u044f \u0444\u043e\u0440\u043c\u0443, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430, \u043c\u0435\u043d\u044f\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0430\u043d\u0435\u0439 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u0415\u0449\u0451 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043f\u043b\u0438\u0442\u043e\u043a. \u0414\u0430\u043b\u044c\u0448\u0435 \u0431\u043e\u043b\u044c\u0448\u0435. \u0423 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u0438\u043d\u0430 \u0433\u0440\u0430\u043d\u0435\u0439 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430.<\/p>\n<p>\u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0442\u0430\u043a\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0448\u043b\u044f\u043f\u044b \u0438 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0438, \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u0444\u043e\u0440\u043c\u043e\u0439 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u0438\u043d\u0430 \u0433\u0440\u0430\u043d\u0435\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438\u0437 \u043f\u043b\u0438\u0442\u043e\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u044b. \u0422\u043e \u0435\u0441\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0431\u0435\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041f\u043b\u0438\u0442\u043a\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0433\u0440\u0430\u043d\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0430 \u00abSpectre\u00bb (\u043f\u0440\u0438\u0437\u0440\u0430\u043a). \u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0435\u0448\u0435\u043d\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/articles\/359244\/\" rel=\"noopener noreferrer nofollow\">\u0422\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0448\u0435\u0441\u0442\u044c \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043a\u0440\u0430\u0441\u043e\u0442\u044b<\/a>\u00bb \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043a\u0430\u043a \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/articles\/597261\/\" rel=\"noopener noreferrer nofollow\">\u0414\u0432\u0430 \u0432\u0438\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439<\/a>\u00bb \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0448\u0443 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043d\u043e\u0432\u044b\u0435 \u043c\u043e\u0437\u0430\u0438\u043a\u0438. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u00ab36, 90, 120 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043a\u0440\u0430\u0441\u043e\u0442\u044b\u00bb.<\/p>\n<p>\u041d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443. \u0421\u0435\u0442\u043a\u0438 \u0438\u0437 \u0440\u0430\u0432\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u0440\u0430\u0432\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0445 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0435\u0442\u043a\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0441 \u043d\u0435\u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u043e\u0434\u043d\u0443 \u0442\u043e\u0447\u043a\u0443 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0,0)\" alt=\"(0,0)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/297\/c96\/0d4\/297c960d4612f7b5aa6bb79a9bf7ddbf.svg\" width=\"43\" height=\"22\"\/>, \u0432\u0442\u043e\u0440\u0443\u044e \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(1,0)\" alt=\"(1,0)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/776\/767\/5c5\/7767675c5615a41b1c62ea33f71b9668.svg\" width=\"43\" height=\"22\"\/>, \u0442\u043e \u0442\u0440\u0435\u0442\u044c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043a\u0430\u043a <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(1, \\tan(30\u00b0))=(1,1\/\\sqrt{3})\" alt=\"(1, \\tan(30\u00b0))=(1,1\/\\sqrt{3})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/270\/490\/8c4\/2704908c470f91833ae304295a173b32.svg\" width=\"209\" height=\"24\"\/>. \u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u043a\u0430\u043a <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(\\cos(60\u00b0),\\sin(60\u00b0))=(1\/2,\\sqrt{3}\/2)\" alt=\"(\\cos(60\u00b0),\\sin(60\u00b0))=(1\/2,\\sqrt{3}\/2)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/52c\/58d\/028\/52c58d028ef9bf8fe9a1a090b743f7cd.svg\" width=\"284\" height=\"24\"\/>.<\/p>\n<p>\u0423 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0435\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439, \u0434\u0430\u043b\u044c\u043d\u044f\u044f \u0442\u043e\u0447\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0, 2\/\\sqrt{3})\" alt=\"(0, 2\/\\sqrt{3})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/85c\/b7d\/d34\/85cb7dd344a446cac2958022cdb76fc2.svg\" width=\"78\" height=\"24\"\/>. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a \u0447\u0438\u0441\u043b\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fe3\/b52\/f4a\/fe3b52f4a4016db9ad7e7264f413c4af.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fe3\/b52\/f4a\/fe3b52f4a4016db9ad7e7264f413c4af.png\"\/><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0440\u0435\u0431\u0440\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430, \u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0, 1\/\\sqrt{3})\" alt=\"(0, 1\/\\sqrt{3})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c06\/672\/144\/c066721442a5baa66f733c9dc93044eb.svg\" width=\"78\" height=\"24\"\/> \u0438 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(-1\/2, 1\/2\\sqrt{3})\" alt=\"(-1\/2, 1\/2\\sqrt{3})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b74\/19c\/03c\/b7419c03cbf59045ef5f1ddeef800725.svg\" width=\"122\" height=\"24\"\/>. \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432\u0441\u0435\u0433\u043e \u0448\u0435\u0441\u0442\u044c, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u043c.<\/p>\n<p>\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430 \u0431\u044b\u043b\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0430\u044f.<\/p>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u044d\u0442\u0438\u0445 \u0441\u0435\u043c\u0438 \u0442\u043e\u0447\u0435\u043a \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0443\u0442 \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{3}\" alt=\"\\sqrt{3}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f29\/024\/92d\/f2902492d041673fb1f682d87e6db9b1.svg\" width=\"26\" height=\"23\"\/> \u0440\u0430\u0437 \u0438 \u0441\u0442\u0430\u043d\u0443\u0442:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(0,0),(\\sqrt{3},0),(\\sqrt{3},1),(\\sqrt{3}\/2,3\/2),(0, 2);\\;(0,1),(-\\sqrt{3}\/2,1\/2)\" alt=\"(0,0),(\\sqrt{3},0),(\\sqrt{3},1),(\\sqrt{3}\/2,3\/2),(0, 2);\\;(0,1),(-\\sqrt{3}\/2,1\/2)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ada\/0a7\/b53\/ada0a7b53814e7e97724bd0aca27f275.svg\" width=\"513\" height=\"24\"\/><\/p>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{3}\/2\" alt=\"\\sqrt{3}\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7a6\/838\/1cd\/7a68381cdde8a167596b8680a723c050.svg\" width=\"45\" height=\"24\"\/> \u0434\u043b\u044f x \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"1\/2\" alt=\"1\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cd\/6ff\/eb9\/1cd6ffeb998a00aa2e454f0c62b4c73f.svg\" width=\"29\" height=\"22\"\/> \u0434\u043b\u044f y.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/72f\/7f1\/67e\/72f7f167e0c70f8492f9d4637bd1963f.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/72f\/7f1\/67e\/72f7f167e0c70f8492f9d4637bd1963f.png\"\/><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(0,0),(2,0),(2,2),(1,3),(0,4);(0,2),(-1,1)\" alt=\"(0,0),(2,0),(2,2),(1,3),(0,4);(0,2),(-1,1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d91\/69c\/585\/d9169c5852b1d4b661e462db1d7adc4d.svg\" width=\"367\" height=\"22\"\/><\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0431\u0435\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u0439 \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b \u0438\u0437 \u043d\u0443\u043b\u044f, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u043d\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u043c\u0430\u043b\u044b\u0445 \u0448\u0430\u0433\u043e\u0432. \u0422\u043e\u0433\u0434\u0430 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0437\u043d\u0430\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0430\u0433\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(2,0,0,0),(1,3,0,0),(0,0,0,2),(0,0,1,1)\" alt=\"(2,0,0,0),(1,3,0,0),(0,0,0,2),(0,0,1,1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/981\/ea6\/dbd\/981ea6dbd2dc08f04f51f67d1b97dae7.svg\" width=\"343\" height=\"22\"\/><\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"[2,0,0,0],[1,3,0,0],[-1,3,0,0],[-2,0,0,0],[-1,-3,0,0],[1,-3,0,0]\" alt=\"[2,0,0,0],[1,3,0,0],[-1,3,0,0],[-2,0,0,0],[-1,-3,0,0],[1,-3,0,0]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5bf\/397\/992\/5bf397992f9cd523f3edbad02233a291.svg\" width=\"568\" height=\"22\"\/><\/p>\n<p>\u2014 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u0438<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"[0,0,1,1],[0,0,0,2],[0,0,-1,1],[0,0,-1,-1],[0,0,0,-2],[0,0,1,-1]\" alt=\"[0,0,1,1],[0,0,0,2],[0,0,-1,1],[0,0,-1,-1],[0,0,0,-2],[0,0,1,-1]\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/824\/833\/caf\/824833caf682607824b111c53dfc425f.svg\" width=\"568\" height=\"22\"\/><\/p>\n<p>\u2014 \u0434\u043b\u044f \u043c\u0430\u043b\u043e\u0433\u043e \u0448\u0430\u0433\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438  \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u0430:<br \/> [2,0,0,0],[0,0,1,1],[1,3,0,0],[0,0,0,2],[-1,3,0,0],[0,0,-1,1],<br \/> [-2,0,0,0],[0,0,-1,-1],[-1,-3,0,0],[0,0,0,-2],[1,-3,0,0],[0,0,1,-1]<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0440\u0443\u0431\u0430\u0448\u043a\u0443.<\/p>\n<p>\u0424\u0438\u0433\u0443\u0440\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043f\u0430\u0440 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044f \u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0412 \u043e\u0434\u043d\u043e\u043c \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0435 \u0434\u0432\u0435 \u043f\u0430\u0440\u044b \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0438 \u0432 \u0434\u0432\u0443\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0435. \u0422\u0430\u043a\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b6f\/b28\/6dc\/b6fb286dcd1cd32ca2a0e443ef848728.png\" width=\"400\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b6f\/b28\/6dc\/b6fb286dcd1cd32ca2a0e443ef848728.png\"\/><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u0442\u0440\u0430\u0444\u0430\u0440\u0435\u0442\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u043d\u0430\u0440\u0430\u0432\u043d\u0435, \u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438. \u0424\u0438\u0433\u0443\u0440\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u044f\u0442\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u043e\u0434\u0438\u043d \u0437\u0430\u043d\u044f\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0432 \u043e\u0434\u043d\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u043f\u0440\u0438\u043b\u0435\u0433\u0430\u044e\u0449\u0438\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u0435\u0449\u0451 \u0432 \u0442\u0440\u0451\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u0430\u0440\u044b.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u0440\u0443\u0431\u0430\u0448\u043a\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0446\u0435\u043b\u044b\u0445 \u0442\u0440\u0438: \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0442 \u043d\u0438\u0437\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u043e\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u00ab\u043f\u0443\u0433\u043e\u0432\u0438\u0446\u00bb: \u043e\u0442 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0438\u043b\u0438 \u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0439. \u042f \u0432\u044b\u0431\u0440\u0430\u043b \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0439 \u043f\u0443\u0433\u043e\u0432\u0438\u0446\u044b. \u0410 \u043e\u0431\u0445\u043e\u0434 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0438\u0437\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0438, \u0438 \u0438\u0434\u0442\u0438 \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439.<\/p>\n<p>\u0428\u0430\u0433\u0438 \u043f\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0431\u0443\u0434\u0443\u0442<br \/> [0,0,1,1],[0,0,1,-1],[1,3,0,0],[2,0,0,0],[0,0,0,2],[0,0,-1,1],[0,0,-1,1],<br \/> [0,0,-1,-1],[-1,3,0,0],[-2,0,0,0],[0,0,0,-2],[0,0,1,-1],[-1,-3,0,0],[1,-3,0,0]<\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442:<br \/> (0,0,-1,-3),(0,0,0,-2),(0,0,1,-3),(1,3,1,-3),(3,3,1,-3),(3,3,1,-1),(3,3,0,0),<br \/> (3,3,-1,1),(3,3,-2,0),(2,6,-2,0),(0,6,-2,0),(0,6,-2,-2),(0,6,-1,-3),(-1,3,-1,-3)<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/p5js.org\" rel=\"noopener noreferrer nofollow\">p5.js<\/a>, \u044d\u0442\u043e js-\u0432\u0435\u0440\u0441\u0438\u044f Processing. \u0415\u0441\u043b\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043a\u043b\u0430\u0441\u0441\u0443 Math, \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e \u043c\u0435\u043b\u043e\u0447\u0438 \u2014 \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438 \u0431\u0435\u0437 \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041d\u043e \u0441 \u043d\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <a href=\"https:\/\/editor.p5js.org\" rel=\"noopener noreferrer nofollow\">https:\/\/editor.p5js.org<\/a> \u0438 \u0432 \u043e\u043a\u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0438\u043c \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u043a\u0430\u0434\u0440\u043e\u0432\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u043e\u0442 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">\/\/ \u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043c\u043e\u0437\u0430\u0438\u043a\u0438, yurixi, https:\/\/habr.com\/ru\/articles\/757132\/ \/\/  \/\/ \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043b\u0438\u043d\u0438\u0438 line(x1,y1,x2,y2); \/\/ \u041d\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0435 \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0441\u0442\u043e\u0438\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \/\/ fill(r,g,b); stroke(r,g,b); \/\/ \u0446\u0432\u0435\u0442 \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u0438 \u043b\u0438\u043d\u0438\u0438 \/\/ beginShape(); vertex(x1, y1); vertex(x2, y2); vertex(x3, y3); endShape(CLOSE); \/\/ \u0428\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 strokeWeight(h);  let kf, fc, zm, xs, ys; let color1, color2;  \/\/ \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 function setup() {   createCanvas(640, 480);   \/\/ \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b   kf = [sqrt(3)\/2, 1\/2, sqrt(3)\/2, 1\/2, 0, 0, 0, 0];    \/\/ \u0444\u043e\u0440\u043c\u0430 \u043f\u043b\u0438\u0442\u043a\u0438   fc = [[0, 0, -1, -3], [0, 0, 0, -2], [0, 0, 1, -3], [1, 3, 1, -3], [3, 3, 1, -3],           [3, 3, 1, -1], [3, 3, 0, 0], [3, 3, -1, 1], [3, 3, -2, 0], [2, 6, -2, 0],           [0, 6, -2, 0], [0, 6, -2, -2], [0, 6, -1, -3], [-1, 3, -1, -3]];      \/\/ \u0446\u0432\u0435\u0442\u0430 \u043c\u043e\u0436\u043d\u043e  \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043d\u0435 \u0432 rgb   color1 = color('hsla(220,100%,75%,0.5)');    color2 = color('hsla(200,100%,75%,0.5)');       \/\/ \u043c\u0430\u0441\u0448\u0442\u0430\u0431   zm = 30;      \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0442\u0441\u0447\u0451\u0442\u0430   xs = 320;   ys = 240; }  \/\/ \u041f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u0438\u0437 \u0446\u0435\u043b\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0432 \u044d\u043a\u0440\u0430\u043d\u043d\u0443\u044e, \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f function place(p) {   return createVector(     xs + zm * (kf[0] * p[0] + kf[2] * p[2] + kf[4] * p[1] + kf[6] * p[3]),     ys - zm * (kf[1] * p[1] + kf[3] * p[3] - kf[5] * p[0] - kf[7] * p[2])   ); }  \/\/ \u0440\u0438\u0441\u0443\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443 function draw_shape() {   liner(); \/\/ \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u043b\u0438\u043d\u0438\u0438   strokeWeight(2);   stroke(50)   fill(color1);   beginShape();   for (i in fc) {     let c = place(fc[i]);     vertex(c.x, c.y);   }   endShape(CLOSE);   point(place([0, 0, 0, 2]));   point(place([0, 0, 0, 0])); }  \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043a\u0430\u0434\u0440\u0430 function draw() {   \/\/ \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043a\u0430\u043d\u0432\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430   background(240); \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 - \u0446\u0432\u0435\u0442 \u0432 \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u043e\u0433\u043e   draw_shape()    \/\/ \u043a\u0430\u0434\u0440 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0438\u043a\u043b \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f   \/\/noLoop();      \/\/ \u041d\u043e \u0435\u0441\u043b\u0438 \u0446\u0438\u043a\u043b \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f    \/\/ \u0438\u0437 \u0448\u043b\u044f\u043f\u044b \u0432 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0443 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e,    \/\/ \u0447\u0435\u0440\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442   let k3 = sqrt(3) \/ 2,     k2 = 1 \/ 2,     k1 = (1 - cos(frameCount \/ 60 * PI)) \/ 2;   \/\/ \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438   k1 = (1 - cos(abs(k1 - 0.5) * PI)) \/ 2 * Math.sign(k1 - 0.5) + 0.5;   \/\/ \u0438 \u043d\u0430 \u043a\u0440\u0430\u0439\u043d\u0438\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445   k1 = ((1 - cos(k1 * PI)) \/ 2 + k1) \/ 2;   kf = [     (1 - k1) * k3 + k1 * k2,      (1 - k1) * k2 + k1 * k3 \/ 3,      (1 - k1) * k3 + k1 * 3 \/ 2,      (1 - k1) * k2 + k1 * k3,      0, 0, 0, 0     ]  }  \/\/ \u0440\u0430\u0437\u043b\u0438\u043d\u043e\u0432\u043a\u0430 function liner() {   \/\/ \u0437\u0434\u0435\u0441\u044c \u0446\u0432\u0435\u0442 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 rgb-\u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c   stroke(color(180, 180, 180, 60));   \/\/ \u0440\u0435\u0436\u0438\u043c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0435\u0451 \u0437\u0430\u043b\u0438\u0432\u043a\u0435   noFill();   \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u0448\u0435\u0441\u0442\u0438 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a   fcn = [          [[0, 0, 0, 0], [2, 0, 0, 0], [2, 0, 0, 2], [2, 0, -1, 3], [1, -3, -1, 3]],          [[0, 0, 0, 0], [1, 3, 0, 0], [1, 3, -1, 1], [1, 3, -2, 0], [2, 0, -2, 0]],          [[0, 0, 0, 0], [-1, 3, 0, 0], [-1, 3, -1, -1], [-1, 3, -1, -3], [1, 3, -1, -3]],          [[0, 0, 0, 0], [-2, 0, 0, 0], [-2, 0, 0, -2], [-2, 0, 1, -3], [-1, 3, 1, -3]],          [[0, 0, 0, 0], [-1, -3, 0, 0], [-1, -3, 1, -1], [-1, -3, 2, 0], [-2, 0, 2, 0]],          [[0, 0, 0, 0], [1, -3, 0, 0], [1, -3, 1, 1], [1, -3, 1, 3], [-1, -3, 1, 3]],         ];    \/\/ \u0441\u0434\u0432\u0438\u0433\u0438 \u0434\u043b\u044f \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432   fs = [[0, 0], [4, 0], [2, 6], [-2, 6], [-4, 0], [-2, -6], [2, -6], [8, 0], [6, 6], [6, -6]]   for (let jf in fs) {     let fs2 = fs[jf];     for (let j in fcn) {       let fcm = fcn[j];       beginShape();       for (let i in fcm) {         let fci = fcm[i];         fci = [fci[0] + fs2[0] - 2, fci[1] + fs2[1], fci[2], fci[3]];         c = place(fci);         vertex(c.x, c.y);       }       endShape(CLOSE);     }   } } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c,  \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u044d\u0442\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0438\u0441\u0443\u043d\u043e\u043a, \u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0437\u0430\u0438\u043a. \u0420\u0430\u0434\u0438 \u043a\u0440\u0430\u0441\u043e\u0442\u044b.<\/p>\n<p>\u041f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443 \u0441 \u043c\u043e\u0437\u0430\u0438\u043a\u043e\u0439 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430 \u043c\u043e\u0433\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0444\u0438\u0433\u0443\u0440 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0431\u043e\u0440 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u043b\u0438\u0442\u043e\u043a, \u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u043b\u0438\u0442\u043a\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u043b\u0438\u0442\u043e\u043a \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043e\u0442 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u043b\u0438\u0442\u043e\u043a. \u041a\u0440\u0430\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043a\u0440\u0430\u044f\u043c\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0438 \u043f\u043b\u0438\u0442\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f \u0443 \u0441\u043e\u0441\u0435\u0434\u0435\u0439 \u0438\u0433\u0440\u0430\u044e\u0442 \u0440\u043e\u043b\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u0443\u0448\u0435\u043a \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u0435 \u043f\u0430\u0437\u043b\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u043d\u0430\u0434\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f. \u0418 \u0443\u0436\u0435 \u043f\u043e\u0442\u043e\u043c \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u043b\u0438\u0442\u043a\u0430\u0445 \u0443\u0437\u043e\u0440\u044b, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043f\u043b\u0438\u0442\u043a\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u043b\u0438\u0442\u043a\u0438 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0435\u0451 \u0446\u0435\u043d\u0442\u0440\u0430, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0442\u0438\u043f. \u0418, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0449\u0451 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u00ab\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439\u00bb \u043f\u043b\u0438\u0442\u043a\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430\u0447\u043d\u0451\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445-\u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0439.<\/p>\n<p>\u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u0430 \u00ab\u0448\u043b\u044f\u043f\u043d\u0430\u044f\u00bb \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u0441\u0430\u043c\u0438\u043c\u0438 \u0448\u043b\u044f\u043f\u0430\u043c\u0438 \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u044d\u0442\u0430\u043f\u0435, \u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0438\u0433\u0443\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0438\u043f\u0430. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u043b\u0438\u0431\u043e \u043d\u0430 \u0448\u043b\u044f\u043f\u044b, \u043b\u0438\u0431\u043e, \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f, \u043d\u0430 \u044d\u0442\u0438 \u0436\u0435 \u0447\u0435\u0442\u044b\u0440\u0435 \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>\u042d\u0442\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043e\u0431\u044a\u0451\u043c 4 \u0448\u043b\u044f\u043f\u044b<\/p>\n<\/li>\n<li>\n<p>\u00ab\u043f\u043b\u0430\u043d\u043a\u0430\u00bb, 2 \u0448\u043b.<\/p>\n<\/li>\n<li>\n<p>\u00ab\u043b\u043e\u043f\u0430\u0441\u0442\u044c\u00bb, 2 \u0448\u043b.<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u043b\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, 1 \u0448\u043b.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438\u0447\u0451\u043c, \u00ab\u043b\u043e\u043f\u0430\u0441\u0442\u0438\u00bb \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u00ab\u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u00bb \u0438\u0437 \u0442\u0440\u0451\u0445 \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439.<br \/> (\u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043d\u0438\u0436\u0435, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u0438\u0448\u0443 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u043e \u0441\u0442\u0430\u0442\u044c\u0451\u0439)<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044f \u043f\u0435\u0440\u0435\u0432\u0451\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0433\u0440\u0430\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0448\u0430\u0433\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0422\u043e\u0433\u0434\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043e\u043d\u0446\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 \u043f\u0440\u0438 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0435.<\/p>\n<p>\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0431\u0445\u043e\u0434\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0449\u0438\u0435 \u043a \u043d\u0435\u0439 \u0448\u0430\u0433\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 &#8212; \u0442\u0430\u043a \u043a\u0430\u043a \u0448\u0430\u0433\u0438, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u0447\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b.<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c.<\/p>\n<details class=\"spoiler\">\n<summary>\u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">\/\/ \u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043a\u043e\u043e\u0440\u0434\u043d\u0430\u0442\u0430\u043c\u0438 function draw_vertex(fc)  {   beginShape();   for (let i in fc) {     let c = place(fc[i]);      vertex(c.x, c.y);   }   endShape(CLOSE); }  \/\/ \u0421\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 function add(c, d) {   let r = [];   for (let i in c)   {     r[i] = c[i] + d[i];   }   return r; }  function draw_shape() {   liner(); \/\/ \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u043b\u0438\u043d\u0438\u0438      \/\/ \u0444\u043e\u0440\u043c\u0430 \u043f\u043b\u0438\u0442\u043a\u0438   let fw = {     pos: [-3],     steps: [-1, 2, 0, 3, 5, 5, -5, 4, 6, -3, -1, -4, -2, 1]   };    stroke(0);      fill(color1);   draw_vertex(get_shape(fw, 0, 0, [0, 0, 0, 0], 1));    fill(color2);   draw_vertex(get_shape(fw, 2, 1, [0, 6, -3, -3], 1));   draw_vertex(get_shape(fw, 0, 1, [3, -3, -1, -3], 1));   draw_vertex(get_shape(fw, 0, 1, [3, 3, -1, 3], 1)); }  \/\/ \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b: \u043e\u0431\u0440\u0430\u0437\u0435\u0446 \u0444\u0438\u0433\u0443\u0440\u044b, \u0441\u0434\u0432\u0438\u0433 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442\u0438\u043f \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \/\/ \u0438 \u0444\u043b\u0430\u0433, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043d\u0442\u0440 \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u043b\u0438\u043d\u0438\u044e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.  function get_shape(fw, dv, mr, start, u) {   let c, i, t, v;   let m = 1 - 2 * mr;   let r = [];   \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0442\u0438\u043f\u0430   const steps = [     [2, 0, 0, 0], [0, 0, 1, 1], [1, 3, 0, 0], [0, 0, 0, 2], [-1, 3, 0, 0], [0, 0, -1, 1],      [-2, 0, 0, 0], [0, 0, -1, -1], [-1, -3, 0, 0], [0, 0, 0, -2], [1, -3, 0, 0], [0, 0, 1, -1]   ];   if (start == undefined) {     start = [0, 0, 0, 0];   }   let p = start;   if (u) {     c = place(p);     circle(c.x, c.y, 10);   }   fws = fw.pos;   for (i in fw.pos) {     v = fws[i];     v = (m * (v - dv * 2 + 3) % 12 + 12 + 9) % 12;     if (u &amp;&amp; i == 0) {       c = place(p);       x1 = c.x;       y1 = c.y;     }     p = add(p, steps[v]);     if (u &amp;&amp; i == 0) {       c = place(p);       line(x1, y1, c.x, c.y);     }   }   r.push(p);   c = place(p);   x1 = c.x;   y1 = c.y;   fws = fw.steps;   for (i in fws) {     v = fws[i];     v = (m * (v - dv * 2 + 3) % 12 + 12 + 9) % 12;     p = add(p, steps[v]);     r.push(p);     c = place(p);     line(x1, y1, c.x, c.y);     x1 = c.x;     y1 = c.y;   }   return r; } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/916\/e65\/2e2\/916e652e27111a9ae8e9691f6d7863ca.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/916\/e65\/2e2\/916e652e27111a9ae8e9691f6d7863ca.png\"\/><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0440\u0443\u0431\u0430\u0448\u043a\u0430 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0443\u0431\u0430\u0448\u043a\u0438 &#8212; \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b. (\u041b\u0430\u0434\u043d\u043e, \u0431\u0443\u0434\u0443 \u0437\u0432\u0430\u0442\u044c \u0438\u0445 \u0448\u043b\u044f\u043f\u0430\u043c\u0438, \u0442\u0430\u043a\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u0436\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445. \u041d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0440\u0443\u0431\u0430\u0448\u043a\u0438)<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/11c\/2d8\/b03\/11c2d8b03c4923c5e87967f71e807bca.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11c\/2d8\/b03\/11c2d8b03c4923c5e87967f71e807bca.png\"\/><\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0438 \u043e\u0434\u0438\u043d \u043c\u0430\u043b\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u041d\u043e \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0433\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u0434\u0432\u0443\u043c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c \u0444\u0438\u0433\u0443\u0440\u0430\u043c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u0418\u0445 \u0442\u043e\u0436\u0435 \u043d\u0430\u0434\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ee7\/9f3\/333\/ee79f3333b5de581abd6ad0e131ad95e.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ee7\/9f3\/333\/ee79f3333b5de581abd6ad0e131ad95e.png\"\/><\/figure>\n<p>\u0414\u0432\u0435 \u0434\u0435\u0442\u0430\u043b\u0438, \u00ab\u043f\u043b\u0430\u043d\u043a\u0430\u00bb \u0438 \u00ab\u043b\u043e\u043f\u0430\u0441\u0442\u044c\u00bb (\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u043a\u0430\u043a \u0441\u0432\u0435\u0442\u043b\u044b\u0435 \u0438 \u0438\u0437\u0443\u043c\u0440\u0443\u0434\u043d\u044b\u0435 \u043f\u043b\u0438\u0442\u043a\u0438) \u043e\u0431\u0435 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u043f\u043b\u0438\u0442\u043a\u0438-\u0448\u043b\u044f\u043f\u044b, \u0438 \u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u043c \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438, \u0432 \u044d\u0442\u043e\u043c \u043e\u043d\u0438 \u043d\u0435\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f\u043c\u0438 \u0444\u0438\u0433\u0443\u0440.<\/p>\n<p>\u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u043e\u0431\u0432\u043e\u043b\u0430\u043a\u0438\u0432\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0443. \u0418 \u0434\u0430\u0436\u0435 \u0440\u0430\u0437\u0440\u044b\u0432 \u043d\u0430 \u0443\u0433\u043b\u0430\u0445 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u043e\u0439, \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0433\u043b\u0443. \u0410 \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0444\u0438\u0433\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c \u0444\u0438\u0433\u0443\u0440\u0430\u043c \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0442\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e \u0437\u0430\u043c\u044b\u043a\u0430\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0442\u0443\u0440 \u043f\u043b\u0438\u0442\u043a\u0430 \u0438\u0434\u0451\u0442 \u0432 \u043f\u0430\u0440\u0435 \u0441 \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u0439, \u0447\u0430\u0441\u0442\u044c\u044e \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b. \u041e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u0432\u0442\u043e\u0440\u0430\u044f \u043b\u043e\u043f\u0430\u0441\u0442\u044c \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0440\u0435\u0442\u0435\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u044c\u044e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fa4\/c8d\/47e\/fa4c8d47e4cebf38756271ab9b0a65ec.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa4\/c8d\/47e\/fa4c8d47e4cebf38756271ab9b0a65ec.png\"\/><\/figure>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438-\u043f\u0430\u0437\u043b\u0430 \u0432\u0441\u0435 \u00ab\u0443\u0448\u043a\u0438\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438, \u0432\u0434\u0440\u0443\u0433 \u0438\u0441\u0447\u0435\u0437\u0430\u044e\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/478\/092\/08e\/47809208ea01aab1b730951f5c3dafb1.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/478\/092\/08e\/47809208ea01aab1b730951f5c3dafb1.gif\"\/><\/figure>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0433\u0440\u0430\u043d\u0435\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b, \u043e\u0441\u043e\u0431\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0432 \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0442\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u0443\u0448\u043a\u0430\u043c \u0438 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0445 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e.<\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u0442\u043e\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u043d\u044b \u0438 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0442\u044c \u0441 \u043d\u0438\u0436\u043d\u0435\u0439 \u043d\u0430 \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u043f\u0443\u0433\u043e\u0432\u0438\u0446\u0443 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d0c\/d32\/2ff\/d0cd322ff1af359cf420ff9c98aa610c.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d0c\/d32\/2ff\/d0cd322ff1af359cf420ff9c98aa610c.gif\"\/><\/figure>\n<p>\u041e\u0431\u0430 \u043f\u0440\u0430\u0432\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u0432\u0441\u0435\u0439 \u0441\u0445\u0435\u043c\u0435. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0442\u0430\u043a \u0438 \u043f\u0440\u0430\u0432\u043e\u0439 \u043d\u0438\u0436\u043d\u0435\u0439. \u0418\u043b\u0438 \u0432\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0438 \u0444\u0438\u0433\u0443\u0440\u044b.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0444\u0438\u0433\u0443\u0440, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043e\u0440\u0443\u0434\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0430 \u0432\u043e\u0442 \u043f\u043b\u0430\u0448\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/263\/668\/10a\/26366810a2baf6f589914ea7dc81b1b4.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/263\/668\/10a\/26366810a2baf6f589914ea7dc81b1b4.gif\"\/><\/figure>\n<p>\u0418 \u0441\u0445\u0435\u043c\u0430 \u043c\u0435\u043b\u043a\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041f\u0440\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u043e\u043d \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8b6\/096\/d15\/8b6096d15fa61936bf8c85b56719788d.gif\" width=\"640\" height=\"320\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8b6\/096\/d15\/8b6096d15fa61936bf8c85b56719788d.gif\"\/><\/figure>\n<p>\u041d\u0438\u0436\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438. \u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043d\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0431\u0435\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0442\u0430\u043b\u0435\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">\/\/ \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b. \/\/ shp - \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b.  \/\/ \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442: \/\/ \u0442\u0440\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \/\/ sh - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0443 \/\/ mr - \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u043e\u0432 \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a \u0443\u0448\u043a\u0430\u043c \u043f\u0430\u0437\u043b\u0430 \/\/ cc - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0446\u0435\u043d\u0442\u0440\u044b \u0444\u0438\u0433\u0443\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \/\/ \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b: \/\/ pos - \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438. \u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0438\u0441\u043b\u0430,  \/\/   \u0446\u0435\u043b\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438 \u0434\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 . \/\/ v - \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435  \/\/ h - \u0440\u0430\u0437\u043c\u0435\u0440 \"\u0443\u0448\u0435\u043a\", \u043e\u0442 0 \u0434\u043e 1 \/\/ h2 - \u0441\u0434\u0432\u0438\u0433 \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b, \u043e\u0442 0 \u0434\u043e 1  function draw_fig(shp, pos, v, h, h2) {   \/\/ \u0438\u043c\u0435\u043d\u0430 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f   let sh = shp.sh;   let mr = shp.mr;      \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f    let start = pos;     \/\/ sh[0] - \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0441 \u043a\u0430\u043a\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430,    \/\/ \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u0443\u0442\u044c    \/\/ \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b \u0434\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430, \u043d\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f   shape = [];   for (let i = 1; i &lt; sh[0]; i++)   {     let vn = ((v + sh[i]) % 12 + 12) % 12;     pos = add(pos, steps[vn]);   }   \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0435   shape.push(pos);    \/\/ \u043f\u0440\u043e\u0445\u043e\u0434 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0439   for (let i = sh[0]; i &lt; sh.length; i++)   {     let vn = ((v + sh[i]) % 12 + 12) % 12;     pos = add(pos, steps[vn]);     shape.push(pos);   }      \/\/ \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435   fig = [];      for (i = 1; i &lt; shape.length; i++)   {     let c1 = place(shape[i]);     let c2;     \/\/ \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \"\u0443\u0448\u043a\u0443\" \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430,      \/\/ \u0442\u043e \u0435\u0451 \u0441\u0434\u0432\u0438\u0433 \u0431\u0443\u0434\u0435\u0442 \u043a \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438     if (mr[i] == 1)     {       c2 = place(shape[i - 1]);     }     \/\/ \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \"\u0443\u0448\u043a\u0443\" \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0438\u043f\u0430,      \/\/ \u0442\u043e \u0435\u0451 \u0441\u0434\u0432\u0438\u0433 \u0431\u0443\u0434\u0435\u0442 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438     if (mr[i] == 2)     {       c2 = place(shape[i + 1]);     }     \/\/ \u0420\u0430\u0441\u0447\u0451\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u0441\u0434\u0432\u0438\u0433 \u0438\u043b\u0438 \u043d\u0435\u0442     if (mr[i] > 0)     {       x = lerp(c1.x, c2.x, h);       y = lerp(c1.y, c2.y, h);     }     else     {       x = c1.x;       y = c1.y;     }     \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f     fig.push([x, y]);   }    \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439,    \/\/ \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0433\u0440\u0430\u043d\u0438\u0446 \u043f\u043b\u0438\u0442\u043e\u043a \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0435\u043b\u043a\u0438   let lines = []      \/\/ \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0438\u0433\u0443\u0440\u0435 \u0446\u0435\u043d\u0442\u0440\u044b   for (let i in shp.cc)   {     sh = shp.cc[i];          \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0437\u0430\u0434\u0430\u043d\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f      \/\/ \u0448\u0430\u0433\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0431\u0449\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u044b     pos = start;           let vn;     let posp; \/\/ \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430     for (let shv of sh)     {       vn = ((v + shv) % 12 + 12) % 12;       posp = pos;       pos = add(pos, steps[vn]);     }      \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438     c0 = place(posp);       \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u0430\u043c\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430     c1 = place(pos);      posl = pos;       \/\/ \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433.     pos = add(pos, steps[vn]);       c2 = place(pos); \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430      \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043a\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     \/\/ lerp \u0444\u0443\u043d\u043a\u0446\u0438\u044f p5js \u0434\u043b\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f,      \/\/ \u043f\u0440\u0438 h2 = 0 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f c1.x, \u043f\u0440\u0438 h2 = 1 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f c2.x     x = lerp(c1.x, c2.x, h2);     y = lerp(c1.y, c2.y, h2);      \/\/ \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043b\u0438\u043d\u0438\u0438, \u0432\u0435\u0434\u0443\u0449\u0435\u0439 \u043a \u0446\u0435\u043d\u0442\u0440\u0443     line(c0.x, c0.y, x, y)      \/\/ \u0438 \u0446\u0435\u043d\u0442\u0440\u0430     circle(x, y, 10);      \/\/ \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043d\u0442\u0440\u044b 1 \u0438 2     if (i > 0 &amp;&amp; i &lt; 3)     {       \/\/ \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u0430       pos = posl;       \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430       pos = add(pos, steps[(vn + 6 + 12) % 12]);       \/\/ \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f        \/\/ \"6\" - \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442, \u0442\u0430\u043a \u043a\u0430\u043a vn \u044d\u0442\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u0430 \u043a \u0446\u0435\u043d\u0442\u0440\u0443,        \/\/ \u0430 \u043c\u044b \u043e\u0442 \u043d\u0435\u0433\u043e \u0443\u0445\u043e\u0434\u0438\u043c       \/\/ \"-2\" - \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435,        \/\/ \"+ 12\" - \u0434\u043e\u0431\u0430\u0432\u043a\u0430 \u0447\u0442\u043e\u0431 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.        pos = add(pos, steps[(vn + 6 - 2 + 12) % 12]);        \/\/ \u043f\u0435\u0440\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430       p1 = pos;       \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u0447\u043a\u0430       pos = add(pos, steps[(vn + 6 - 5 + 12) % 12]);       p2 = pos;       \/\/ \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u044d\u0442\u043e \u0448\u0430\u0433 \u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439       p4 = add(pos, steps[(vn + 6 - 1 + 12) % 12]);       pos = add(p2, steps[(vn + 6 - 3 + 12) % 12]);       \/\/ \u0442\u0440\u0435\u0442\u044c\u044f \u0442\u043e\u0447\u043a\u0430 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0448\u0430\u0433 \u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439       p3 = pos       pos = add(pos, steps[(vn + 6 - 6 + 12) % 12]);        \/\/ \u043b\u0438\u043d\u0438\u0438 \u0434\u0432\u0435: \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0433\u0440\u0430\u043d\u044c \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0435\u043b\u043a\u0443               let ln = [[p1, p2, p3, pos], [p4, p2, p2, p3]];       \/\/ \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043b\u0438\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u043b\u0430\u0432\u043d\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435       let lns = [];       for (i in ln[0])       {         \/\/ \u043f\u0435\u0440\u0432\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0441\u0442\u044c         c1 = place(ln[0][i]);         \/\/ \u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f         c2 = place(add(ln[1][i], steps[(vn - 2 + 12) % 12]));         x = map(h, 0, 1, c1.x, c2.x);         y = map(h, 0, 1, c1.y, c2.y);         lns.push([x, y])       }       lines.push(lns);     }   }    \/\/ \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u0440\u0438\u0441\u0443\u0435\u043c    beginShape();   for (i in fig)   {     vertex(fig[i][0], fig[i][1]);   }   endShape(CLOSE);      \/\/ \u044f\u0440\u043a\u043e\u0441\u0442\u044c \u043b\u0438\u043d\u0438\u0439 \u0433\u0440\u0430\u043d\u0438 \u0438 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f   \/\/ \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0446\u0432\u0435\u0442\u0430 \u043b\u0438\u043d\u0438\u0438 - \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c   stroke(60, 60, 60, lerp(60, 255, 1 - h));    for (let i in lines)   {     lns = lines[i];     for (let i = 0; i &lt; 3; i++)     {       line(lns[i][0], lns[i][1], lns[i + 1][0], lns[i + 1][1]);     }   }   \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u043b\u0438\u043d\u0438\u0438   stroke(60) }  \/\/ \u0421\u0430\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0437\u0430\u0434\u0430\u043d\u044b \u0442\u0430\u043a:  function set_shapes() { \/\/ \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a   shp1 = {     sh: [5, -3, -1, 2, 0,          -3, -5, -2, -4, 5, -5, 4, 6, 3, 5, 5, 3, 6, 4, 1, -1, 2, 0, 3, 1, 1, -1, 2, 0, -3, -5, -2, -4, -1, -3],     mr: [0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0],     cc: [       [-3, 3],       [-3, -1, 2, 0, 3, 5, 5, 3],       [-3, -5, 4, 2, 5, -5],       [-3, -5, -5, -3, 0, -2, 1, 3]     ]   } \/\/ \u0446\u0435\u043d\u0442\u0440 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430   shp0 =  {     sh: [2, -3,         -5, 4, 2, 5, 3, 0, -2, 1, -1, -1, -3, 6, -4, 5],     mr: [0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2],     cc: [[-3, 3]]   }  \/\/ \u043f\u043b\u0430\u043d\u043a\u0430   shp2 = {     sh: [2, -5,         5, 2, 4, 1, -1, -1, -3, 0, -2, -5, -3, -3, -5, -2, -4, -1, 5, 5, 3, 6, 4, 1, 3, 3],     mr: [0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0],     cc: [       [-5, 1],       [-5, -3, -3, -1]     ]   }  \/\/ \u043b\u043e\u043f\u0430\u0441\u0442\u044c   shp3 = {     sh: [2, -5,         5, 2, 4, 1, -1, -1, -3, 0, -2, -5, -3, -3, -5, -2, -4, 5, 3, 6, 4, 1, 3, 3],     mr: [0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0],     cc: [       [-5, 1],       [-5, -3, -3, -1]     ]   }  \/\/ \u043c\u0430\u043b\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a   shp4 = {     sh: [2, -1,          -3, 6, -4, 5, 3, 3, 1, 4, 2, 5, -1, -1, -3, 0, -2, 1, -5, -5],     mr: [0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0],     cc: [       [-1, 5],     ]   } } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0437\u0430 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0441\u043c\u0435\u043d\u044b \u0443\u0440\u043e\u0432\u043d\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f. \u042f \u0441\u0434\u0435\u043b\u0430\u043b \u044d\u0442\u043e \u0442\u0430\u043a: \u0446\u0435\u043d\u0442\u0440\u044b \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 (\u0442\u0430\u043c \u0433\u0434\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u0440\u0438 \u043b\u043e\u043f\u0430\u0441\u0442\u0438 \u0437\u0430\u043e\u0441\u0442\u0440\u0451\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0446\u0430\u043c\u0438) \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0435 \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f, \u0438 \u043d\u0430 \u043d\u043e\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043c\u0438 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0435\u0440\u0451\u043c \u0444\u0438\u0433\u0443\u0440\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u043d\u044b\u0445 \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438 \u0438\u0445 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/059\/203\/dee\/059203deecc62539bae4a30dcbe3cc2e.png\" width=\"640\" height=\"360\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/059\/203\/dee\/059203deecc62539bae4a30dcbe3cc2e.png\"\/><\/figure>\n<p>\u041e\u0441\u043e\u0431\u043e \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044f\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u0441\u0442\u0443\u043f\u044b \u0432 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445. <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r=\\sqrt{\\left(x+\\frac{y}{2}\\right)^2+3\\left(\\frac{y}{2}\\right)^2}\" alt=\"r=\\sqrt{\\left(x+\\frac{y}{2}\\right)^2+3\\left(\\frac{y}{2}\\right)^2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1b0\/227\/822\/1b0227822b76de3820e16072379477ba.svg\" width=\"218\" height=\"51\"\/> \u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c:<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u043c\u0435\u043b\u043a\u0438\u0445 \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{\\left(8+\\frac{1}{2}\\right)^2+3\\left(\\frac{1}{2}\\right)^2}=\\sqrt{73}\" alt=\"\\sqrt{\\left(8+\\frac{1}{2}\\right)^2+3\\left(\\frac{1}{2}\\right)^2}=\\sqrt{73}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ac0\/0cb\/e45\/ac00cbe45efe70086f07e15faf3569c9.svg\" width=\"254\" height=\"62\"\/><\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{\\left(21+\\frac{3}{2}\\right)^2+3\\left(\\frac{3}{2}\\right)^2}=3\\sqrt{57}\" alt=\"\\sqrt{\\left(21+\\frac{3}{2}\\right)^2+3\\left(\\frac{3}{2}\\right)^2}=3\\sqrt{57}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/767\/a09\/a73\/767a09a730dbc67e84480a20361d8106.svg\" width=\"273\" height=\"62\"\/><\/p>\n<p>\u0418\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"3\\sqrt{\\frac{57}{73}}\\approx2{,}65\\ldots\" alt=\"3\\sqrt{\\frac{57}{73}}\\approx2{,}65\\ldots\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2c2\/e1d\/da1\/2c2e1dda16378be725151e5fa01672ae.svg\" width=\"141\" height=\"51\"\/>.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u0441\u044f \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u043f\u043e\u0445\u043e\u0436\u0435, \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{\\arctan\\left(\\frac{\\sqrt{3}}{2}\\times\\frac{3}{21+3\/2}\\right)-\\arctan\\left(\\frac{\\sqrt{3}}{2}\\times \\frac{1}{8+1\/2}\\right)}=\\\\={\\arctan\\left(\\frac{\\sqrt{3}}{15}\\right)-\\arctan\\left(\\frac{\\sqrt{3}}{17}\\right)}={\\arctan\\left(\\frac{\\sqrt{3}}{129 }\\right)}=\\frac{1}{467{,}98\\ldots}\\ldots\" alt=\"{\\arctan\\left(\\frac{\\sqrt{3}}{2}\\times\\frac{3}{21+3\/2}\\right)-\\arctan\\left(\\frac{\\sqrt{3}}{2}\\times \\frac{1}{8+1\/2}\\right)}=\\\\={\\arctan\\left(\\frac{\\sqrt{3}}{15}\\right)-\\arctan\\left(\\frac{\\sqrt{3}}{17}\\right)}={\\arctan\\left(\\frac{\\sqrt{3}}{129 }\\right)}=\\frac{1}{467{,}98\\ldots}\\ldots\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/872\/96a\/6ab\/87296a6ab849c425bf8a018676e88eb1.svg\" width=\"698\" height=\"109\"\/><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 \u043e\u0434\u043d\u0443 468-\u044e \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u043e\u0440\u043e\u0442\u0430, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 0,76925\u00b0, \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0433\u0440\u0430\u0434\u0443\u0441\u0430.<\/p>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041d\u043e \u043d\u0435 \u0442\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e. \u041f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0443\u0442 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c\u0438. \u0418\u043b\u0438, \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0438 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u0439 \u2014 \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0448\u044c. \u0421\u0440\u0430\u0437\u0443 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u0430\u044f \u043d\u0435\u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u044b\u043c, \u0431\u044b\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0444\u043e\u0440\u043c\u044b \u043f\u043b\u0438\u0442\u043e\u043a \u043f\u0440\u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u0438. \u0410 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u044e\u0449\u0435\u0435 \u043a \u0446\u0435\u043b\u044b\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c, \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0438 \u043c\u044b \u0435\u0433\u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0438\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u043f\u043e\u043d\u0438\u043c\u0430\u044f, \u0447\u0442\u043e \u0445\u043e\u0442\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0435 \u0438 \u0431\u044b\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0442 \u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0431\u043b\u0438\u0436\u0435 \u043a \u0442\u043e\u0447\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u043d\u043e \u043e\u043d\u043e \u0432\u0441\u0451 \u0442\u0430\u043a \u0436\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0440\u0443\u0447\u043d\u043e\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0445\u043e\u0442\u044c \u0438 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0431\u0435\u0437 \u0442\u043e\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u043a \u0447\u0435\u043c\u0443 \u0432\u0441\u0451 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442\u0441\u044f &#8212; \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e. \u0412 \u043c\u043e\u0437\u0430\u0438\u043a\u0435 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430 \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u043e \u0437\u043e\u043b\u043e\u0442\u043e\u0435 \u0441\u0435\u0447\u0435\u043d\u0438\u0435, \u0430 \u0437\u0434\u0435\u0441\u044c &#8212; \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438?<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e: \u0443 \u043b\u043e\u043f\u0430\u0441\u0442\u0438 \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u043e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430, \u0443\u0437\u0435\u043b \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430. \u0423 \u043f\u0430\u0440\u044b \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0430\u044f, \u043d\u043e \u0438 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u043f\u0430\u0440\u044b, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043b\u043e\u043f\u0430\u0441\u0442\u044c, \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438. \u041d\u043e \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0430\u0440\u0435 \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043d\u0435 \u043f\u0440\u043e\u0439\u0442\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u043f\u0430\u0440\u0430\u043c \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439: \u043f\u043e \u0432\u0441\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0433\u0443\u043b\u044f\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e, \u043d\u043e \u043f\u0440\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438 \u043a \u043a\u0440\u0430\u044e \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u0438 \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0435 \u0432 \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0439 \u0443\u0437\u043b\u0443 \u0433\u0440\u0430\u043d\u0438, \u0430 \u0441\u043e\u0432\u0441\u0435\u043c \u0432 \u0434\u0440\u0443\u0433\u0443\u044e, \u043f\u043e\u043a\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043f\u043b\u0438\u0442\u043a\u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u043b\u0438\u0442\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0443 \u0436\u0435 \u0444\u043e\u0440\u043c\u0443, \u043d\u043e \u0443\u0433\u043b\u044b \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443. \u0418\u0445 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 &#8212; \u0434\u0440\u0443\u0433\u0430\u044f, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0430\u0434\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u0435\u0451.<\/p>\n<p>\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043d\u0435\u0442. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u043e\u0440\u043c \u043a \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0435. \u042d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0442\u043e \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u0430 \u0444\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0446\u0435\u043b\u044b\u0445, \u043d\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e \u0437\u043e\u043b\u043e\u0442\u043e\u043c\u0443 \u0441\u0435\u0447\u0435\u043d\u0438\u044e. \u0412 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0447\u0435\u043c \u0431\u043b\u0438\u0436\u0435 \u043a \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0421\u0430\u043c\u044b\u0439 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0437\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u043e\u0439: \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438, \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0433\u0440\u0430\u043d\u0438\u0446 \u043f\u043b\u0438\u0442\u043e\u043a?<\/p>\n<p>\u0418\u0437-\u0437\u0430 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 \u0433\u0440\u0430\u043d\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f, \u0438\u043b\u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0443\u0433\u043e\u043b. \u0415\u0441\u043b\u0438 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d \u0433\u0440\u0430\u043d\u0435\u0439 \u0443 \u043d\u0435\u0433\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d \u0433\u0440\u0430\u043d\u0435\u0439 \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440, \u043d\u043e, \u043a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0441\u0430\u043c\u043e\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e\u0435, \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0439\u0434\u0435\u0442: \u0441\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0435\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439 \u0432 \u0443\u0437\u043b\u0435 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0433\u043b\u043e\u043c. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0432 \u043c\u043e\u0437\u0430\u0438\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u0432\u044f\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0433\u0440\u0430\u043d\u0435\u0439, \u0442\u0440\u0438 \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 (\u0434\u043b\u044f \u043e\u0441\u0442\u0440\u0438\u044f \u043b\u043e\u043f\u0430\u0441\u0442\u0435\u0439) \u0438 \u0448\u0435\u0441\u0442\u044c \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u043e\u0440\u043c. \u0418 \u0432\u0441\u0435 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0438.<\/p>\n<p>\u0427\u0442\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u0444\u0438\u0433\u0443\u0440, \u0435\u0441\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f? \u0423 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0434\u0432\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0434\u043b\u044f \u0448\u0435\u0441\u0442\u0438 \u0441\u0442\u043e\u0440\u043e\u043d \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0438\u0445 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"1\" alt=\"1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/255\/bd8\/297\/255bd8297acc70bc921b80a9822d7a83.svg\" width=\"10\" height=\"16\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/782\/a72\/699\/782a726995000382139a8ed914ef1205.svg\" width=\"11\" height=\"12\"\/>. \u0420\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0430\u043d\u0435\u0439 \u043c\u0430\u043b\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"h=x-1\" alt=\"h=x-1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b80\/7c6\/0e1\/b807c60e1a5cd0700e28bde9ff491746.svg\" width=\"81\" height=\"18\"\/>. \u0423 \u043f\u043b\u0430\u043d\u043a\u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0433\u0440\u0430\u043d\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1f\/087\/0c5\/c1f0870c59d1d355eadd74bef61932ff.svg\" width=\"11\" height=\"12\"\/>, \u0432\u0442\u043e\u0440\u0443\u044e \u0433\u0440\u0430\u043d\u044c \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"y=1+2l\" alt=\"y=1+2l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/812\/2e9\/f4f\/8122e9f4fa4b92cf4969dc52767358ae.svg\" width=\"84\" height=\"20\"\/>. \u0423 \u043b\u043e\u043f\u0430\u0441\u0442\u0438 \u0442\u043e\u0440\u0446\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u044c \u2014 \u043a\u0430\u043a \u0443 \u043f\u043b\u0430\u043d\u043a\u0438, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"y\" alt=\"y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eb4\/34d\/4e0\/eb434d4e08980801e5b15cd407205d86.svg\" width=\"10\" height=\"15\"\/>. \u041e\u0434\u043d\u0430 \u0434\u043b\u0438\u043d\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/15e\/df2\/26a\/15edf226abc840b46eaf2b3e8e3cc3e4.svg\" width=\"11\" height=\"12\"\/>, \u0434\u0440\u0443\u0433\u0430\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"1+y=2+2l\" alt=\"1+y=2+2l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/318\/be1\/df3\/318be1df31fd6b7d6ae30f1ef8f06842.svg\" width=\"117\" height=\"20\"\/>, \u0438 \u0434\u0432\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0433\u0440\u0430\u043d\u0438 \u043e\u043a\u043e\u043b\u043e \u0443\u0437\u043b\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/644\/24f\/c1b\/64424fc1b9375094d1080bd3127cf3d5.svg\" width=\"9\" height=\"12\"\/>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d90\/f76\/606\/d90f766065fc8c87350608130e99a420.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d90\/f76\/606\/d90f766065fc8c87350608130e99a420.png\"\/><\/figure>\n<p>\u0412 \u043a\u0430\u043a\u0443\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0437\u0435\u043b \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430? \u041f\u043b\u0430\u043d\u043a\u0430 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u043b\u043e\u043f\u0430\u0441\u0442\u044c, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438\u0437 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0448\u043b\u044f\u043f (\u0438 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u0442\u043e\u0436\u0435), \u043e\u043d\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f. \u0418 \u0437\u043d\u0430\u0447\u0438\u0442, \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 <img class=\"formula inline\" source=\"x > 1 + y&#187; alt=&#187;x > 1 + y&#187; src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef8\/2e4\/014\/ef82e4014c396a1ddd0581bc619ae187.svg&#187; width=&#187;80&#8243; height=&#187;19&#8243;\/> \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f, \u0443\u0437\u0435\u043b \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0441\u0432\u044f\u0437\u0435\u0439 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043b\u043e\u043f\u0430\u0441\u0442\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ef\/9a2\/5bf\/4ef9a25bf09cdcfed6869b07575d60a7.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ef\/9a2\/5bf\/4ef9a25bf09cdcfed6869b07575d60a7.png\"\/><\/figure>\n<p>\u041a\u0440\u0430\u0441\u043d\u044b\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b, \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c. \u0421\u0438\u043d\u0438\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0438 \u0442\u0451\u043c\u043d\u043e-\u0441\u0438\u043d\u0438\u0439 \u0442\u043e\u0436\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043f\u0440\u0430\u0432\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u043a\u0440\u0430\u0441\u043d\u044b\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0443\u0433\u043e\u043b \u0440\u0430\u0432\u0435\u043d \u0442\u043e\u0447\u043d\u043e 60\u00b0. (\u0422\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438 \u0432 \u0438\u0434\u0435\u0430\u043b\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b \u0438 \u043e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u043f\u0430\u0440\u043d\u044b\u0439 \u0443\u0433\u043e\u043b 120\u00b0). \u042f \u0442\u0430\u043a \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0443\u0433\u043e\u043b \u0432 60\u00b0 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u043e\u0447\u043a\u0430 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0438\u043d\u0435\u0439 \u043b\u0438\u043d\u0438\u0438 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0434\u043b\u0438\u043d\u0443 \u0441\u0438\u043d\u0435\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430. <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a\" alt=\"a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5c1\/057\/6e0\/5c10576e0d7b67195b1bac6c4cee09b3.svg\" width=\"10\" height=\"12\"\/><\/p>\n<p>\u0418 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u043d\u0430 \u0440\u0430\u0437-\u0434\u0432\u0430-\u0442\u0440\u0438:<\/p>\n<ol>\n<li>\n<p>\u0420\u0430\u0434\u0438\u0443\u0441 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(2\/\\sqrt{3})a\" alt=\"(2\/\\sqrt{3})a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a9e\/2c8\/169\/a9e2c81691f57f32d4398aca0e0373fc.svg\" width=\"70\" height=\"24\"\/>.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 \u0441\u0438\u043d\u0435\u0439 \u043b\u0438\u043d\u0438\u0438 \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(1\/2\\sqrt{3})a\" alt=\"(1\/2\\sqrt{3})a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6e8\/000\/2f5\/6e80002f5f33c904bfcd62667fc2f44c.svg\" width=\"80\" height=\"24\"\/><\/p>\n<\/li>\n<li>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, \u0434\u043b\u0438\u043d\u0430 \u0442\u0451\u043c\u043d\u043e-\u0441\u0438\u043d\u0435\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u0434\u043b\u0438\u043d\u0443 \u0441\u0438\u043d\u0435\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430, \u0442\u043e \u0435\u0441\u0442\u044c, \u0442\u043e\u0447\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0443\u0440\u043e\u0432\u043d\u044f, \u0440\u0430\u0432\u043d\u043e:<\/p>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"z=3\/2+\\sqrt{(2\/\\sqrt{3})^2-(1\/(2\\sqrt{3}))^2}=\\frac{3+\\sqrt{5}}{2}=2+\\varphi=2{,}618\\ldots\" alt=\"z=3\/2+\\sqrt{(2\/\\sqrt{3})^2-(1\/(2\\sqrt{3}))^2}=\\frac{3+\\sqrt{5}}{2}=2+\\varphi=2{,}618\\ldots\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e7e\/f29\/641\/e7ef29641ff8977cb7ba04e17a642795.svg\" width=\"551\" height=\"47\"\/><\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0440\u0430\u043d\u0435\u0435.<\/p>\n<p>\u0418 \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0435 \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043e\u043b\u043e\u0442\u043e\u0435 \u0441\u0435\u0447\u0435\u043d\u0438\u0435. ?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\varphi=\\frac{\\sqrt{5}-1}{2}=0{,}618\\ldots\\qquad\\Phi=\\frac{\\sqrt{5}+1}{2}=1{,}618\\ldots\\\\z=1+\\Phi=\\Phi^2\" alt=\"\\varphi=\\frac{\\sqrt{5}-1}{2}=0{,}618\\ldots\\qquad\\Phi=\\frac{\\sqrt{5}+1}{2}=1{,}618\\ldots\\\\z=1+\\Phi=\\Phi^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/89f\/953\/9ad\/89f9539ad714c2f6a0be461c8adf684f.svg\" width=\"698\" height=\"74\"\/><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"z\" alt=\"z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f4d\/621\/422\/f4d621422db5798a2f9699f4047e871c.svg\" width=\"9\" height=\"12\"\/> \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a = y-l=(z+y)\/2\" alt=\"a = y-l=(z+y)\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ab\/dba\/fbe\/9abdbafbe9a4390cd9da2b708ddbbfe4.svg\" width=\"177\" height=\"22\"\/><\/p>\n<p>\u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0443\u0437\u043b\u0430 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\omega=\\frac{\\pi}{6}-\\arctan\\left(\\frac{z-5\/2}{\\sqrt{3}\/2}\\right)=\\frac{\\pi}{6}-\\arctan\\left(\\frac{\\sqrt{5}-2}{\\sqrt{3}}\\right)=0{,}388139\\ldots=22{,}23\\ldots ^{\\circ}\" alt=\"\\omega=\\frac{\\pi}{6}-\\arctan\\left(\\frac{z-5\/2}{\\sqrt{3}\/2}\\right)=\\frac{\\pi}{6}-\\arctan\\left(\\frac{\\sqrt{5}-2}{\\sqrt{3}}\\right)=0{,}388139\\ldots=22{,}23\\ldots ^{\\circ}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a30\/941\/6be\/a309416be05144712dacb13159be7ae6.svg\" width=\"676\" height=\"61\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\cos(\\omega)=\\frac{\\sqrt{7 + 3 \\sqrt{5}}}{4}\\qquad \\sin(\\omega)=\\frac{\\sqrt{9 - 3\\sqrt{5}}}{4}\" alt=\"\\cos(\\omega)=\\frac{\\sqrt{7 + 3 \\sqrt{5}}}{4}\\qquad \\sin(\\omega)=\\frac{\\sqrt{9 - 3\\sqrt{5}}}{4}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1f6\/98f\/63f\/1f698f63f4389b4c68c744c406dfc0c3.svg\" width=\"383\" height=\"50\"\/><\/p>\n<p>\u0418 \u0434\u043b\u0438\u043d\u0443 \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"r=\\sqrt{(z-5\/2)^2+(\\sqrt{3}\/2)^2}\\cdot a=\\sqrt{\\left({\\frac{\\sqrt{5}-2}{2}}\\right)^2+\\frac{3}{4}}\\cdot a=\\underbrace{\\sqrt{3-\\sqrt{5}}}_{0{,}874\\ldots}\\cdot a\" alt=\"r=\\sqrt{(z-5\/2)^2+(\\sqrt{3}\/2)^2}\\cdot a=\\sqrt{\\left({\\frac{\\sqrt{5}-2}{2}}\\right)^2+\\frac{3}{4}}\\cdot a=\\underbrace{\\sqrt{3-\\sqrt{5}}}_{0{,}874\\ldots}\\cdot a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7d5\/c02\/3c0\/7d5c023c082cdff67b86d7ffc0ca1c57.svg\" width=\"596\" height=\"83\"\/><\/p>\n<p>\u0414\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0443\u0434\u043e\u0431\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0438 \u0441\u0438\u043d\u0443\u0441 \u0441\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u043e\u0442 60\u00b0 \u0443\u0433\u043b\u0430 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\cos\\left(\\frac{\\pi}{3}-\\omega\\right)=\\sqrt{\\frac{5}{8}}\\qquad\\sin\\left(\\frac{\\pi}{3}-\\omega\\right)=\\sqrt{\\frac{3}{8}}\" alt=\"\\cos\\left(\\frac{\\pi}{3}-\\omega\\right)=\\sqrt{\\frac{5}{8}}\\qquad\\sin\\left(\\frac{\\pi}{3}-\\omega\\right)=\\sqrt{\\frac{3}{8}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2bb\/5b9\/cdb\/2bb5b9cdb558a011f31716babb3a19e8.svg\" width=\"368\" height=\"50\"\/><\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c8c\/840\/8e2\/c8c8408e2b6fa298c3ca1ca56087b9db.svg\" width=\"6\" height=\"17\"\/>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"l=r\\sin(\\pi\/3-\\omega)\/(\\sqrt{3}\/2)=\\sqrt{3-\\sqrt{5}}\\left(\\sqrt{3\/8}\\right)\\frac{2}{\\sqrt{3}}\\cdot a=\\frac{\\sqrt{5}-1}{2}\\cdot a=\\varphi a\" alt=\"l=r\\sin(\\pi\/3-\\omega)\/(\\sqrt{3}\/2)=\\sqrt{3-\\sqrt{5}}\\left(\\sqrt{3\/8}\\right)\\frac{2}{\\sqrt{3}}\\cdot a=\\frac{\\sqrt{5}-1}{2}\\cdot a=\\varphi a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/924\/2b0\/f93\/9242b0f931e898954f07c6d4418ccb8c.svg\" width=\"620\" height=\"53\"\/><\/p>\n<p>\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"a\" alt=\"a\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a88\/4f5\/99c\/a884f599ce1102bfb55af2417a0c2455.svg\" width=\"10\" height=\"12\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a=y-l=(z+y)\/2\\qquad y=a+l=2a-z\\\\l=a-z\\qquad a-l=(1-\\varphi)a=z\\\\a=z\/(1-\\varphi)=\\frac{3\\sqrt{5} + 7}{2}=z^2=\\Phi^4=(1+\\Phi)z\" alt=\"a=y-l=(z+y)\/2\\qquad y=a+l=2a-z\\\\l=a-z\\qquad a-l=(1-\\varphi)a=z\\\\a=z\/(1-\\varphi)=\\frac{3\\sqrt{5} + 7}{2}=z^2=\\Phi^4=(1+\\Phi)z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/45d\/e1d\/d5b\/45de1dd5be6e99222490d744b32e73e6.svg\" width=\"698\" height=\"102\"\/><\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"l=\\Phi z\" alt=\"l=\\Phi z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/749\/f50\/91f\/749f5091f3befa0e4eac89e5f3a59f04.svg\" width=\"54\" height=\"17\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"y=(1+2\\Phi)z\" alt=\"y=(1+2\\Phi)z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aab\/8f0\/873\/aab8f0873a705887e4b0036471092cdd.svg\" width=\"116\" height=\"22\"\/><\/p>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x\" alt=\"x\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/891\/35f\/c5f\/89135fc5fb9e3eecfaf3f7d357db1b02.svg\" width=\"11\" height=\"12\"\/>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=za-r(\\cos\\left(\\pi\/3-\\omega\\right)-(\\sin(\\pi\/3-\\omega)\/2)\/(\\sqrt{3}\/2))=\\\\=\\left(\\left(\\frac{3+\\sqrt{5}}{2}\\right)^2-\\left(\\frac{3+\\sqrt{5}}{2}\\right)\\left(\\sqrt{3-\\sqrt{5}}\\right)\\left(\\sqrt{\\frac{5}{8}}-\\sqrt{\\frac{1}{8}}\\right)\\right)z=(1+3\\Phi)z\" alt=\"x=za-r(\\cos\\left(\\pi\/3-\\omega\\right)-(\\sin(\\pi\/3-\\omega)\/2)\/(\\sqrt{3}\/2))=\\\\=\\left(\\left(\\frac{3+\\sqrt{5}}{2}\\right)^2-\\left(\\frac{3+\\sqrt{5}}{2}\\right)\\left(\\sqrt{3-\\sqrt{5}}\\right)\\left(\\sqrt{\\frac{5}{8}}-\\sqrt{\\frac{1}{8}}\\right)\\right)z=(1+3\\Phi)z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/298\/ae6\/c4f\/298ae6c4fcea90f2de7805138dd181b2.svg\" width=\"698\" height=\"91\"\/><\/p>\n<p>\u0418 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u043b\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"h=3\\Phi z\" alt=\"h=3\\Phi z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aea\/2a5\/887\/aea2a5887163c039ff4f8eb5ca69366b.svg\" width=\"69\" height=\"17\"\/>. \u0412\u0441\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(\\ldots)z\" alt=\"(\\ldots)z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/04b\/2f1\/1c3\/04b2f11c3d63eb2ebb36e9074f056096.svg\" width=\"47\" height=\"22\"\/>.<\/p>\n<p>\u041f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"z=1\" alt=\"z=1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d1a\/47c\/e40\/d1a47ce4066abc9850fdc2a81139c86b.svg\" width=\"44\" height=\"16\"\/> \u0431\u0443\u0434\u0435\u0442:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{matrix}x=1+3\\Phi&amp;&amp; r=\\sqrt{3-\\sqrt{5}}(1+\\Phi)=\\sqrt{3+\\sqrt{5}}\\\\y=1+2\\Phi&amp;&amp;  1+y=2+2\\Phi \\\\a_{b}=1+\\Phi &amp;&amp; l=\\Phi\\\\ a=2+3\\Phi&amp;&amp; h=3\\Phi\\end{matrix}\" alt=\"\\begin{matrix}x=1+3\\Phi&amp;&amp; r=\\sqrt{3-\\sqrt{5}}(1+\\Phi)=\\sqrt{3+\\sqrt{5}}\\\\y=1+2\\Phi&amp;&amp;  1+y=2+2\\Phi \\\\a_{b}=1+\\Phi &amp;&amp; l=\\Phi\\\\ a=2+3\\Phi&amp;&amp; h=3\\Phi\\end{matrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aa3\/664\/41e\/aa366441e098b52efcc796638113033d.svg\" width=\"417\" height=\"109\"\/><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/679\/3d0\/363\/6793d0363277c5b61165fb2d1349efc7.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/679\/3d0\/363\/6793d0363277c5b61165fb2d1349efc7.png\"\/><\/figure>\n<p>\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/53c\/74e\/e13\/53c74ee133f4efd10ed7f8233ee6d7f9.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/53c\/74e\/e13\/53c74ee133f4efd10ed7f8233ee6d7f9.png\"\/><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u0442\u044c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0437\u0430\u0447\u0435\u043c \u0434\u0435\u043b\u0438\u043b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043c\u0435\u043b\u043a\u0438\u0445. \u041c\u043e\u0437\u0430\u0438\u043a\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u0435\u0451 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0441 \u0434\u043b\u0438\u043d\u043d\u044b\u043c\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0441 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438. \u0423 \u0444\u043e\u0440\u043c\u044b \u0440\u0443\u0431\u0430\u0448\u043a\u0438-\u0448\u043b\u044f\u043f\u044b \u0435\u0441\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u043f\u043e \u0433\u0440\u0430\u043d\u0438 \u0438\u043c\u0435\u0435\u0442 \u0441\u0440\u0435\u0434\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u044b\u0439 \u0448\u0430\u0433. \u0415\u0441\u043b\u0438 \u043c\u044b \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u043c \u0448\u0430\u0433\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u0440\u0438 \u0448\u0430\u0433\u0435 \u0432\u0434\u043e\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043e\u0442\u043d\u0438\u043c\u0430\u044f \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c, \u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u0445\u043e\u0434\u0430 \u0444\u0438\u0433\u0443\u0440\u044b \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0432 \u0441\u0443\u043c\u043c\u0430\u0445 \u043d\u0443\u043b\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0432 \u043c\u043e\u0437\u0430\u0438\u043a\u0435, \u0435\u0441\u043b\u0438 \u0435\u0451 \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u043e \u0433\u0440\u0430\u043d\u044f\u043c \u043f\u043b\u0438\u0442\u043e\u043a, \u043e\u0431\u043e\u0439\u0434\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043b\u044e\u0431\u043e\u0433\u043e \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430, \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u044d\u0442\u0430 \u0441\u0443\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u043b\u0435\u0432\u043e\u0439. \u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u0433\u0434\u0435 \u043d\u0435\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u044d\u0442\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0434\u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0441\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0434\u0432\u0443\u043c\u044f \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438, \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u0434\u043b\u044f \u0433\u0440\u0430\u043d\u0438 \u043d\u0435\u0442. \u0418 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u0430\u0440\u0430\u043c\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0433\u0440\u0430\u043d\u0435\u0439. \u0418\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0434\u043b\u0438\u043d \u0433\u0440\u0430\u043d\u0435\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0440\u044f\u043c\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<p>\u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u00ab\u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438\u00bb \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0442\u0435\u043c \u0447\u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u0438\u043d\u044b \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0443 \u0448\u0430\u0433\u043e\u0432, \u0442\u043e \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u0441\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0435\u0441\u043b\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043b\u0438\u043d\u044b \u0443 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043b\u0438\u0442\u043a\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043c\u043e\u0437\u0430\u0438\u043a\u0443.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0442\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0438 \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043b\u0438\u0442\u043a\u0430\u043c\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/543\/ae6\/4ab\/543ae64abee043808371584e55c915fd.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/543\/ae6\/4ab\/543ae64abee043808371584e55c915fd.gif\"\/><\/figure>\n<p>\u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0441 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u043e \u0434\u0432\u0443\u043c \u0432\u0435\u0440\u0445\u043d\u0438\u043c \u0442\u043e\u0447\u043a\u0430\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d98\/a50\/f24\/d98a50f247a36f7cc00ae90ef1de4ff7.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d98\/a50\/f24\/d98a50f247a36f7cc00ae90ef1de4ff7.gif\"\/><\/figure>\n<p>\u0422\u0443\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u0430\u0440\u0430 \u0442\u043e\u0447\u0435\u043a \u0444\u0438\u0433\u0443\u0440\u044b \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u0438 \u0448\u0430\u0442\u0430\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u043d\u0435 \u0438\u0437-\u0437\u0430 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0444\u0438\u0433\u0443\u0440\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043b\u0438\u043d \u0438 \u0443\u0433\u043b\u043e\u0432. \u0415\u0441\u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u043e \u0443\u0437\u043b\u0430\u043c, \u0442\u043e \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u044e\u0442\u0441\u044f \u043a \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u043d\u043e\u0432\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c, \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0435\u0449\u0451 \u0437\u0430\u043c\u0435\u0442\u043d\u043e.<\/p>\n<p>\u041f\u0440\u0438\u0447\u0451\u043c, \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043d\u0435 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0417\u043d\u0430\u0447\u0438\u0442, \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u0443\u0437\u043b\u044b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0438 \u043d\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439. \u041c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0443\u0437\u043b\u044b \u043d\u0435\u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u043e\u043a\u043e\u043b\u043e \u0443\u0437\u043b\u043e\u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438, \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044f.<\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0438\u0437-\u0437\u0430 \u044f\u0432\u043d\u043e\u0433\u043e \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430 \u0441 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u043e\u0439 \u043d\u0430\u0437\u0432\u0430\u043d\u0430 \u00ab\u0447\u0435\u0440\u0435\u043f\u0430\u0445\u043e\u0439\u00bb. \u041a\u0430\u043a \u0438 \u0448\u043b\u044f\u043f\u0430, \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0430 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e-\u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0435.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/300\/d7e\/26f\/300d7e26ff96ba6c7d72382490e27c24.png\" width=\"400\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/300\/d7e\/26f\/300d7e26ff96ba6c7d72382490e27c24.png\"\/><\/figure>\n<p>\u0417\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u043d\u0438\u0436\u043d\u044e\u044e \u043f\u0443\u0433\u043e\u0432\u0438\u0446\u0443 \u0440\u0443\u0431\u0430\u0448\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0432 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0443 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439. \u0412\u0435\u0440\u0445\u043d\u044f\u044f \u043f\u0443\u0433\u043e\u0432\u0438\u0446\u0430 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441\u044a\u0435\u0437\u0436\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e \u0438\u0437 \u0442\u0440\u0451\u0445 \u043c\u0435\u0441\u0442 \u043d\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0435, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e \u0441 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0432 \u044d\u0442\u0443 \u0442\u043e\u0447\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u041c\u0435\u043d\u044f\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0433\u0440\u0430\u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0438 \u0434\u0430\u043b\u044c\u0448\u0435, \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e \u043d\u0443\u043b\u044f. \u041f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0444\u0438\u0433\u0443\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0442\u0438\u043f \u0433\u0440\u0430\u043d\u0435\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f38\/643\/568\/f38643568cc6d9acfef41f7671e89179.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f38\/643\/568\/f38643568cc6d9acfef41f7671e89179.gif\"\/><\/figure>\n<p>\u042f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043a\u0440\u043e\u043c\u0435 \u0434\u043b\u0438\u043d\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0449\u0451 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043f\u0430\u0440\u043e\u0447\u043a\u0430 \u0444\u0438\u0433\u0443\u0440, \u043d\u043e \u0434\u043b\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043e\u0431\u0435 \u0444\u0438\u0433\u0443\u0440\u044b. \u042f \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u044e \u0438\u0445 \u00ab\u043e\u0441\u0442\u0440\u043e\u0432\u043e\u043a\u00bb \u0438 \u00ab\u043b\u0443\u0436\u0430\u00bb.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6a0\/470\/873\/6a047087312ea47f5db02f2efc4dade4.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6a0\/470\/873\/6a047087312ea47f5db02f2efc4dade4.png\"\/><\/figure>\n<p>\u0423 \u043e\u0441\u0442\u0440\u043e\u0432\u043a\u0430 \u0435\u0441\u0442\u044c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c: \u0441 \u043f\u0430\u043b\u044c\u043c\u043e\u0439 \u043e\u043d \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0443 \u0442\u043e\u0447\u043a\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/81f\/212\/25d\/81f21225dac113e4765a750d70081c46.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/81f\/212\/25d\/81f21225dac113e4765a750d70081c46.png\"\/><\/figure>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0444\u0438\u0433\u0443\u0440 \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u043b\u043e, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0442\u0430\u043a\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0438 \u0448\u043b\u044f\u043f\u0430 \u0438 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0430 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u043d\u0438\u0436\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0438 \u043e \u043d\u0435\u0439.<\/p>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439: \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0432 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443 \u0438 \u0437\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0448\u043a\u0438 \u0438 \u0440\u0430\u0437\u043b\u043e\u043c\u044b \u043f\u043b\u0430\u0448\u0435\u043a \u043d\u0430 \u043f\u043b\u0438\u0442\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u0438\u0437 \u0448\u043b\u044f\u043f. \u0418\u043b\u0438 \u0438\u0437 \u0447\u0435\u0440\u0435\u043f\u0430\u0445, \u0438\u0437 \u0444\u0438\u0433\u0443\u0440 \u043c\u043e\u0440\u0444\u0438\u043d\u0433\u0430, \u0438\u0437 \u043b\u0443\u0436 \u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0445\u0435\u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u0442\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0432\u043e\u043f\u0440\u043e\u0441 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439. \u0410 \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u043d\u0430 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. \u0412\u0435\u0434\u044c \u0447\u0442\u043e\u0431\u044b \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u0446\u0435\u043b\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0451 \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044c \u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c.<\/p>\n<p>\u041f\u0440\u0438 \u043e\u0442\u0440\u044b\u0432\u0435 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043f\u043b\u0430\u0448\u0435\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\Phi\" alt=\"\\Phi\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/434\/916\/2b2\/4349162b248e63099a9d4368a6b7e55a.svg\" width=\"14\" height=\"17\"\/>. \u041f\u0440\u0438\u0447\u0451\u043c, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dfd\/2e1\/dd9\/dfd2e1dd957817368ca050b2e2ffcf36.svg\" width=\"6\" height=\"17\"\/> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u0430 \u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443, \u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439, \u0432\u0442\u043e\u0440\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c. \u0418 \u0434\u043b\u044f \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a\u0438\u043c\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=1+3L \\qquad y=1+2l\\\\  1+y=2+2l \\qquad h=3L\\\\L=1\\qquad l=1\/2\" alt=\"x=1+3L \\qquad y=1+2l\\\\  1+y=2+2l \\qquad h=3L\\\\L=1\\qquad l=1\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d80\/bfb\/beb\/d80bfbbeb040903768da814b1de532b3.svg\" width=\"698\" height=\"74\"\/><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e66\/c32\/12f\/e66c3212f2a67a1e73bb2fb8ed3ea33b.svg\" width=\"9\" height=\"12\"\/> \u0447\u0435\u0440\u0435\u0437 \u0434\u043b\u0438\u043d\u0443 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"S\" alt=\"S\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/11f\/0f0\/222\/11f0f0222f31708dddfa1ab3843a42b9.svg\" width=\"12\" height=\"17\"\/> \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0432\u043d\u043e\u0431\u0435\u0434\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0432 \u0443\u0437\u043b\u0435 \u0432\u0435\u043d\u0442\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\Delta X=\\frac{1+2l}{2}+2+2l-(1+3L)=3\\left(\\frac{1}{2}+l-L\\right)\\qquad \\Delta Y=\\sqrt{3}\\left(\\frac{1}{2}+l\\right)\\\\r=\\frac1{\\sqrt{3}}S\\qquad S^2=(\\Delta X)^2+(\\Delta Y)^2=9\\left(\\frac{1}{2}+l-L\\right)^2+3\\left(\\frac{1}{2}+l\\right)^2\\\\r=\\sqrt{3L^2-3L+4l^2+4l-6Ll+1}\" alt=\"\\Delta X=\\frac{1+2l}{2}+2+2l-(1+3L)=3\\left(\\frac{1}{2}+l-L\\right)\\qquad \\Delta Y=\\sqrt{3}\\left(\\frac{1}{2}+l\\right)\\\\r=\\frac1{\\sqrt{3}}S\\qquad S^2=(\\Delta X)^2+(\\Delta Y)^2=9\\left(\\frac{1}{2}+l-L\\right)^2+3\\left(\\frac{1}{2}+l\\right)^2\\\\r=\\sqrt{3L^2-3L+4l^2+4l-6Ll+1}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/072\/227\/af2\/072227af2484f697800f3f114d398b1e.svg\" width=\"698\" height=\"141\"\/><\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0433\u0440\u0430\u043d\u0438, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0438 \u0441\u0438\u043d\u0443\u0441:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"|r_x|=\\frac{\\Delta X\\pm\\Delta Y\/\\sqrt{3}}{2}\\qquad |r_y|=\\frac{\\Delta Y\\mp\\Delta X\/\\sqrt{3}}{2}\\\\\\alpha=\\pi\/3+\\omega\\\\\\cos(\\alpha)=\\frac{3L-\\left(1+2l\\right)}{2r}\\qquad \\sin(\\alpha)=\\frac{\\sqrt{3}\\left(1+2l\\right)-\\sqrt{3}L}{2r}\\\\\\cos\\left(\\frac23\\pi-\\alpha\\right)=\\frac{2+4l-3L}{2r}\\qquad \\sin\\left(\\frac23\\pi-\\alpha\\right)=\\frac{\\sqrt{3}L}{2r}\" alt=\"|r_x|=\\frac{\\Delta X\\pm\\Delta Y\/\\sqrt{3}}{2}\\qquad |r_y|=\\frac{\\Delta Y\\mp\\Delta X\/\\sqrt{3}}{2}\\\\\\alpha=\\pi\/3+\\omega\\\\\\cos(\\alpha)=\\frac{3L-\\left(1+2l\\right)}{2r}\\qquad \\sin(\\alpha)=\\frac{\\sqrt{3}\\left(1+2l\\right)-\\sqrt{3}L}{2r}\\\\\\cos\\left(\\frac23\\pi-\\alpha\\right)=\\frac{2+4l-3L}{2r}\\qquad \\sin\\left(\\frac23\\pi-\\alpha\\right)=\\frac{\\sqrt{3}L}{2r}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/650\/6f0\/913\/6506f09135a5fb57f5c86e417613c441.svg\" width=\"698\" height=\"185\"\/><\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438: \u044d\u0442\u043e \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u0418 \u0442\u0440\u0435\u0442\u044c\u044f \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f &#8212; \u043f\u043e\u0432\u043e\u0440\u043e\u0442. \u0418 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0435 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0442\u044c\u044e \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043d\u0430 \u0432\u0441\u0435\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/652\/7d4\/6de\/6527d46defdfd9143847810ed73dc318.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/652\/7d4\/6de\/6527d46defdfd9143847810ed73dc318.gif\"\/><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d\u0430 &#8212; \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u043c\u0435\u0435\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438, \u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c &#8212; \u043f\u043e \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/755\/413\/f4d\/755413f4de8baf0e6dcd697174682bd1.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/755\/413\/f4d\/755413f4de8baf0e6dcd697174682bd1.gif\"\/><\/figure>\n<p>\u0418\u043b\u0438 \u0447\u0443\u0442\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0435\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eff\/dcd\/397\/effdcd397ee699c8501e27bb0d14ea5d.gif\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eff\/dcd\/397\/effdcd397ee699c8501e27bb0d14ea5d.gif\"\/><\/figure>\n<p>\u0414\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0451 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u0435\u0439. \u041f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0432\u044b\u044f\u0441\u043d\u044f\u0442\u044c \u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0444\u0438\u0433\u0443\u0440 \u043f\u0440\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435.<\/p>\n<p>\u041f\u0440\u0438 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e-\u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0435 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u00ab\u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435\u00bb \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b &#8212; \u044d\u0442\u043e \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c, \u043e\u0442\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u043d\u0430 60\u00b0. \u0420\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u0438\u043d\u0438\u0445 \u0438 \u043a\u0440\u0430\u0441\u043d\u044b\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u0438 \u0432 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u044b \u043a\u0430\u043a <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(1{,}5 ;\\; 10{,}5)\" alt=\"(1{,}5 ;\\; 10{,}5)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e5b\/ccb\/8af\/e5bccb8af61df7744b0e63e8a9ff3d66.svg\" width=\"88\" height=\"22\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(3 ;\\; 8)\" alt=\"(3 ;\\; 8)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f87\/22d\/411\/f8722d411f7d6d3a49f738fbda948b35.svg\" width=\"48\" height=\"22\"\/>. \u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u044d\u0442\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(4;\\; 27{,}5)\" alt=\"(4;\\; 27{,}5)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae4\/387\/5f7\/ae43875f7a44c19099d71aac39b8a087.svg\" width=\"73\" height=\"22\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(8;\\; 21)\" alt=\"(8;\\; 21)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1e9\/c6c\/33e\/1e9c6c33ed76698a521f374e7cbc45bf.svg\" width=\"58\" height=\"22\"\/>. \u0410 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u0442\u043e \u0435\u0441\u0442\u044c, \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u043c\u0430\u043b\u043e\u0439 \u043b\u043e\u043f\u0430\u0441\u0442\u0438, \u0440\u0430\u0432\u043d\u044b <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0{,}5;\\; 4)\" alt=\"(0{,}5;\\; 4)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ca\/a70\/425\/7caa7042514593ab9f6b450cbd85dbf5.svg\" width=\"63\" height=\"22\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(1;\\; 3)\" alt=\"(1;\\; 3)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/380\/e4c\/f46\/380e4cf469c52c751e23db2f7894e057.svg\" width=\"48\" height=\"22\"\/>.<\/p>\n<p>\u041f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u043c \u043a\u0430\u043a \u0438\u0437 \u0432\u0435\u043b\u0438\u0447\u0438\u043d \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a19\/954\/ff7\/a19954ff7e06d255d3546243e11dc329.png\" width=\"640\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a19\/954\/ff7\/a19954ff7e06d255d3546243e11dc329.png\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0{,}5;\\; 4;\\; 1;\\; 3) \\to (1{,}5;\\; 10{,}5;\\; 3;\\; 8) \\to (4;\\; 27{,}5;\\; 8;\\; 21)\" alt=\"(0{,}5;\\; 4;\\; 1;\\; 3) \\to (1{,}5;\\; 10{,}5;\\; 3;\\; 8) \\to (4;\\; 27{,}5;\\; 8;\\; 21)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ea4\/3cf\/ab8\/ea43cfab8631773217388aefb4638181.svg\" width=\"435\" height=\"22\"\/> \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"M=\\begin{bmatrix}3 &amp; 1 &amp; -1 &amp; -1\\\\ -1 &amp; 2 &amp; 0 &amp; 1\\\\ -2 &amp; 0 &amp; 1 &amp; 1\\\\ 2 &amp; 2 &amp; -1 &amp; 0 \\end{bmatrix}\\qquad M^{-1}=\\begin{bmatrix}0 &amp; -1 &amp; 1 &amp; 1\\\\ 1 &amp; 1 &amp; 0 &amp; -1\\\\ 2 &amp; 0 &amp; 2 &amp; -1\\\\ -2 &amp; -2 &amp; 1 &amp; 3 \\end{bmatrix}\" alt=\"M=\\begin{bmatrix}3 &amp; 1 &amp; -1 &amp; -1\\\\ -1 &amp; 2 &amp; 0 &amp; 1\\\\ -2 &amp; 0 &amp; 1 &amp; 1\\\\ 2 &amp; 2 &amp; -1 &amp; 0 \\end{bmatrix}\\qquad M^{-1}=\\begin{bmatrix}0 &amp; -1 &amp; 1 &amp; 1\\\\ 1 &amp; 1 &amp; 0 &amp; -1\\\\ 2 &amp; 0 &amp; 2 &amp; -1\\\\ -2 &amp; -2 &amp; 1 &amp; 3 \\end{bmatrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/19c\/099\/f4b\/19c099f4b6c1cc7fe967868bf73a9e69.svg\" width=\"500\" height=\"103\"\/><\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0443 \u043d\u0435\u0451 \u0440\u0430\u0432\u0435\u043d \u0435\u0434\u0438\u043d\u0438\u0446\u0435, \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430.<\/p>\n<p>\u0410 \u0435\u0449\u0451, \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u0441\u043e\u043e\u0431\u0449\u0438\u043b: \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u0430\u0437\u0438\u0441, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044d\u0442\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"M = S \\times \\begin{bmatrix}\\phi^2 &amp;&amp; 0&amp;&amp; 0&amp;&amp; 0\\\\0 &amp;&amp; \\phi^2 &amp;&amp; 0&amp;&amp; 0\\\\0&amp;&amp; 0&amp;&amp; \\Phi^2 &amp;&amp; 0\\\\0&amp;&amp; 0&amp;&amp; 0&amp;&amp; \\Phi^2 \\end{bmatrix} \\times S^{-1}\" alt=\"M = S \\times \\begin{bmatrix}\\phi^2 &amp;&amp; 0&amp;&amp; 0&amp;&amp; 0\\\\0 &amp;&amp; \\phi^2 &amp;&amp; 0&amp;&amp; 0\\\\0&amp;&amp; 0&amp;&amp; \\Phi^2 &amp;&amp; 0\\\\0&amp;&amp; 0&amp;&amp; 0&amp;&amp; \\Phi^2 \\end{bmatrix} \\times S^{-1}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0e1\/747\/f50\/0e1747f50ec17dc3d12bb24de65526c2.svg\" width=\"371\" height=\"106\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"S=\\frac{1}{2}\\begin{bmatrix}1 &amp; \\phi &amp; 1 &amp; -\\Phi\\\\ -\\phi &amp; \\phi^2 &amp; \\Phi &amp; \\Phi^2\\\\ 0 &amp; 2 &amp; 0 &amp; 2\\\\ 2 &amp; 0 &amp; 2 &amp; 0 \\end{bmatrix} \\qquad S^{-1}= \\frac{1}{\\sqrt{5}}\\begin{bmatrix}-2 &amp;&amp; -2 &amp;&amp; 1 &amp;&amp; \\Phi^2\\\\2 &amp;&amp; 0  &amp;&amp; \\Phi &amp;&amp; -1\\\\2 &amp;&amp; 2 &amp;&amp; -1 &amp;&amp; -\\phi^{2}\\\\-2&amp;&amp; 0&amp;&amp; \\phi &amp;&amp; 1 \\end{bmatrix}\" alt=\"S=\\frac{1}{2}\\begin{bmatrix}1 &amp; \\phi &amp; 1 &amp; -\\Phi\\\\ -\\phi &amp; \\phi^2 &amp; \\Phi &amp; \\Phi^2\\\\ 0 &amp; 2 &amp; 0 &amp; 2\\\\ 2 &amp; 0 &amp; 2 &amp; 0 \\end{bmatrix} \\qquad S^{-1}= \\frac{1}{\\sqrt{5}}\\begin{bmatrix}-2 &amp;&amp; -2 &amp;&amp; 1 &amp;&amp; \\Phi^2\\\\2 &amp;&amp; 0  &amp;&amp; \\Phi &amp;&amp; -1\\\\2 &amp;&amp; 2 &amp;&amp; -1 &amp;&amp; -\\phi^{2}\\\\-2&amp;&amp; 0&amp;&amp; \\phi &amp;&amp; 1 \\end{bmatrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ab\/82b\/8fc\/3ab82b8fc1420f353ff3c9b1747ecb12.svg\" width=\"623\" height=\"104\"\/><\/p>\n<p>\u041a\u0440\u0430\u0441\u0438\u0432\u043e? \u0418 \u0432\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0432\u044b\u0432\u043e\u0434\u0443 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043e\u0434\u043d\u0438\u043c \u043c\u0430\u0445\u043e\u043c.<\/p>\n<p>\u0422\u043e \u0447\u0442\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0432\u0435\u043b\u0438\u0447\u0438\u043d \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f &#8212; \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432 \u0441\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u043c \u0431\u0430\u0437\u0438\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u0438\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0438 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445, \u043d\u0430 \u043e\u0434\u043d\u0443 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443.<\/p>\n<p>\u041f\u0440\u0438\u0447\u0451\u043c, \u044d\u0442\u0430 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043e\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u044d\u0442\u043e \u043e\u043d \u0438 \u0435\u0441\u0442\u044c. \u0410 \u043e\u0431\u0440\u0430\u0449\u0451\u043d\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043d\u0443\u043b\u044f \u0438, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0442 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438.<\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430, \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0;\\;1{,}5)\" alt=\"(0;\\;1{,}5)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aa5\/609\/7a6\/aa56097a621aee66bf736b9af42fc0bf.svg\" width=\"63\" height=\"22\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0;\\;1)\" alt=\"(0;\\;1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a37\/401\/110\/a374011106a5182a0e428f35fe75bce2.svg\" width=\"48\" height=\"22\"\/>. \u0424\u0438\u0433\u0443\u0440\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u0430\u043c\u0438 \u043a\u0430\u043a \u043b\u0438\u043d\u0438\u0438 \u0441\u0435\u0442\u043a\u0438. \u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0443\u0433\u043b\u0430 &#8212; \u043d\u0430 \u043a\u0430\u043a\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0440\u0438 \u0438\u0434\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0412\u0435\u043a\u0442\u043e\u0440 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(0;\\;1{,}5;\\;0;\\;1)\" alt=\"(0;\\;1{,}5;\\;0;\\;1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0f5\/4c6\/d50\/0f54c6d5074319b52c3d15ca16675982.svg\" width=\"110\" height=\"22\"\/> \u043f\u043e\u0441\u043b\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0438\u0441\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\left(\\frac{\\Phi-2}{\\sqrt{5}};\\; -\\frac{1}{\\sqrt{5}};\\; \\frac{\\varphi+2}{\\sqrt{5}};\\; \\frac{1}{\\sqrt{5}}\\right) = \\left(\\frac{5 - 3 \\sqrt{5}}{10};\\; -\\frac{2\\sqrt{5}}{10};\\; \\frac{5 + 3 \\sqrt{5}}{10};\\; \\frac{2\\sqrt{5}}{10}\\right)\" alt=\"\\left(\\frac{\\Phi-2}{\\sqrt{5}};\\; -\\frac{1}{\\sqrt{5}};\\; \\frac{\\varphi+2}{\\sqrt{5}};\\; \\frac{1}{\\sqrt{5}}\\right) = \\left(\\frac{5 - 3 \\sqrt{5}}{10};\\; -\\frac{2\\sqrt{5}}{10};\\; \\frac{5 + 3 \\sqrt{5}}{10};\\; \\frac{2\\sqrt{5}}{10}\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c1\/26d\/eaa\/3c126deaaa882197f9d1aeef6779c658.svg\" width=\"604\" height=\"53\"\/><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u043d\u043e\u043b\u044c &#8212; \u043e\u043d\u0438 \u043f\u0440\u0438 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0438 \u043a \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442\u0441\u044f. \u0414\u0440\u0443\u0433\u0438\u0435 \u0434\u0432\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e, \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u0431\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<p>\u041f\u043e\u0442\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0431\u0430\u0437\u0438\u0441.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\left(\\frac{\\Phi^2\\cdot 1 + 1\\cdot (-\\Phi)}{2\\sqrt{5}}; \\frac{(\\Phi^2)\\cdot \\Phi + 1 \\cdot (\\Phi^2)}{2\\sqrt{5}};\\frac{1}{\\sqrt{5}};\\frac{\\Phi+1}{\\sqrt{5}}\\right) =\\\\= \\left(\\frac{1}{2\\sqrt{5}};\\frac{3\\sqrt{5}+7}{4\\sqrt{5}};\\frac{1}{\\sqrt{5}};\\frac{\\sqrt{5}+3}{2\\sqrt{5}}\\right)\" alt=\"\\left(\\frac{\\Phi^2\\cdot 1 + 1\\cdot (-\\Phi)}{2\\sqrt{5}}; \\frac{(\\Phi^2)\\cdot \\Phi + 1 \\cdot (\\Phi^2)}{2\\sqrt{5}};\\frac{1}{\\sqrt{5}};\\frac{\\Phi+1}{\\sqrt{5}}\\right) =\\\\= \\left(\\frac{1}{2\\sqrt{5}};\\frac{3\\sqrt{5}+7}{4\\sqrt{5}};\\frac{1}{\\sqrt{5}};\\frac{\\sqrt{5}+3}{2\\sqrt{5}}\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12c\/7e6\/a4d\/12c7e6a4d6ff0e646f5529e94b252fb8.svg\" width=\"698\" height=\"111\"\/><\/p>\n<p>\u0418 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0430\u0440\u0443 \u0432 \u0434\u0435\u043a\u0430\u0440\u0442\u043e\u0432\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"X = \\frac{1}{4\\sqrt{5}}+\\frac{7+3\\sqrt{5}}{4\\sqrt{5}}=\\frac{8+3\\sqrt{5}}{4\\sqrt{5}}\\qquad Y = \\frac{\\sqrt{3}}{4\\sqrt{5}}\\\\\\theta = \\arctan\\left(\\frac{\\sqrt{3}}{8+3\\sqrt{5}}\\right) \\approx 6{,}716\\ldots^{\\circ}\" alt=\"X = \\frac{1}{4\\sqrt{5}}+\\frac{7+3\\sqrt{5}}{4\\sqrt{5}}=\\frac{8+3\\sqrt{5}}{4\\sqrt{5}}\\qquad Y = \\frac{\\sqrt{3}}{4\\sqrt{5}}\\\\\\theta = \\arctan\\left(\\frac{\\sqrt{3}}{8+3\\sqrt{5}}\\right) \\approx 6{,}716\\ldots^{\\circ}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/145\/882\/853\/145882853dc2972fbadf216690cf98ef.svg\" width=\"698\" height=\"112\"\/><\/p>\n<p>\u0412\u043e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043d\u0443\u0436\u043d\u044b\u0439 \u0443\u0433\u043e\u043b.<\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0432 \u044f\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{1}{2\\sqrt{5}} \\left(\\frac{(3 + \\sqrt{5})^n-(3 - \\sqrt{5})^n}{2^n};\\;\\frac{(7 + 3 \\sqrt{5})^{2+n} -2^{2 + n}}{(3 + \\sqrt{5})^{2 + n} };\\\\\\frac{(3 + \\sqrt{5})^n-(3 - \\sqrt{5})^n}{2^{n-1}};\\frac{(3 + \\sqrt{5})^{1 + n}-(3 - \\sqrt{5})^{1 + n}}{2^{n}}\\right)\" alt=\"\\frac{1}{2\\sqrt{5}} \\left(\\frac{(3 + \\sqrt{5})^n-(3 - \\sqrt{5})^n}{2^n};\\;\\frac{(7 + 3 \\sqrt{5})^{2+n} -2^{2 + n}}{(3 + \\sqrt{5})^{2 + n} };\\\\\\frac{(3 + \\sqrt{5})^n-(3 - \\sqrt{5})^n}{2^{n-1}};\\frac{(3 + \\sqrt{5})^{1 + n}-(3 - \\sqrt{5})^{1 + n}}{2^{n}}\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e0e\/9f8\/43f\/e0e9f843f99b5274760f65e7d4a646bf.svg\" width=\"698\" height=\"127\"\/><\/p>\n<p>\u0412\u0441\u0451 \u0436\u0435, \u0442\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c, \u0431\u044b\u0432\u0430\u0435\u0442, \u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u043f\u0440\u043e\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0441 \u0432\u0438\u0434\u0443 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445. \u041d\u043e \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0438 \u0437\u043d\u0430\u043a \u043f\u0435\u0440\u0435\u0434 \u0434\u0440\u043e\u0431\u044c\u044e.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{(7 + 3 \\sqrt{5})^{2+n} -2^{2 + n}}{(3 + \\sqrt{5})^{2 + n} }=-\\frac{(3 +\\sqrt{5})^{-2-n} - (3 - \\sqrt{5})^{-2-n}}{2^{-2-n}}\\\\\\left(\\frac{7+3\\sqrt{5}}{2}\\right)^{x}-1=-1+\\left(\\frac{3-\\sqrt{5}}{3+\\sqrt{5}}\\right)^{-x}\\\\ 2+3\\Phi=\\frac{7+3\\sqrt{5}}{2}=\\frac{3+\\sqrt{5}}{3-\\sqrt{5}}=\\frac{\\Phi^2\\cdot2}{\\Phi^{-2}\\cdot 2}=\\Phi^4\" alt=\"\\frac{(7 + 3 \\sqrt{5})^{2+n} -2^{2 + n}}{(3 + \\sqrt{5})^{2 + n} }=-\\frac{(3 +\\sqrt{5})^{-2-n} - (3 - \\sqrt{5})^{-2-n}}{2^{-2-n}}\\\\\\left(\\frac{7+3\\sqrt{5}}{2}\\right)^{x}-1=-1+\\left(\\frac{3-\\sqrt{5}}{3+\\sqrt{5}}\\right)^{-x}\\\\ 2+3\\Phi=\\frac{7+3\\sqrt{5}}{2}=\\frac{3+\\sqrt{5}}{3-\\sqrt{5}}=\\frac{\\Phi^2\\cdot2}{\\Phi^{-2}\\cdot 2}=\\Phi^4\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/169\/17e\/12a\/16917e12abb2e9a8233219ba68e967b7.svg\" width=\"698\" height=\"176\"\/><\/p>\n<p>\u041f\u0440\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f. \u0412\u044b\u0440\u0430\u0436\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0449\u0435. \u0412\u0435\u043a\u0442\u043e\u0440, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\Phi\" alt=\"\\Phi\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bf5\/679\/eb7\/bf5679eb7f7a01894e281009964c1ae1.svg\" width=\"14\" height=\"17\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{1}{2\\sqrt5}\\begin{bmatrix}\\Phi^{2n}-\\Phi^{-2n}\\\\\\Phi^{2n+4}-\\Phi^{-2n-4}\\\\2(\\Phi^{2n}-\\Phi^{-2n})\\\\2(\\Phi^{2n+2}-\\Phi^{-2n-2})\\end{bmatrix}\" alt=\"\\frac{1}{2\\sqrt5}\\begin{bmatrix}\\Phi^{2n}-\\Phi^{-2n}\\\\\\Phi^{2n+4}-\\Phi^{-2n-4}\\\\2(\\Phi^{2n}-\\Phi^{-2n})\\\\2(\\Phi^{2n+2}-\\Phi^{-2n-2})\\end{bmatrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7eb\/0a3\/9f6\/7eb0a39f6cf44aa8464681a8edcbaaf8.svg\" width=\"230\" height=\"108\"\/><\/p>\n<p>\u0418 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0438\u043d\u0438\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0443\u0440\u043e\u0432\u043d\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0443\u0433\u043b\u0430 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a_n=\\frac{1}{2\\sqrt{5}}\\left(\\frac{\\Phi^{2n}-\\Phi^{-2n}}2+{\\Phi^{2n+4}}-\\Phi^{-2n-4}+i\\frac{\\sqrt{3}}{2}\\left({\\Phi^{2n}-\\Phi^{-2n}}\\right)\\right)\" alt=\"a_n=\\frac{1}{2\\sqrt{5}}\\left(\\frac{\\Phi^{2n}-\\Phi^{-2n}}2+{\\Phi^{2n+4}}-\\Phi^{-2n-4}+i\\frac{\\sqrt{3}}{2}\\left({\\Phi^{2n}-\\Phi^{-2n}}\\right)\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/521\/c97\/581\/521c9758163f84d097ecc31e8adaff25.svg\" width=\"550\" height=\"53\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\small{a_0=\\frac{3}{2}=1{,}5\\\\ a_1=\\frac{17 + i \\sqrt3}{4}=\\frac{\\sqrt{73}}{2}\\cdot e^{i\\alpha_1}=4{,}272\\ldots\\cdot e^{i\\alpha_1}\\\\a_\\infty \/ \\Phi^{2\\infty}=\\frac{2}{{\\sqrt5}}+\\frac{3}{4}+\\frac{i}{4}\\sqrt{\\frac{3}{5}}=\\sqrt{\\frac{7}{5}+\\frac{3}{\\sqrt5}}\\cdot e^{i\\alpha_\\infty}=1{,}655\\ldots\\cdot e^{i\\alpha_\\infty}}\" alt=\"\\small{a_0=\\frac{3}{2}=1{,}5\\\\ a_1=\\frac{17 + i \\sqrt3}{4}=\\frac{\\sqrt{73}}{2}\\cdot e^{i\\alpha_1}=4{,}272\\ldots\\cdot e^{i\\alpha_1}\\\\a_\\infty \/ \\Phi^{2\\infty}=\\frac{2}{{\\sqrt5}}+\\frac{3}{4}+\\frac{i}{4}\\sqrt{\\frac{3}{5}}=\\sqrt{\\frac{7}{5}+\\frac{3}{\\sqrt5}}\\cdot e^{i\\alpha_\\infty}=1{,}655\\ldots\\cdot e^{i\\alpha_\\infty}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ca\/cef\/7d4\/4cacef7d48d9980d4d40f528b1588120.svg\" width=\"474\" height=\"139\"\/><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a=2+\\frac{3(L+l) + i \\sqrt3(L-l)}{2}\" alt=\"a=2+\\frac{3(L+l) + i \\sqrt3(L-l)}{2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d5e\/92f\/e4f\/d5e92fe4f204f327fd3abedb92340a1e.svg\" width=\"257\" height=\"48\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"L=1 \\quad  l=1\/2\\quad\\Rightarrow \\quad a= (17 + i \\sqrt3)\/4=a_1=4{,}25+i\\cdot \\ldots\" alt=\"L=1 \\quad  l=1\/2\\quad\\Rightarrow \\quad a= (17 + i \\sqrt3)\/4=a_1=4{,}25+i\\cdot \\ldots\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7eb\/339\/d86\/7eb339d86ac90997a8756c31769170c5.svg\" width=\"514\" height=\"24\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"L=\\Phi\\quad l=\\Phi\\quad \\Rightarrow \\quad a=({7 + 3 \\sqrt5})\/{2}=\\Phi^4=2+3\\Phi=a_d=6{,}854\\ldots\" alt=\"L=\\Phi\\quad l=\\Phi\\quad \\Rightarrow \\quad a=({7 + 3 \\sqrt5})\/{2}=\\Phi^4=2+3\\Phi=a_d=6{,}854\\ldots\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ad6\/8cd\/ae8\/ad68cdae846e85fd16804320e7c22f1b.svg\" width=\"596\" height=\"25\"\/><\/p>\n<p>\u0422\u043e \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e \u0441\u0435\u0431\u0435 \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c: \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442, \u043d\u043e \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431. \u0414\u043b\u044f \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u043e\u043a \u043d\u0443\u0436\u043d\u043e \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u0441\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\Phi^2\" alt=\"\\Phi^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/58c\/dac\/5b5\/58cdac5b526d285b5a8eca8ecc2c1d9c.svg\" width=\"23\" height=\"21\"\/> . \u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0434\u043b\u0438\u043d\u0430 \u043f\u0440\u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0435 \u0441 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u043e\u0439 \u0441 \u0434\u043b\u0438\u043d\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a_{1,\u0438}={\\sqrt{\\frac{7}{5}+\\frac{3}{\\sqrt{5}}}}\\cdot{\\frac{\\sqrt5+3}{2}}=\\sqrt{\\frac{47}{5} + \\frac{21}{\\sqrt5}}=4{,}334\\ldots\" alt=\"a_{1,\u0438}={\\sqrt{\\frac{7}{5}+\\frac{3}{\\sqrt{5}}}}\\cdot{\\frac{\\sqrt5+3}{2}}=\\sqrt{\\frac{47}{5} + \\frac{21}{\\sqrt5}}=4{,}334\\ldots\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a8\/f44\/04f\/3a8f4404f37d888ca53a477b6ccb4541.svg\" width=\"450\" height=\"62\"\/><\/p>\n<p>\u0412\u043e\u0442 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ae\/d0a\/adb\/9aed0aadb3e71a8addc8f00fd46b3b8d.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ae\/d0a\/adb\/9aed0aadb3e71a8addc8f00fd46b3b8d.png\"\/><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c\u0438 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u043e\u043a\u0440\u0443\u0436\u0430\u044e\u0442 \u0444\u0438\u0433\u0443\u0440\u0443 \u043f\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c. \u041a\u0430\u0436\u0434\u0430\u044f \u043f\u043b\u0430\u0448\u043a\u0430 \u043f\u043e\u0440\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0434\u0432\u0443\u043c\u044f \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0438 \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043d\u0438\u0445 \u0443\u0434\u0430\u043b\u044f\u0442\u044c, \u043b\u0438\u0431\u043e \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043b\u0430\u0448\u043a\u0438 \u043d\u0430 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043b\u0430\u0448\u043a\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445. \u0418 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442: \u0447\u0430\u0441\u0442\u044c \u043f\u043b\u0430\u0448\u0435\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437 \u0441\u0445\u0435\u043c\u044b \u0443\u0434\u0430\u043b\u0435\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0434\u0435\u0442\u0430\u043b\u044c \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u043e\u0439. \u041c\u043e\u0437\u0430\u0438\u043a\u0430 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0441\u043e\u0439\u0434\u0451\u0442\u0441\u044f, \u043f\u0440\u044f\u043c\u043e \u043a\u0430\u043a \u0441 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u0438 \u0432\u044b\u0435\u043c\u043a\u0430\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0430\u0437\u043b\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0435\u0451 \u0442\u0438\u043f, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u0430 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u0421\u0445\u0435\u043c\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435.  \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440, \u0432\u0435\u0434\u044c \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0432 \u0448\u043b\u044f\u043f\u044b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043d\u043e\u0432\u044b\u0439 \u0442\u0438\u043f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0414\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0430 \u0447\u0438\u0441\u043b\u0430 \u0437\u0430\u0434\u0430\u044e\u0442: \u043f\u0435\u0440\u0432\u043e\u0435 &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438 \u0432\u0442\u043e\u0440\u043e\u0435 &#8212; \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0433\u043e\u0432 \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f. \u0412\u0441\u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0448\u0435\u0441\u0442\u044c, \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c\u0438. \u0410 \u0438\u0437 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0442\u0440\u0451\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(a,b,c)=(a-c,b+c)\" alt=\"(a,b,c)=(a-c,b+c)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/858\/f6e\/b53\/858f6eb537d29d801750b6b4ed041e3c.svg\" width=\"191\" height=\"22\"\/><\/p>\n<p>\u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442. \u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u043a\u0430\u043a<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"(a,b)\\to(-b,a+b)\" alt=\"(a,b)\\to(-b,a+b)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1bb\/6a6\/6cf\/1bb6a66cf1219137e3ab81b8586d70a7.svg\" width=\"161\" height=\"22\"\/><\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0447\u0435\u0442\u044b\u0440\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 &#8212; \u043f\u043e \u0434\u0432\u0430 \u043d\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(a_1, a_\\Phi, b_1, b_\\Phi)\" alt=\"(a_1, a_\\Phi, b_1, b_\\Phi)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/94b\/4b7\/bc3\/94b4b7bc3e01982440c741b4f70ea4e5.svg\" width=\"119\" height=\"22\"\/><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0443\u0446\u0435\u043b\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c, \u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0446\u0435\u043b\u044b\u043c\u0438, \u043e\u043d\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u044b \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0435\u0440\u0432\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u00ab\u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439\u00bb \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0435\u0433\u043e \u0432\u0435\u0440\u0448\u0438\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c:<br \/> [[0, -2, -2, -2], [2, 4, -2, -2], [2, 4, 0, -2], [0, -2, 2, 4], [-2, -2, 2, 4], [-2, -2, 0, -2]]<\/p>\n<p>\u041f\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044e, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442. \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 \u0437\u043d\u0430\u043a\u0435 \u043f\u0435\u0440\u0435\u0434 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"b\" alt=\"b\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a57\/ca5\/972\/a57ca5972d078fc6f45b585d70e8a57a.svg\" width=\"8\" height=\"17\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\Phi^2=1+\\Phi\\Rightarrow(a+b\\Phi)\\Phi = b+(a+b)\\Phi\\Rightarrow(a,b)\\to(b,a+b)\" alt=\"\\Phi^2=1+\\Phi\\Rightarrow(a+b\\Phi)\\Phi = b+(a+b)\\Phi\\Rightarrow(a,b)\\to(b,a+b)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/69a\/62c\/b0e\/69a62cb0ef4448e97022a63913f93278.svg\" width=\"515\" height=\"25\"\/><\/p>\n<p>\u041f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0442\u0430\u043a\u043e\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430\u0436\u0434\u044b. \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\Phi^2=1+\\Phi\\Rightarrow(a+b\\Phi)\\Phi^2 = (a+b)+(a+2b)\\Phi\\Rightarrow(a,b)\\to(a+b,a+2b)\" alt=\"\\Phi^2=1+\\Phi\\Rightarrow(a+b\\Phi)\\Phi^2 = (a+b)+(a+2b)\\Phi\\Rightarrow(a,b)\\to(a+b,a+2b)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c40\/716\/09d\/c4071609d812cb10d01534550c0c66b9.svg\" width=\"625\" height=\"25\"\/><\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435 \u0436\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0431\u0443\u0434\u0443\u0442:<br \/> [[-2, -4, -4, -6], [6, 10, -4, -6], [6, 10, -2, -4], [-2, -4, 6, 10], [-4, -6, 6, 10], [-4, -6, -2, -4]]<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e \u0432\u0441\u0435\u043c \u0444\u0438\u0433\u0443\u0440\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0442\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">\/\/ \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0440\u0451\u0431\u0440\u0430\u0445 \u0444\u0438\u0433\u0443\u0440   [     [[0, 0, 0, 0], [1, 3, 0, 0], [0, 0, 1, 0], [-1, -3, 1, 3], [-1, 0, 0, 0], [0, 0, -1, -3], [1, 0, -1, 0]],      [[0, 0, 0, 0], [1, 3, 0, 0], [0, 0, 1, 2], [-1, -3, 0, 0], [0, 0, -1, -2]],      [[0, 0, 0, 0], [1, 3, 0, 0], [1, 0, 0, 1], [0, -1, 1, 1], [-2, -2, 0, 0], [0, 0, -1, -2]],      [[0, 0, 0, 0], [0, 0, 0, 3], [0, -3, 0, 0], [0, 3, 0, -3]]   ] \/\/ \u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b 1, 0: [[0, -2, -2, -2], [2, 4, -2, -2], [2, 4, 0, -2], [0, -2, 2, 4], [-2, -2, 2, 4], [-2, -2, 0, -2]]  1, 1: [[2, 2, -2, -4], [2, 2, 0, 2], [0, 2, 2, 2], [-2, -4, 2, 2], [-2, -4, 0, 2], [0, 2, -2, -4]]  1, 2: [[2, 4, 0, -2], [0, -2, 2, 4], [-2, -2, 2, 4], [-2, -2, 0, -2], [0, -2, -2, -2], [2, 4, -2, -2]]  1, 3: [[0, 2, 2, 2], [-2, -4, 2, 2], [-2, -4, 0, 2], [0, 2, -2, -4], [2, 2, -2, -4], [2, 2, 0, 2]]  1, 4: [[-2, -2, 2, 4], [-2, -2, 0, -2], [0, -2, -2, -2], [2, 4, -2, -2], [2, 4, 0, -2], [0, -2, 2, 4]]  1, 5: [[-2, -4, 0, 2], [0, 2, -2, -4], [2, 2, -2, -4], [2, 2, 0, 2], [0, 2, 2, 2], [-2, -4, 2, 2]]  1, D: [[-2, -4, -4, -6], [6, 10, -4, -6], [6, 10, -2, -4], [-2, -4, 6, 10], [-4, -6, 6, 10], [-4, -6, -2, -4]]  2, 0: [[-1, -3, -1, -2], [1, 3, -1, -2], [1, 3, 1, 2], [-1, -3, 1, 2]]  2, 1: [[1, 2, -2, -5], [1, 2, 0, 1], [-1, -2, 2, 5], [-1, -2, 0, -1]]  2, 2: [[2, 5, -1, -3], [0, -1, 1, 3], [-2, -5, 1, 3], [0, 1, -1, -3]]  2, 3: [[1, 3, 1, 2], [-1, -3, 1, 2], [-1, -3, -1, -2], [1, 3, -1, -2]]  2, 4: [[-1, -2, 2, 5], [-1, -2, 0, -1], [1, 2, -2, -5], [1, 2, 0, 1]]  2, 5: [[-2, -5, 1, 3], [0, 1, -1, -3], [2, 5, -1, -3], [0, -1, 1, 3]]  2, D: [[-4, -7, -3, -5], [4, 7, -3, -5], [4, 7, 3, 5], [-4, -7, 3, 5]]  3, 0: [[-1, -3, -1, -2], [1, 3, -1, -2], [3, 3, -1, 0], [3, 1, 1, 2], [-1, -3, 1, 2]]  3, 1: [[1, 2, -2, -5], [1, 2, 0, 1], [1, 0, 2, 3], [-1, -2, 4, 3], [-1, -2, 0, -1]]  3, 2: [[2, 5, -1, -3], [0, -1, 1, 3], [-2, -3, 3, 3], [-4, -3, 3, 1], [0, 1, -1, -3]]  3, 3: [[1, 3, 1, 2], [-1, -3, 1, 2], [-3, -3, 1, 0], [-3, -1, -1, -2], [1, 3, -1, -2]]  3, 4: [[-1, -2, 2, 5], [-1, -2, 0, -1], [-1, 0, -2, -3], [1, 2, -4, -3], [1, 2, 0, 1]]  3, 5: [[-2, -5, 1, 3], [0, 1, -1, -3], [2, 3, -3, -3], [4, 3, -3, -1], [0, -1, 1, 3]]  3, D: [[-4, -7, -3, -5], [4, 7, -3, -5], [6, 9, -1, -1], [4, 5, 3, 5], [-4, -7, 3, 5]]  4, 0: [[0, 2, 0, -4], [0, 2, 0, 2], [0, -4, 0, 2]]  4, 1: [[0, 4, 0, -2], [0, -2, 0, 4], [0, -2, 0, -2]]  4, 2: [[0, 2, 0, 2], [0, -4, 0, 2], [0, 2, 0, -4]]  4, 3: [[0, -2, 0, 4], [0, -2, 0, -2], [0, 4, 0, -2]]  4, 4: [[0, -4, 0, 2], [0, 2, 0, -4], [0, 2, 0, 2]]  4, 5: [[0, -2, 0, -2], [0, 4, 0, -2], [0, -2, 0, 4]]  4, D: [[2, 4, -4, -8], [2, 4, 2, 4], [-4, -8, 2, 4]]  <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c.<\/p>\n<pre><code class=\"javascript\">  \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438   fgs = [     [[-2, -2, 2, 4, 1, 0], [0, 1, 3, 5, 2, 5], [4, 7, 1, -1, 3, 5],      [2, 4, 0, -2, 1, 0], [3, 5, -3, -6, 2, 0], [1, -1, -5, -6, 3, 3],      [0, -2, -2, -2, 1, 2], [-3, -6, 0, 1, 2, 1], [-5, -6, 4, 7, 3, 1],      [0, 0, 0, 0, 4, 0]],     [[-5, -7, 1, 2, 3, 1], [-2, -3, -1, -1, 1, 0], [0, 0, 0, 0, 2, 5],         [2, 3, 1, 1, 1, 5], [5, 7, -1, -2, 3, 4]],     [[-5, -7, 1, 2, 3, 1], [-2, -3, -1, -1, 1, 0], [0, 0, 0, 0, 2, 5],         [2, 3, 1, 1, 1, 5], [5, 7, -1, -2, 3, 4], [1, 2, 4, 5, 3, 0]],     [[0, 0, 0, 0, 1, 1]]   ]; <\/code><\/pre>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cb6\/ef4\/945\/cb6ef494543c402bf630015265366845.png\" width=\"640\" height=\"1280\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cb6\/ef4\/945\/cb6ef494543c402bf630015265366845.png\"\/><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u0438 \u0435\u0451 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0434\u0435\u043b\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0437\u0430 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0412 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e-\u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0442\u043e\u0433\u043e, \u043f\u0440\u0438\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0431\u0435 \u0431\u0443\u0434\u0443\u0442 \u0446\u0435\u043d\u0442\u0440\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438\u043b\u0438 \u0446\u0435\u043d\u0442\u0440\u044b \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430\u0434\u043e \u0443\u0447\u0435\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0446\u0435\u043d\u0442\u0440 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u044d\u0442\u043e \u0446\u0435\u043d\u0442\u0440 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0438\u043b\u0438 \u0446\u0435\u043d\u0442\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.<\/p>\n<p>\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f &#8212; \u043a\u043e\u0433\u0434\u0430 \u0446\u0435\u043d\u0442\u0440 \u043f\u043b\u0430\u043d\u043e\u043a \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0435, \u0430 \u0446\u0435\u043d\u0442\u0440\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0432 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u0445.<\/p>\n<p>\u0421\u0430\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c:<\/p>\n<ol>\n<li>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u0438 \u0438\u0441\u043a\u0430\u0436\u0430\u044e\u0442\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u0434\u0432\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0441 \u043e\u0431\u0449\u0435\u0439 \u0433\u0440\u0430\u043d\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043e\u0434\u0438\u043d \u043d\u0430 \u043e\u0434\u0438\u043d.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">\/\/ \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u0430 let shift = [[0, 0], [2 \/ 3, 0], [1 \/ 3, 1 \/ 3]][ct] let x = shift[0] + x0 + 0.001 let y = shift[1] + y0 * sqrt(3) \/ 2 + x0 \/ 2 + 0.001<\/code><\/pre>\n<ol start=\"2\">\n<li>\n<p>\u0423 \u0442\u0430\u043a\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0446\u0435\u043b\u0430\u044f \u0438 \u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u0438.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">let xn = floor(xd); x = x - xn; let yn = floor(yd); y = y - yn;<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>\u0414\u043b\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a \u0446\u0435\u043d\u0442\u0440\u0430\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u0430\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">if(x > y) {dx = 2 \/ 3; dy = 1 \/ 3;} else {dx = 1 \/ 3; dy = 2 \/ 3;}<\/code><\/pre>\n<ol start=\"4\">\n<li>\n<p>\u0414\u043b\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a \u0446\u0435\u043d\u0442\u0440\u0430\u043c \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0435:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">if (x + y > 1) {   if (2 * x &lt; y) {dx = 0; dy = 1;}   else if (2 * y &lt; x) {dx = 1; dy = 0;}   else {dx = 1; dy = 1;} } else {   if (2 * y > x + 1) {dx = 0; dy = 1;}   else if (2 * x > y + 1) {dx = 1; dy = 0;}   else {dx = 0; dy = 0;} }<\/code><\/pre>\n<ol start=\"5\">\n<li>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u043e\u0439 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"javascript\">x = xn + dx; y = yn + dy; let x1 = x - shift[0] let y1 = (y * 2 - x) \/ sqrt(3) - shift[1];<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439. \u0410 \u043f\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435: \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/be1\/543\/268\/be154326893a309803af7972212c40d2.png\" alt=\"\u041e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u0442\u0440\u043e\u0432\" title=\"\u041e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u0442\u0440\u043e\u0432\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be1\/543\/268\/be154326893a309803af7972212c40d2.png\"\/><\/p>\n<div><figcaption>\u041e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u0442\u0440\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/03e\/9fa\/49f\/03e9fa49f0f540b595b621d247dc1211.png\" alt=\"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430\" title=\"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/03e\/9fa\/49f\/03e9fa49f0f540b595b621d247dc1211.png\"\/><\/p>\n<div><figcaption>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/323\/954\/f9b\/323954f9b9530eaadbbe25b5baa70704.png\" alt=\"\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043d\u0430 \u0448\u043b\u044f\u043f\u044b. (\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0412\u0437\u0440\u044b\u0432 \u043d\u0430 \u0444\u0430\u0431\u0440\u0438\u043a\u0435 \u0440\u0443\u0431\u0430\u0448\u0435\u043a\u00bb)\" title=\"\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043d\u0430 \u0448\u043b\u044f\u043f\u044b. (\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0412\u0437\u0440\u044b\u0432 \u043d\u0430 \u0444\u0430\u0431\u0440\u0438\u043a\u0435 \u0440\u0443\u0431\u0430\u0448\u0435\u043a\u00bb)\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/323\/954\/f9b\/323954f9b9530eaadbbe25b5baa70704.png\"\/><\/p>\n<div><figcaption>\u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043d\u0430 \u0448\u043b\u044f\u043f\u044b. (\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0412\u0437\u0440\u044b\u0432 \u043d\u0430 \u0444\u0430\u0431\u0440\u0438\u043a\u0435 \u0440\u0443\u0431\u0430\u0448\u0435\u043a\u00bb)<\/figcaption><\/div>\n<\/figure>\n<p>\u0425\u0430\u0439\u0440\u0435\u0437\u044b: <a href=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/32d\/433\/b3c\/32d433b3c6334698d1bc885631893c95.png\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u044b\u0439<\/a>, <a href=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e75\/f3e\/9a3\/e75f3e9a309c3f6ada5b8d611b8071b2.png\" rel=\"noopener noreferrer nofollow\">\u0432\u0442\u043e\u0440\u043e\u0439<\/a>, <a href=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d34\/571\/b2d\/d34571b2d6a8ccf416ce9ae20bb583c2.png\" rel=\"noopener noreferrer nofollow\">\u0442\u0440\u0435\u0442\u0438\u0439<\/a>.<\/p>\n<p>\u0414\u0443\u043c\u0430\u044e, \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u043a\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0430\u043c\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f. \u0412\u043e\u0442 \u043e\u043d\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0438\u0441\u0443\u0435\u043c \u043c\u043e\u0437\u0430\u0438\u043a\u0443<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">\/\/ \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u0447\u0438\u043a\u043e\u043c \u043a\u0430\u0434\u0440\u043e\u0432 ccapture.js  \/\/ \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432, \u0444\u043b\u0430\u0433 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 let capturer, Nframes = 60, cap = 0;   let kf, zm, xs, ys; let color1, color2, color3, color4, color5, color6, cf; let shp0, shp1, shp2, shp3, shp4; let steps;  \/\/ \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u0435 const fi = (Math.sqrt(5) + 1) \/ 2;  \/\/ \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f let draw_arrow, draw_center, draw_triangle, center_type, qk, qh; let start_angle, liner_type, lev_counter; let draw_hat_center, draw_ideal, draw_hex;   function setup() {    \/\/ \u0432\u044b\u0431\u043e\u0440 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u0430\u043d\u0432\u044b   let R = [[1920, 1080], [640, 480]][1];   createCanvas(R[0], R[1]);      \/\/ \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0435\u043b\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432 \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0435   kf = [sqrt(3) \/ 2, 1 \/ 2, sqrt(3) \/ 2, 1 \/ 2, 0, 0, 0, 0];        \/\/ \u0446\u0432\u0435\u0442\u0430. \u0417\u0430\u0434\u0430\u043d\u044b \u0432 hsl, \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435   color1 = color('hsla(220,100%,75%,0.5)');   color2 = color('hsla(200,100%,75%,0.5)');   color3 = color('hsla(120,50%,75%,0.5)');   color4 = color('hsla(189,57%,89%,0.5)');   color5 = color('hsla(189,57%,59%,0.5)');   color6 = color('hsla(189,57%,59%,0.1)');    \/\/ \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0446\u0432\u0435\u0442\u043e\u0432 \u043f\u043e \u043f\u043b\u0438\u0442\u043a\u0430\u043c   cf = [color3, color2, color4, color5, color3];    \/\/ \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f   draw_ideal = 1;  \/\/ \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443   draw_hex = 1; \/\/ \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443   draw_center = 0; \/\/ \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f   lev_counter = 3; \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f   start_angle = 3; \/\/ \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b   qk = 1; \/\/ \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0443\u0448\u0435\u043a \u0444\u0438\u0433\u0443\u0440\u044b   draw_hat_center = 1; \/\/ \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0446\u0435\u043d\u0442\u0440 \u043f\u043b\u0438\u0442\u043a\u0438   qh = 1; \/\/ \u0441\u0434\u0432\u0438\u0433 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043f\u043b\u0438\u0442\u043a\u0438   draw_triangle = 1; \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043d\u0442\u0440 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430   draw_arrow = 1; \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043e\u043d\u0438 \u0436\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b      \/\/ \u0442\u0438\u043f \u0446\u0435\u043d\u0442\u0440\u0430   center_type = ([1, 0, 0, 1][lev_counter % 4] + start_angle) % 2;    \/\/ \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u044d\u0442\u043e \u0442\u043e \u043e\u0434\u0438\u043d \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439   \/\/ \u0441\u043c\u0435\u043d\u0430 \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0443\u0433\u043b\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0442\u043e\u0436\u0435 \u0432\u043b\u0438\u044f\u0435\u0442         \/\/ \u0442\u0438\u043f \u0440\u0430\u0437\u043b\u0438\u043d\u043e\u0432\u043a\u0438. \u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0442\u0430\u043a \u0447\u0442\u043e\u0431 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b \u0441 \u0442\u0438\u043f\u043e\u043c \u0446\u0435\u043d\u0442\u0440\u0430   liner_type = center_type;       \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u043e\u0440\u043c   set_shapes();    \/\/ \u0432\u044b\u0431\u043e\u0440 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430   zm = [8, 12, 32, 24, 6, 2][0]      \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u0441\u0447\u0451\u0442\u0430, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 \u0446\u0435\u043d\u0442\u0440   xs = width \/ 2;   ys = height \/ 2;      \/\/ \u0448\u0430\u0433\u0438, 12 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0446\u0435\u043b\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430   steps = [[2, 0, 0, 0], [0, 0, 1, 1], [1, 3, 0, 0], [0, 0, 0, 2], [-1, 3, 0, 0], [0, 0, -1, 1], [-2, 0, 0, 0], [0, 0, -1, -1], [-1, -3, 0, 0], [0, 0, 0, -2], [1, -3, 0, 0], [0, 0, 1, -1]];       \/\/ \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u043c \u043a\u0430\u0434\u0440\u043e\u0432   if (cap) {capturer = new CCapture({verbose: false, display: true, framerate: 60, motionBlurFrames: 0, quality: 99, format: \"png\", timeLimit: 20, frameLimit: 0, autoSaveTime: 0});} }  \/\/ \u041f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u0438\u0437 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u043e\u0440\u043e\u0442 function place(p) {   return {     x: xs + zm * (kf[0] * p[0] + kf[2] * p[2] + kf[4] * p[1] + kf[6] * p[3]),     y: ys - zm * (kf[1] * p[1] + kf[3] * p[3] - kf[5] * p[0] - kf[7] * p[2])   }; }  \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043a\u0430\u0434\u0440\u0430 function draw() {   \/\/ \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432   if (cap) {if (frameCount == 1) {capturer.start(); console.log('start recording.');}}    \/\/ \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043a\u0430\u043d\u0432\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430   background(240);    \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 - \u0446\u0432\u0435\u0442 \u0432 \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u043e\u0433\u043e    \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u0430   draw_shape();    \/\/ \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432   if (cap) {capturer.capture(document.getElementById('defaultCanvas0')); if (frameCount > Nframes) {noLoop(); console.log('finished recording.'); capturer.stop(); capturer.save();}} }   \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 function draw_vertex(fc) {   beginShape(); for (let i in fc) {let c = place(fc[i]); vertex(c.x, c.y);}; endShape(CLOSE); }  \/\/ \u0421\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 function add(c, d) {   let r = []; for (i in c) {r[i] = c[i] + d[i]; }; return r; }  \/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 function crd(c) {   return [c[0], c[1], c[2], c[3]]; }  \/\/ \u0440\u0430\u0437\u043b\u0438\u043d\u043e\u0432\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 function liner(size, type) {   if (!size) {size = 10;}   if (!type) {type = 0;}    \/\/ \u0441\u0434\u0432\u0438\u0433 \u0441\u0435\u0442\u043a\u0438   let dd = [[2, 2], [0, 4], [0, 0]][type];   let dx = dd[0], dy = dd[1];      strokeWeight(1);   stroke(color(180, 180, 180, 60));   noFill();      \/\/ \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432   let stv = [0, 3, 5, 8];   fcn = [];   for (j = 0; j &lt; 3; j++)   {     let stt = [0, 0, 0, 0]; fcn.push([stt]);     for (let i in stv) {let std = steps[(stv[i] + j * 2) % 12]; stt = add(stt, std); fcn[j].push(stt);}          stt = [0, 0, 0, 0]; fcn.push([stt]);     for (let i in stv) {let std = steps[(stv[i] + j * 2 + 6) % 12]; stt = add(stt, std); fcn[j].push(stt);}   }      \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0440\u0430\u0437 \u043e\u043d \u043d\u0435 \u0432 \u0445\u043e\u0434\u0438\u0442 \u0432 \u0448\u0435\u0441\u0442\u044c \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432   for (let j in fcn)   {     let fcm = fcn[j];     beginShape();     for (let i in fcm)     {       let fci = fcm[i];        fci = [dx + fci[0], dy + fci[1], fci[2], fci[3]];       c = place(fci);        vertex(c.x, c.y);     }     endShape(CLOSE);   }    \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0435\u0441\u0442\u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432   for (let vn = 0; vn &lt; 6; vn++)   {     fs1 = [0, 0, 0, 0];     for (let js = 0; js &lt; size; js++)     {       fcd = steps[vn * 2]; fs1 = add(fs1, fcd); fs1 = add(fs1, fcd); fs2 = fs1;       for (let jf = 0; jf &lt; (js + 1); jf++)       {         fs0 = fs2; fcd = steps[(vn * 2 + 4) % 12]; fs2 = add(fs0, fcd); fs2 = add(fs2, fcd);         for (let j in fcn)         {           let fcm = fcn[j];           beginShape();           for (let i in fcm)           {             let fci = fcm[i];             fci = [dx + fci[0], dy + fci[1] + fs0[1], fci[2] + fs0[0], fci[3]];             c = place(fci);             vertex(c.x, c.y);           }           endShape(CLOSE);         }       }     }   } }  \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b. \/\/ \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b: \/\/ shp - \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b.  \/\/ \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442: \/\/ \u0442\u0440\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \/\/ sh - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0443 \/\/ mr - \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u043e\u0432, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a \u0443\u0448\u043a\u0430\u043c \u043f\u0430\u0437\u0437\u043b\u0430 \/\/ cc - \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0446\u0435\u043d\u0442\u0440\u044b \u0444\u0438\u0433\u0443\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \/\/ \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b: \/\/ pos - \u044d\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438.  \/\/ v - \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435  \/\/ h - \u0440\u0430\u0437\u043c\u0435\u0440 \"\u0443\u0448\u0435\u043a\", \u043e\u0442 0 \u0434\u043e 1 \/\/ h2 - \u0441\u0434\u0432\u0438\u0433 \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b, \u043e\u0442 0 \u0434\u043e 1  function draw_fig(shp, pos, v, h, h2) {   \/\/ \u0438\u043c\u0435\u043d\u0430 \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f   let sh = shp.sh;   let mr = shp.mr;      \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f    let start = pos;     \/\/ sh[0] - \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0441 \u043a\u0430\u043a\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430,    \/\/ \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0445 \u0448\u0430\u0433\u043e\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u0443\u0442\u044c    \/\/ \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b \u0434\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430, \u043d\u0435 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f   shape = [];   for (let i = 1; i &lt; sh[0]; i++)   {     let vn = ((v + sh[i]) % 12 + 12) % 12;     pos = add(pos, steps[vn]);   }   \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043d\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0435   shape.push(pos);    \/\/ \u043f\u0440\u043e\u0445\u043e\u0434 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u0439   for (let i = sh[0]; i &lt; sh.length; i++)   {     let vn = ((v + sh[i]) % 12 + 12) % 12;     pos = add(pos, steps[vn]);     shape.push(pos);   }      \/\/ \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435   fig = [];      for (i = 1; i &lt; shape.length; i++)   {     let c1 = place(shape[i]);     let c2;     \/\/ \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \"\u0443\u0448\u043a\u0443\" \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430,      \/\/ \u0442\u043e \u0435\u0451 \u0441\u0434\u0432\u0438\u0433 \u0431\u0443\u0434\u0435\u0442 \u043a \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438     if (mr[i] == 1)     {       c2 = place(shape[i - 1]);     }     \/\/ \u0435\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \"\u0443\u0448\u043a\u0443\" \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0438\u043f\u0430,      \/\/ \u0442\u043e \u0435\u0451 \u0441\u0434\u0432\u0438\u0433 \u0431\u0443\u0434\u0435\u0442 \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438     if (mr[i] == 2)     {       c2 = place(shape[i + 1]);     }     \/\/ \u0420\u0430\u0441\u0447\u0451\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u0441\u0434\u0432\u0438\u0433 \u0438\u043b\u0438 \u043d\u0435\u0442     if (mr[i] > 0)     {       x = lerp(c1.x, c2.x, h);       y = lerp(c1.y, c2.y, h);     }     else     {       x = c1.x;       y = c1.y;     }     \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f     fig.push([x, y]);   }    \/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439,    \/\/ \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0433\u0440\u0430\u043d\u0438\u0446 \u043f\u043b\u0438\u0442\u043e\u043a \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0435\u043b\u043a\u0438   let lines = []      \/\/ \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0438\u0433\u0443\u0440\u0435 \u0446\u0435\u043d\u0442\u0440\u044b   for (let i in shp.cc)   {     sh = shp.cc[i];          \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0437\u0430\u0434\u0430\u043d\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f      \/\/ \u0448\u0430\u0433\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e      \/\/ \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0431\u0449\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u044b     pos = start;          \/\/ \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435     let vn;          \/\/ \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430     let posp;           for (let shv of sh)     {       vn = ((v + shv) % 12 + 12) % 12;       posp = pos;       pos = add(pos, steps[vn]);     }      \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438     let c0 = place(posp);       \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u0430\u043c\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430     let c1 = place(pos);      posl = pos;       \/\/ \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u0430\u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433.     pos = add(pos, steps[vn]);       let c2 = place(pos); \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u043c\u0435\u0449\u0451\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430      \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043a\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     \/\/ lerp \u0444\u0443\u043d\u043a\u0446\u0438\u044f p5js \u0434\u043b\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f,      \/\/ h2=0 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f c1.x, h2=1 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f c2.x     x = lerp(c1.x, c2.x, h2);     y = lerp(c1.y, c2.y, h2);      if(draw_hat_center)     {       \/\/ \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043b\u0438\u043d\u0438\u0438 \u0432\u0435\u0434\u0443\u0449\u0435\u0439 \u043a \u0446\u0435\u043d\u0442\u0440\u0443       line(c0.x, c0.y, x, y)        \/\/ \u0438 \u0446\u0435\u043d\u0442\u0440\u0430       circle(x, y, 10);     }      \/\/ vn \u044d\u0442\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u0430 \u043a \u0446\u0435\u043d\u0442\u0440\u0443,      \/\/ \u0430 \u043c\u044b \u043e\u0442 \u043d\u0435\u0433\u043e \u0443\u0445\u043e\u0434\u0438\u043c         \/\/ \u0440\u0430\u0437\u0432\u043e\u0440\u043e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f     vn = (vn + 6) % 12;          \/\/ \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043d\u0442\u0440\u044b 1 \u0438 2     if (i > 0 &amp;&amp; i &lt; 3)     {       \/\/ \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u0430       pos = posl;       \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430       pos = add(pos, steps[(vn + 12) % 12]);       \/\/ \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f        \/\/ \"-2\" - \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435,        \/\/ \"+ 12\" - \u0434\u043e\u0431\u0430\u0432\u043a\u0430 \u0447\u0442\u043e\u0431 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.        pos = add(pos, steps[(vn - 2 + 12) % 12]);        \/\/ \u043f\u0435\u0440\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430       p1 = pos;       \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u0430\u044f \u0442\u043e\u0447\u043a\u0430       pos = add(pos, steps[(vn - 5 + 12) % 12]);       p2 = pos;       \/\/ \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u044d\u0442\u043e \u0448\u0430\u0433 \u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439       p4 = add(pos, steps[(vn - 1 + 12) % 12]);       pos = add(p2, steps[(vn - 3 + 12) % 12]);       \/\/ \u0442\u0440\u0435\u0442\u044c\u044f \u0442\u043e\u0447\u043a\u0430 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0448\u0430\u0433 \u043e\u0442 \u0432\u0442\u043e\u0440\u043e\u0439       p3 = pos       pos = add(pos, steps[(vn - 6 + 12) % 12]);        \/\/ \u043b\u0438\u043d\u0438\u0438 \u0434\u0432\u0435: \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u0433\u0440\u0430\u043d\u044c \u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0435\u043b\u043a\u0443               let ln = [[p1, p2, p3, pos], [p4, p2, p2, p3]];       \/\/ \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043b\u0438\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u043b\u0430\u0432\u043d\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435       let lns = [];       for (i in ln[0])       {         \/\/ \u043f\u0435\u0440\u0432\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u043a\u0430\u043a \u0435\u0441\u0442\u044c         c1 = place(ln[0][i]);         \/\/ \u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0430 \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f         c2 = place(add(ln[1][i], steps[(vn - 8 + 12) % 12]));         x = map(h, 0, 1, c1.x, c2.x);         y = map(h, 0, 1, c1.y, c2.y);         lns.push([x, y])       }       lines.push(lns);     }   }    \/\/ \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u0440\u0438\u0441\u0443\u0435\u043c    beginShape();   for (i in fig)   {     vertex(fig[i][0], fig[i][1]);   }   endShape(CLOSE);      if(draw_arrow)   {     \/\/ \u044f\u0440\u043a\u043e\u0441\u0442\u044c \u043b\u0438\u043d\u0438\u0439 \u0433\u0440\u0430\u043d\u0438 \u0438 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f     \/\/ \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0446\u0432\u0435\u0442\u0430 \u043b\u0438\u043d\u0438\u0438 - \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c     stroke(60, 60, 60, lerp(60, 255, 1 - h));      for (let i in lines)     {       lns = lines[i];       for (let i = 0; i &lt; 3; i++)       {         line(lns[i][0], lns[i][1], lns[i + 1][0], lns[i + 1][1]);       }     }   }   \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u043b\u0438\u043d\u0438\u0438   stroke(60) }   \/\/ \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 function set_shapes() {    \/\/ \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438   \/\/ \u041f\u0440\u0435\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0440\u0451\u0431\u0435\u0440 \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u044b   function edge_to_vertex(dd)   {     let ps = [];     let p = [0, 0, 0, 0];     for (let d of dd)     {       p = add(p, d);       ps.push(p);     }     return ps   };    \/\/ \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0438\u043f\u0430   function rots(p)   {     return [-p[2], -p[3], p[0] + p[2], p[1] + p[3]]   }    \/\/ \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u0438\u043d\u0430\u0442 \u043f\u043e \u0446\u0435\u043b\u044b\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435)   function place2(p)   {     let x, y;     x = (p[0] + p[1] * fi + (p[2] + p[3] * fi) \/ 2);     y = ((p[2] + p[3] * fi) * sqrt(3) \/ 2);     x = xs + zm * x;     y = ys - zm * y;     return {       x: x,       y: y     }   }    \/\/ \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0442\u0435\u043a\u0441\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u0438   \/\/ \u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0435\u043d\u0430 \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u043e\u043b\u044c      \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0440\u0451\u0431\u0440\u0430\u0445 \u0444\u0438\u0433\u0443\u0440   dt = [     [[0, 0, 0, 0], [0, 0, 0, 3], [0, -3, 0, 0], [0, 3, 0, -3]],      [[0, 0, 0, 0], [1, 3, 0, 0], [0, 0, 1, 0], [-1, -3, 1, 3], [-1, 0, 0, 0], [0, 0, -1, -3], [1, 0, -1, 0]],     [[0, 0, 0, 0], [1, 3, 0, 0], [0, 0, 1, 2], [-1, -3, 0, 0], [0, 0, -1, -2]],     [[0, 0, 0, 0], [1, 3, 0, 0], [1, 0, 0, 1], [0, -1, 1, 1], [-2, -2, 0, 0], [0, 0, -1, -2]]   ]     \/\/ \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0444\u043e\u0440\u043c\u0435   let dtf0 = []    for (fg = 0; fg &lt; dt.length; fg++)   {     let dtf1 = []     for (let rot2 = 0; rot2 &lt; 7; rot2++)     {       let dtf2 = [];       ps = edge_to_vertex(dt[fg]);        \/\/ \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u0430.        \/\/ \u041a\u0440\u043e\u043c\u0435 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u044b, \u0434\u043b\u044f \u043d\u0435\u0451 \u0431\u0435\u0440\u0451\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u0430\u043a \u0443 \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b       if (fg == 3)       {         sm = [1 \/ 2, 3 \/ 2, 1 \/ 2, 2 \/ 2]       }       else       {         sm = [0, 0, 0, 0];         for (let i = 1; i &lt; ps.length; i++) {p0 = ps[i - 1]; sm = add(sm, p0);}         for (i in sm) {sm[i] = sm[i] \/ (ps.length - 1)}       }        \/\/ \u0426\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430       for (let i = 0; i &lt; ps.length; i++)         for (let j = 0; j &lt; 4; j++)           ps[i][j] = (ps[i][j] - sm[j]) * 2        \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043e\u0432 \u0444\u043e\u0440\u043c\u044b \u0438 \u0441\u043c\u0435\u043d\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430       for (let i = 1; i &lt; ps.length; i++)       {         p0 = ps[i - 1];         if (rot2 == 6)         {           p0 = [p0[0] + p0[1], p0[0] + 2 * p0[1], p0[2] + p0[3], p0[2] + 2 * p0[3]]         }         else           for (let rot = 0; rot &lt; rot2; rot++)           {             p0 = rots(p0)           }         dtf2.push(p0);       }       dtf1.push(dtf2)     }     dtf0.push(dtf1)   }   dtf = dtf0;     \/\/ \u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u043e\u043b\u044c      \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0438   fgs = [     [       [0, 0, 0, 0, 1, 1]     ],     [       [0, 0, 0, 0, 0, 0],       [-2, -2, 2, 4, 1, 0], [0, 1, 3, 5, 2, 5], [4, 7, 1, -1, 3, 5],       [2, 4, 0, -2, 1, 0], [3, 5, -3, -6, 2, 0], [1, -1, -5, -6, 3, 3],       [0, -2, -2, -2, 1, 2], [-3, -6, 0, 1, 2, 1], [-5, -6, 4, 7, 3, 1]     ],     [       [-5, -7, 1, 2, 3, 1], [-2, -3, -1, -1, 1, 0], [0, 0, 0, 0, 2, 5],       [2, 3, 1, 1, 1, 5], [5, 7, -1, -2, 3, 4]     ],     [  [-5, -7, 1, 2, 3, 1], [-2, -3, -1, -1, 1, 0], [0, 0, 0, 0, 2, 5],        [2, 3, 1, 1, 1, 5], [5, 7, -1, -2, 3, 4], [1, 2, 4, 5, 3, 0]     ]   ];      \/\/ \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f   function build(lev, lp)   {     let levp = lev[lp];     lev.push([]);     let nl = lev.length - 1;     let levn = lev[nl];     for (let fg of levp)     {       \/\/ \u043c\u0430\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b       p2 = [fg[0] + fg[1], fg[0] + 2 * fg[1], fg[2] + fg[3], fg[2] + 2 * fg[3]]        \/\/ \u0431\u0435\u0440\u0451\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043f\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0444\u0438\u0433\u0443\u0440\u0435       for (let f of fgs[fg[4]])       {         \/\/ \u0431\u0435\u0440\u0451\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b         p = crd(f)         \/\/ \u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b         for (let i = 0; i &lt; fg[5]; i++) {p = rots(p);}         \/\/ \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435         let v = (f[5] + fg[5]) % 6;         \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0434\u0432\u0438\u0433 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043e\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b         p = add(p, p2);         \/\/ \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0442\u0438\u043f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u0442\u0438\u043f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0434\u043b\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439         levn.push([p[0], p[1], p[2], p[3], f[4], v, fg[4], fg[6]])       }     }     \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043d\u043e\u043c\u0435\u0440\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f     return nl;   }      \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0444\u0438\u0433\u0443\u0440\u0430\u0445      \/\/ \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a   shp1 = {     sh: [5, -3, -1, 2, 0,          -3, -5, -2, -4, 5, -5, 4, 6, 3, 5, 5, 3, 6, 4, 1, -1, 2, 0, 3, 1, 1, -1, 2, 0, -3, -5, -2, -4, -1, -3],     mr: [0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0],     cc: [       [-3, 3],       [-3, -1, 2, 0, 3, 5, 5, 3],       [-3, -5, 4, 2, 5, -5],       [-3, -5, -5, -3, 0, -2, 1, 3]     ]   }   \/\/ \u0446\u0435\u043d\u0442\u0440 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430   shp0 =   {     sh: [2, -3,         -5, 4, 2, 5, 3, 0, -2, 1, -1, -1, -3, 6, -4, 5],     mr: [0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2],     cc: [[-3, 3]]   }    \/\/ \u043f\u043b\u0430\u043d\u043a\u0430   shp2 = {     sh: [2, -5,         5, 2, 4, 1, -1, -1, -3, 0, -2, -5, -3, -3, -5, -2, -4, -1, 5, 5, 3, 6, 4, 1, 3, 3],     mr: [0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0],     cc: [       [-5, 1],       [-5, -3, -3, -1]     ]   }    \/\/ \u043b\u043e\u043f\u0430\u0441\u0442\u044c   shp3 = {     sh: [2, -5,         5, 2, 4, 1, -1, -1, -3, 0, -2, -5, -3, -3, -5, -2, -4, 5, 3, 6, 4, 1, 3, 3],     mr: [0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0],     cc: [       [-5, 1],       [-5, -3, -3, -1]     ]   }    \/\/ \u043c\u0430\u043b\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a   shp4 = {     sh: [2, -1,          -3, 6, -4, 5, 3, 3, 1, 4, 2, 5, -1, -1, -3, 0, -2, 1, -5, -5],     mr: [0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 2, 0, 0],     cc: [       [-1, 5],     ]   }      function level_create()   {     \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 - \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0432 \u0446\u0435\u043d\u0442\u0440\u0435     let lev = [[[0, 0, 0, 0, 1, start_angle]]];          nl = 0;     for (let i = 0; i &lt; lev_counter; i++)      {       nl = build(lev, nl);     }          return lev;   }      lev = level_create()    }  \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438  \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 function dr(fgd) {   beginShape();    for (let f1 of fgd)    {     let f = add(p, f1);      let c = pl(f); vertex(c.x, c.y);   }    endShape(CLOSE); }  \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0444\u0438\u0433\u0443\u0440\u044b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \/\/ \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \/\/ p - \u0446\u0435\u043b\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u0430\u043d\u0442\u044b \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \/\/ u1 - \u0442\u0438\u043f \u0444\u0438\u0433\u0443\u0440\u044b (0, 1 - \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 2, 3 - \u043f\u043b\u0430\u043d\u043a\u0438) \/\/ u2 - \u0442\u0438\u043f \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (\u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430)  function drc(p, u1, u2) {      let x, y;     \/\/ \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430     const xa = (8 + 3 * sqrt(5)) \/ sqrt(5) \/ 4;     const ya = sqrt(3) \/ sqrt(5) \/ 4;     \/\/const za = (7 \/ 5 + 3 \/ sqrt(5));          \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b     x = (2 * p[0] - p[1] + (p[1] - p[0]) * fi +          (2 * p[2] - p[3] + (p[3] - p[2]) * fi) \/ 2);          y = ((2 * p[2] - p[3]  + (p[3] - p[2]) * fi) * sqrt(3) \/ 2);             \/\/ \u043f\u043e\u0432\u043e\u0440\u043e\u0442     let xc = x * xa - y * ya;     let yc = y * xa + x * ya;      let xc2 = 0;     let yc2 = 0;          shift = [[1, 3 \/ 2], [2, 0], [0, 0]][u2];          \/\/ \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430     let xd = (xc - shift[0]) \/ 3;     let yd = (yc - shift[1]) \/ 3;      \/\/ \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435     xd = xd + 0.001;     yd = yd * sqrt(3) \/ 2 + xd \/ 2 + 0.001;          \/\/ \u0440\u0435\u0437\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438 \u0446\u0435\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438     let xd2 = floor(xd); xd = xd - xd2;     let yd2 = floor(yd); yd = yd - yd2;                  let dx, dy;          \/\/ \u0432\u044b\u0440\u0430\u0432\u0430\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u0444\u0438\u0433\u0443\u0440\u044b     if (u1 > 1)     {       if(xd + yd > 1)        {         if((2 * xd) &lt; (yd)) {dx = 0; dy = 1;}         else         if((2 * yd) &lt; (xd)) {dx = 1; dy = 0;}         else         {dx = 1; dy = 1;}       }        else       {         if((2 * yd - 1) > xd) {dx = 0; dy = 1;}         else         if((2 * xd - 1) > yd) {dx = 1; dy = 0;}         else         {dx = 0; dy = 0;}       }               }     else     {       if(xd > yd) {dx = 2 \/ 3; dy = 1 \/ 3;}       else {dx = 1 \/ 3; dy = 2 \/ 3;}     }                    xd3 = xd2 + dx;     yd3 = yd2 + dy;          yd3 = yd3 - xd3 \/ 2;          xc2 = 3 * (xd3) + shift[0];     yc2 = 3 * (yd3) + shift[1];      \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u0434\u0451\u0442 x &lt;- yc \u0438 y &lt;- xc \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432       return {       x: xs - zm * yc2 \/ (sqrt(3)\/2),        y: ys - zm * xc2,        x2: xc2,        y2: yc2     } }    \/\/ \u043f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 function plc(p) {   let x, y;    const xa = (8 + 3 * sqrt(5)) \/ sqrt(5) \/ 4;    const ya = sqrt(3) \/ sqrt(5) \/ 4;    \/\/const za = (7 \/ 5 + 3 \/ sqrt(5));       x = (2 * p[0] - p[1] + (p[1] - p[0]) * fi +        (2 * p[2] - p[3]  + (p[3] - p[2]) * fi)  \/ 2);    y = ((2 * p[2] - p[3]  + (p[3] - p[2]) * fi) * sqrt(3) \/ 2);       let xc = x * xa - y * ya;   let yc = y * xa + x * ya;      \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u0434\u0451\u0442 x &lt;- yc \u0438 y &lt;- xc \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432     return {x: xs - zm * yc, y: ys - zm * xc} };   function drawfig(p, fgd) {   beginShape(); for (let f1 of fgd) {let f = add(p, f1); let c = plc(f); vertex(c.x, c.y);}    endShape(CLOSE); }   \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0434\u0440\u0430 function draw_shape() {    \/\/ \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440   noLoop();      \/\/ \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0438\u0433\u0443\u0440 \u0443\u0440\u043e\u0432\u043d\u044f   let fg = lev[nl];        \/\/ \u0440\u0430\u0437\u043b\u0438\u043d\u043e\u0432\u043a\u0430    \/\/ \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u043e \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430   \/\/ \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 - \u0442\u0438\u043f \u0446\u0435\u043d\u0442\u0440\u0430 \u0441\u0435\u0442\u043a\u0438     liner(17, liner_type)      stroke(60)   strokeWeight(1)    \/\/ \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430   if(draw_ideal)     for (let f of fg)       drawfig(crd(f), dtf[f[4]][f[5]]);          for (let f of fg)   {        \/\/ \u0442\u0438\u043f \u0444\u0438\u0433\u0443\u0440\u044b     let t = f[4];          let pos;          let p = crd(f);          {       \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u0446\u0435\u043d\u0442\u0440\u0430 \u0444\u0438\u0433\u0443\u0440\u044b       let cu = plc(p);              stroke(60);               \/\/ \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u043d \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f       if(draw_center)       {         fill(0, 0, 0, 64);          circle(cu.x, cu.y, 7);        }              \/\/ \u0440\u0430\u0441\u0447\u0451\u0442 \u043e\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442       let c = drc(p, t, center_type);              \/\/ \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 \u0446\u0435\u043b\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c       pos = [floor(-c.y2 * 4 \/ 3 + 1 \/ 2), floor(c.x2 * 2 + 1 \/ 2), 0, 0]       \/\/ \u0443\u0447\u0442\u0451\u043d \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432                \/\/ \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0446\u0432\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u044b       fill(cf[f[4]]);               \/\/ \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0446\u0435\u043d\u0442\u0440       if(draw_center)       {         circle(c.x, c.y, 7);         line(c.x, c.y, cu.x, cu.y)         \/\/ \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0438\u044f         \/\/fill(cf[f[4]]); circle(c.x, c.y, zm * 3)       }        \/\/ \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0437\u0430\u0438\u043a\u0438       if(draw_hex)       {                 \/\/ \u0432\u044b\u0431\u043e\u0440 \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u043e \u0435\u0451 \u043d\u043e\u043c\u0435\u0440\u0443         let shp = [shp4, shp1, shp2, shp3][f[4]]                  \/\/ \u043f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u0443\u0433\u043b\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438\u0437 6 \u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0432 12 \u0434\u0435\u043b\u0435\u043d\u0438\u0439         let v = f[5] * 2                  \/\/ \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0444\u0438\u0433\u0443\u0440\u044b         \/\/ \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0442\u043e\u0436\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f         if(t == 0) {pos = add(pos, steps[(v + 3) % 12]); v = (v + 4) % 12; }         if(t == 1) {pos = add(pos, steps[(v + 1) % 12]); v = (v + 4) % 12; }         if(t == 2) {pos = add(pos, steps[(v + 10) % 12]); v = (v + 6) % 12;}         if(t == 3) {pos = add(pos, steps[(v + 10) % 12]); v = (v + 6) % 12;}                  fill(cf[f[4]]);          draw_fig(shp, pos, v, qk, qh)                  \/\/ \u0446\u0435\u043d\u0442\u0440 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430         if(t == 1 &amp;&amp; draw_triangle)          {           fill(color1);           draw_fig(shp0, pos, v, qk, qh)         }       }     }   } } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041c\u043e\u0437\u0430\u0438\u043a\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430. \u0422\u043e\u043b\u044c\u043a\u043e, \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435. \u041f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0440\u0435\u0431\u0440\u0430 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438 \u043c\u0430\u043b\u044b\u0435, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442,  \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u043f\u0430\u0445 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0418 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0442\u043e\u0436\u0435. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0438 \u0434\u043e \u043a\u0440\u0430\u0439\u043d\u0438\u0445, \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u043a\u0430\u043a\u0438\u043c\u0438 \u0448\u0430\u0433\u0430\u043c\u0438 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b, \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u0435-\u0447\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435. \u0420\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u043b\u0438\u0442\u043a\u0438 \u0437\u0430\u043d\u043e\u0432\u043e, \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0412\u0435\u0434\u044c \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0438\u043f\u0430 \u0444\u0438\u0433\u0443\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0438\u043f\u043e\u0432 \u0444\u0438\u0433\u0443\u0440 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430. \u0418 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0448\u0430\u0433\u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c.<\/p>\n<hr\/>\n<p>\u0414\u0432\u0430 \u0442\u0438\u043f\u0430 \u0444\u0438\u0433\u0443\u0440 \u0438 \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u044b. <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f16\/2cf\/cdf\/f162cfcdfa330269f35ddbe21a2d9b3a.png\" alt=\"\u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \" title=\"\u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \" width=\"400\" height=\"200\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f16\/2cf\/cdf\/f162cfcdfa330269f35ddbe21a2d9b3a.png\"\/><\/p>\n<div><figcaption>\u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e <\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0cb\/39d\/2e5\/0cb39d2e5845acc49b6eb32120dfcfa5.png\" alt=\"\u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e\" title=\"\u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e\" width=\"400\" height=\"200\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0cb\/39d\/2e5\/0cb39d2e5845acc49b6eb32120dfcfa5.png\"\/><\/p>\n<div><figcaption>\u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0434\u043d\u0430 \u043f\u043b\u0438\u0442\u043a\u0430 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u043e\u0441\u0435\u043c\u044c, \u0430 \u0434\u0432\u0435 \u043f\u043b\u0438\u0442\u043a\u0438 \u043d\u0430 \u0441\u0435\u043c\u044c, \u0442\u043e \u0435\u0441\u0442\u044c, \u0440\u043e\u0441\u0442 \u043d\u0435\u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439. \u041d\u043e \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0445 \u0433\u0440\u0443\u043f\u043f\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043b\u0438\u0442\u043e\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u043e\u0439. \u041d\u0430 \u0432\u0441\u0435\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445, \u043a\u0440\u043e\u043c\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0442\u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0448\u043b\u044f\u043f\u0435.<\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u0448\u043b\u044f\u043f\u044b \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0432\u044b\u0448\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u043b \u00ab\u043b\u0443\u0436\u0430\u00bb. \u041c\u043e\u0437\u0430\u0438\u043a\u0430 \u0442\u043e\u0433\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u043a\u0440\u0443\u0433\u043b\u044b\u0445 \u0444\u0438\u0433\u0443\u0440. \u0418 \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043b\u0438\u0441\u0442\u043a\u0435 \u0431\u0443\u043c\u0430\u0433\u0438, \u043f\u043e \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u0435. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u044e \u043d\u0430 \u00ab\u043a\u0440\u0443\u0436\u043a\u0430\u00bb. \u0411\u044b\u0432\u0430\u0435\u0442 \u0436\u0435, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0441\u0442\u043e\u043b \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043a\u0440\u0443\u0436\u043a\u0430\u043c\u0438 \u043e\u0442 \u043a\u043e\u0444\u0435, \u0433\u0434\u0435-\u0442\u043e \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u043a.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7ca\/3b7\/666\/7ca3b7666cbd162510f26f1fbf0313df.png\" alt=\"\u0421\u0435\u043c\u044c \u043a\u0440\u0443\u0436\u0435\u043a - \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043f\u043e \u0448\u0435\u0441\u0442\u0443\u044e\" title=\"\u0421\u0435\u043c\u044c \u043a\u0440\u0443\u0436\u0435\u043a - \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043f\u043e \u0448\u0435\u0441\u0442\u0443\u044e\" width=\"320\" height=\"320\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ca\/3b7\/666\/7ca3b7666cbd162510f26f1fbf0313df.png\"\/><\/p>\n<div><figcaption>\u0421\u0435\u043c\u044c \u043a\u0440\u0443\u0436\u0435\u043a &#8212; \u0441 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043f\u043e \u0448\u0435\u0441\u0442\u0443\u044e<\/figcaption><\/div>\n<\/figure>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0448\u0430\u0433\u0430\u0445 \u043e\u0431\u0445\u043e\u0434\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f &#8212; \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0441\u043e\u0431\u044b\u0435 \u0442\u043e\u0447\u043a\u0438, \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432.<\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u044d\u0442\u043e\u0442 \u043e\u0441\u0442\u0440\u044b\u0439 \u0443\u0433\u043e\u043b\u043e\u043a \u0441\u043d\u0438\u0437\u0443. \u0415\u0433\u043e \u0441\u043c\u0435\u043b\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u043e\u0431\u0445\u043e\u0434\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0430, \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u0444\u0438\u0433\u0443\u0440\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 &#8212; \u0442\u0430\u043c \u0433\u0434\u0435 \u0434\u0432\u0435 \u0433\u0440\u0430\u043d\u0438 \u0441\u043c\u044b\u043a\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044f \u0443\u0433\u043e\u043b, \u0433\u0434\u0435 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u0438\u0434\u0443\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u0440\u044f\u0434. \u041a \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438 \u0443\u0433\u043e\u043b\u043e\u043a \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b, \u0442\u043e\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0437\u0435\u043b \u0441\u043c\u044b\u043a\u0430\u043d\u0438\u044f \u0442\u0440\u0451\u0445 \u0444\u0438\u0433\u0443\u0440.<\/p>\n<pre><code class=\"javascript\">\/\/ \u0417\u0430\u0434\u0430\u0451\u043c \u0434\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0447\u0435\u0440\u0435\u0437 \u0448\u0430\u0433\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 12 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 cup = {      \/\/ \u041a\u0440\u0443\u0436\u043a\u0430   c1: [1, 11, 2, 4, 1, 3, 6, 8, 5, 7, 7, 9, 0, 10],    \/\/ \u041f\u0443\u0441\u0442\u043e\u0435 \u043c\u0435\u0441\u0442\u043e (\u0441 \u043a\u0440\u0443\u0436\u043a\u043e\u0439)   c0: [1, 11, 2, 4, 1, 3, 3, 5, 5, 7, 4, 6, 9, 11, 8, 10, 7, 9, 0, 10],    \/\/ \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043e\u0441\u043e\u0431\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 (\u0441 \u043a\u0440\u0443\u0436\u043a\u043e\u0439)   p: [5, 7, 9, 11, 13],    \/\/ \u043e\u0441\u043e\u0431\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043a\u0440\u0443\u0436\u043a\u0438 \u043e\u0434\u043d\u043e   p1: 10, }  \/\/ \u041a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043f\u044f\u0442\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u043d\u0430\u043a\u043b\u043e\u043d let v = [8, 10, 0, 2, 4];  \/\/\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0446\u0438\u043a\u043b for(let i = 0; i &lt; v.length; i++) {   join_tiles(cup, v[i], cup.p[i], i + 1);  }  \/\/ \u0430 \u0432\u043e\u0442 \u0447\u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u0432\u043d\u0443\u0442\u0440\u0438 function join_tiles(cup, v, s, n) {     \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b:     \/\/ cup - \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043a\u0440\u0443\u0436\u043a\u0430\u0445     \/\/ v - \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430     \/\/ s - \u0438\u043d\u0434\u0435\u043a\u0441 \u043e\u0441\u043e\u0431\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f     \/\/ n - \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0443\u0440\u0430          \/\/ \u0434\u043b\u044f \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432      \/\/ \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u0430     let c0 = cup.c0;     let c1 = cup.c1;          \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u043d\u0442\u0443\u0440     let c2 = [];          \/\/ \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043e\u0441\u043e\u0431\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0431\u0443\u0434\u0443\u0442 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f     \/\/ \u043d\u043e\u0432\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b     let p2 = [];          \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b     let i = 0;     let j = s          \/\/ \u043f\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0443\u0440\u0443 \u0438\u0434\u0451\u043c \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443     for(; j >= 0; j--)     {       \/\/ \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435       v0 = (c0[j] + 6) % 12;       \/\/ \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435       v1 = (c1[i] + v) % 12       \/\/ \u043f\u0440\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0438 \u0446\u0438\u043a\u043b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f       if(v0 != v1) {break;}       \/\/ \u0438\u043d\u0430\u0447\u0435 \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u0432\u043f\u0435\u0440\u0451\u0434       i++;     }          \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439     let added = j - s;     \/\/ \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0443\u0434\u0430\u043b\u044f\u044e\u0449\u0435\u043c \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c          \/\/ \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0434\u043e \u0442\u043e\u0447\u043a\u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u044f     for(let k = 0; k &lt;= j; k++) {c2.push(c0[k]);}      \/\/ \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u0438     let p3 = s;          \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430     for(; i &lt; c1.length; i++)     {       \/\/ \u043f\u043e\u0432\u043e\u0440\u043e\u0442       c2.push((c1[i] + v) % 12);        \/\/ \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u043e\u0441\u043e\u0431\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043a\u0440\u0443\u0436\u043a\u0438, \u0442\u043e \u043c\u0435\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043e\u0441\u043e\u0431\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u043d\u0435\u0451.       if(i == cup.p1) {p3 = c2.length - 1;}       \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f       added++;     }               \/\/ \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043e\u0441\u043e\u0431\u044b\u0445 \u0442\u043e\u0447\u0435\u043a     for(let k = 0; k &lt; cup.p.length; k++)      {       let p = cup.p[k];       \/\/ \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043e\u0441\u043e\u0431\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430       if(p == s) {p = p3 - 1;}       \/\/ \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432   else       if(p > s) {p += added;}       p2.push(p);     }      \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0442\u043a\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430     for(j = s + 1; j &lt; c0.length; j++) {c2.push(c0[j]);}      <\/code><\/pre>\n<p>\u042d\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u0442\u0440\u0451\u0445 \u043a\u0440\u0443\u0436\u043a\u0430\u0445, \u0430 \u043d\u0430 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0441\u0431\u043e\u0439.<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c \u0447\u0442\u043e \u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u043d\u0430\u0437\u044b\u0432\u0430\u043b \u00ab\u043f\u0430\u043b\u044c\u043c\u043e\u0439 \u043e\u0442 \u043e\u0441\u0442\u0440\u043e\u0432\u043a\u0430\u00bb \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043a\u0440\u0443\u0436\u043a\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0443\u0440\u0435 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u043f\u043e \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0435 \u0438 \u0442\u0443\u0442 \u0436\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0448\u0430\u0433\u043e\u0432. \u042d\u0442\u043e \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u0442\u0440\u0435\u0449\u0438\u043d\u0430 \u0432 \u043f\u043b\u0438\u0442\u043a\u0435. \u0418\u043d\u0434\u0435\u043a\u0441 \u043e\u0441\u043e\u0431\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0438\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430 \u043d\u0443\u0436\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e. \u041f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u0435\u0449\u0438\u043d\u0443 \u0443\u0431\u0438\u0440\u0430\u0435\u0442.<\/p>\n<pre><code class=\"javascript\">    for(let i = 1; i &lt; c2.length; i++)     {       \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0448\u0430\u0433\u0438, \u0435\u0441\u043b\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c       if((c2[i - 1] + 6) % 12 == c2[i])       {         \/\/ \u0442\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u044d\u0442\u0438 \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430         c2.splice(i - 1, 2);         \/\/ \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0430 \u0442\u0440\u0435\u0449\u0438\u043d \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442         \/\/ \u043e\u0442\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441         i -= 2;         \/\/ \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043e\u0441\u043e\u0431\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0442\u043e\u0436\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f         for(let i = n; i &lt; p2.length; i++)           p2[i] -= 2;       }     }       \/\/ cup.c0 = c2; cup.p = p2; <\/code><\/pre>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 (\u0441 \u043a\u0440\u0443\u0436\u043a\u043e\u0439) \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0441\u0430\u043c\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0448\u0435\u0441\u0442\u043e\u0435 \u043e\u0441\u043e\u0431\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0443\u0433\u043e\u043b\u043a\u0430, \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u043a\u0440\u0443\u0436\u043a\u0443. \u042d\u0442\u043e \u043c\u0435\u0441\u0442\u043e \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u044d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u0441\u043e\u0431\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043a\u0440\u0443\u0436\u043a\u0438. \u041f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0449\u0438\u043d\u0443 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u043e\u0439 \u0438 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u043e\u0439 &#8212; \u0438 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435.<\/p>\n<pre><code class=\"javascript\">  \/\/ \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442   if(n &lt;= 5)    {     cup.c0 = c2; cup.p = p2;   }    else    {     \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0448\u0435\u0441\u0442\u0430\u044f \u043a\u0440\u0443\u0436\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0443\u0441\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435     cup.c1 = c2; cup.p1 = p3;   }      return; }  \/\/ \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430 \u0442\u043e \u0447\u0442\u043e\u0431 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0435\u0441\u0442\u0443\u044e \u043a\u0440\u0443\u0436\u043a\u0443 \u0441 \u043a\u043e\u0444\u0435 join_tiles(cup, v[2], cup.p[2], 6); <\/code><\/pre>\n<p>\u041a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u0441\u043f\u0438\u0441\u043a\u0430 \u0448\u0430\u0433\u043e\u0432 \u0432 \u0446\u0438\u043a\u043b\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043e\u0441\u043e\u0431\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0441\u0442\u0435 \u043f\u043b\u0438\u0442\u043a\u0438 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438.<\/p>\n<p>\u0426\u0435\u043b\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0442\u0438\u043f\u0430. \u0422\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0432\u0442\u043e\u0440\u043e\u0439 \u0442\u0438\u043f, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0437\u043e\u043b\u043e\u0442\u043e\u0433\u043e \u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u0442\u0438\u043f\u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u0435\/\u043c\u0430\u043b\u044b\u0435. <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(a_{bg};\\;b_{bg};\\;a_{sm};\\;b_{sm})\" alt=\"(a_{bg};\\;b_{bg};\\;a_{sm};\\;b_{sm})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/748\/283\/d99\/748283d99c7d21ed1ebc377938bee2be.svg\" width=\"163\" height=\"23\"\/>. \u0418\u0445 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c.<\/p>\n<pre><code class=\"javascript\">let steps3 = [   [1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 0, 1],   [-1, 1, 0, 0], [0, 0, -1, 1], [-1, 0, 0, 0], [0, 0, -1, 0],   [0, -1, 0, 0], [0, 0, 0, -1], [1, -1, 0, 0], [0, 0, 1, -1], ];  \/\/ \u044d\u043a\u0440\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0441\u0447\u0451\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 function place3(pos) {   return place([pos[0] * 2 + pos[1], pos[1], pos[2] * 2 + pos[3], pos[3]]); }  function get_mpos(levels) {   \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 levels - \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0435\u0439.    \/\/ \u0441\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438   let mpos = [];    \/\/ \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f   let pos;        \/\/ \u0446\u0438\u043a\u043b \u043f\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0443   for(let lev = 0; lev &lt;= levels; lev++)   {     \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f     let mpos1 = [];     \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0441 \u043a\u0440\u0443\u0436\u043a\u043e\u0439     let mpos2 = [];     pos = [0, 0, 0, 0];     let k = 0;     for(let i = 0; i &lt; cup.c0.length; i++)     {       \/\/ \u0441\u043c\u0435\u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438       pos = add(pos, steps3[cup.c0[i]]);       \/\/ \u0434\u043b\u044f \u043e\u0441\u043e\u0431\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438       if(i == cup.p[k]) {mpos2.push(pos); k++;}     }     \/\/ \u0432\u043d\u043e\u0441\u0438\u043c \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0435 \u0434\u043b\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430     mpos1.push(mpos2);      \/\/ \u0438 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f \u043a\u0440\u0443\u0436\u043a\u0438     mpos2 = [];     pos = [0, 0, 0, 0];     let k = cup.p1;     for(let i = 0; i &lt; cup.c1.length; i++)     {       \/\/ \u0441\u043c\u0435\u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438       pos = add(pos, steps3[cup.c1[i]]);       \/\/ \u0434\u043b\u044f \u043e\u0441\u043e\u0431\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438       if(i == k) {mpos2.push(pos);}     }     mpos1.push(mpos2);          \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043e\u0431\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043a\u0430\u043a \u0434\u0430\u043d\u043d\u044b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f     mpos.push(mpos1);        \/\/ \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0446\u0438\u043a\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u043d\u0435 \u0434\u043b\u044f \u0441\u043c\u0435\u043d\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430     if(lev &lt; levels)     {       \/\/\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u0432 \u043a\u0440\u0443\u0436\u0435\u043a       for(let i = 0; i &lt; 5; i++) {join_tiles(cup, v[i], cup.p[i], i + 1);}       \/\/ \u0448\u0435\u0441\u0442\u0430\u044f \u043a\u0440\u0443\u0436\u043a\u0430       join_tiles(cup, v[2], cup.p[2], 6);     }     \/\/ \u043a\u043e\u043d\u0435\u0446 \u0446\u0438\u043a\u043b\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430   }   return mpos; }<\/code><\/pre>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u043e\u043d\u0442\u0443\u0440\u044b. \u0422\u043e\u043b\u044c\u043a\u043e, \u0441\u043b\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c: \u0448\u043b\u044f\u043f\u043d\u043e\u043c \u0438\u043b\u0438 \u043a\u0440\u0443\u0436\u0435\u0447\u043d\u043e\u043c. \u0422\u0430\u043a \u0447\u0442\u043e \u0440\u0435\u0436\u0438\u043c\u044b \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u043b\u0438\u0441\u044c.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa6\/f8e\/af4\/fa6f8eaf4de93a35dd5d77d83ed3a0da.gif\" alt=\" \u041e\u0441\u043e\u0431\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 \u0441\u0445\u0435\u043c\u0435 \u041f\u041c\u0441\u041a\" title=\" \u041e\u0441\u043e\u0431\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 \u0441\u0445\u0435\u043c\u0435 \u041f\u041c\u0441\u041a\" width=\"480\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fa6\/f8e\/af4\/fa6f8eaf4de93a35dd5d77d83ed3a0da.gif\"\/><\/p>\n<div><figcaption> \u041e\u0441\u043e\u0431\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 \u0441\u0445\u0435\u043c\u0435 \u041f\u041c\u0441\u041a<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fe0\/2a9\/0ef\/fe02a90ef8f60e37001756bee531f0fa.gif\" alt=\"\u0427\u0435\u0440\u0435\u043f\u0430\u0445\u0438\" title=\"\u0427\u0435\u0440\u0435\u043f\u0430\u0445\u0438\" width=\"480\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fe0\/2a9\/0ef\/fe02a90ef8f60e37001756bee531f0fa.gif\"\/><\/p>\n<div><figcaption>\u0427\u0435\u0440\u0435\u043f\u0430\u0445\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0431\u044b\u043b \u043f\u043e\u043b\u0443\u0447\u0435\u043d.<\/p>\n<p>\u041d\u043e \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u0440\u0443\u0436\u0435\u043a, \u043e\u043f\u044f\u0442\u044c \u043d\u0430 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0439, \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0451\u043b \u0441\u0431\u043e\u0439.<\/p>\n<p>\u0411\u0430\u0437\u043e\u0432\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u044d\u0442\u043e \u00ab\u043e\u0441\u0442\u0440\u043e\u0432 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0441 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u0439\u0441\u044f \u043a \u043d\u0435\u0439 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u043e\u0439\u00bb. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0442\u0440\u0435\u0442\u044c\u044f \u043a\u0440\u0443\u0436\u043a\u0430 \u0441\u0432\u043e\u0438\u043c \u043b\u0435\u0432\u044b\u043c \u043a\u0440\u0430\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043d\u0443\u043b\u0435\u0432\u0443\u044e. \u0418 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0432\u0438\u0433: \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u0438 \u043f\u044f\u0442\u0430\u044f \u043a\u0440\u0443\u0436\u043a\u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u043a \u043e\u0441\u043e\u0431\u044b\u043c \u0442\u043e\u0447\u043a\u0430\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u043c \u043d\u0435 \u043a \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u0435, \u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/da4\/f9b\/220\/da4f9b2201d3fa1eabad2d9aa84d2508.png\" width=\"640\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/da4\/f9b\/220\/da4f9b2201d3fa1eabad2d9aa84d2508.png\"\/><\/figure>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0434\u0430\u0447\u0430 &#8212; \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0448\u0430\u0433\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0434\u0432\u0438\u0433. \u0421\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431: \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0443\u0433\u043e\u043b\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u043a\u0440\u0430\u044e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u0438. \u0421\u0434\u0432\u0438\u0433 \u0440\u0430\u0432\u0435\u043d \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0448\u0430\u0433\u043e\u0432 \u0441 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u043f\u044f\u0442\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u0438 \u0434\u043e \u044d\u0442\u043e\u0439 \u0432\u044b\u0435\u043c\u043a\u0438. \u0418 \u0441\u0434\u0432\u0438\u0433 \u0434\u043b\u044f \u043e\u0431\u043e\u0438\u0445 \u043e\u0441\u043e\u0431\u044b\u0445 \u043c\u0435\u0441\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c, \u0442\u043e \u0435\u0441\u0442\u044c, \u0434\u043b\u044f \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0439 \u043a\u0440\u0443\u0436\u043a\u0438 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435.<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442:<\/p>\n<pre><code class=\"javascript\">  \/\/ \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043a\u0440\u0443\u0436\u043a\u0438   if(n == 3)   {     \/\/ \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c (\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0431\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u0434\u0432\u0438\u0433\u0430)     if(p2[0] > 5)      {       \/\/ \u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043e\u0441\u043e\u0431\u043e\u0439 \u0442\u043e\u0447\u043a\u0438       let k = p2[2];   \/\/ \u0438\u0449\u0435\u043c \u0448\u0430\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0434\u0451\u0442 \u043f\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e 11       k = c2.indexOf(11, k)   \/\/ \u0430 \u0437\u0430 \u043d\u0438\u043c \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0434\u0442\u0438 \u0448\u0430\u0433 8       while(k >= 0 &amp;&amp; c2[k + 1] != 8) {k = c2.indexOf(11, k + 1);}   \/\/ \u0438 \u0441\u0434\u0432\u0438\u0433\u0430\u0435\u043c \u0442\u043e\u0447\u043a\u0438       p2[3] -= (p2[4] - k);       p2[4] = k;     }   } <\/code><\/pre>\n<p>\u0418 \u0432\u0441\u0451 \u044d\u0442\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e!<\/p>\n<p>Upd: \u0412\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0449\u0438\u043d\u044b.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c.<\/p>\n<p>\u041c\u043e\u0437\u0430\u0438\u043a\u0430 \u0438\u0437 \u0433\u0440\u0443\u043f\u043f \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/428\/3ec\/b99\/4283ecb99c3798340698242075030a7c.png\" width=\"1500\" height=\"904\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/428\/3ec\/b99\/4283ecb99c3798340698242075030a7c.png\"\/><\/figure>\n<p>\u0421\u0440\u043e\u043a \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043a\u043e\u043d\u0435\u0446 \u0433\u043e\u0434\u0430, \u0432\u0435\u0434\u044c \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0433\u043e\u0434 \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435\u043c. \u041f\u0440\u043e \u043f\u0440\u0438\u0437\u0440\u0430\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u044e. \u0423\u043a\u0430\u0436\u0443 \u0441\u0445\u0435\u043c\u0443 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f, \u0442\u0430\u043c \u0432\u0441\u0451 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0443\u0441\u0442\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u043e\u0439. \u0415\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438 \u0438 \u043c\u0430\u043b\u044b\u0435 \u0433\u0440\u0430\u043d\u0438 \u0443\u0441\u0440\u0435\u0434\u043d\u0438\u0442\u044c, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0437\u0440\u0430\u043a\u0430. \u0415\u0441\u043b\u0438 \u0433\u0440\u0430\u043d\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437\u043e\u0433\u043d\u0443\u0442\u044b\u043c\u0438, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043b\u0438\u0442\u043a\u0430 \u043f\u0440\u0438\u0437\u0440\u0430\u043a \u0438 \u0438\u043d\u0430\u0447\u0435 \u0447\u0435\u043c \u0430\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u0438\u0437 \u043d\u0435\u0433\u043e \u0443\u0436\u0435 \u043d\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c.<\/p>\n<p>\u0412\u043e\u0442 \u0441\u0445\u0435\u043c\u0430 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f: <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c30\/58b\/de8\/c3058bde85455c542da2eb2c9c008ed8.png\" width=\"157\" height=\"150\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c30\/58b\/de8\/c3058bde85455c542da2eb2c9c008ed8.png\"\/><\/figure>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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:\/\/habr.com\/ru\/articles\/757132\/\"> https:\/\/habr.com\/ru\/articles\/757132\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041d\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u043c \u00ab\u044d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u00bb \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a \u00ab\u043e\u0434\u0438\u043d \u043a\u0430\u043c\u0435\u043d\u044c\u00bb. \u041e\u0434\u0438\u043d &#8212; \u00abein\u00bb, \u043a\u0430\u043c\u0435\u043d\u044c &#8212; \u00abStain\u00bb. \u0412\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u0434 \u044d\u0442\u043e\u0439 \u0444\u0430\u043c\u0438\u043b\u0438\u0435\u0439 \u0436\u0438\u043b \u043e\u0434\u0438\u043d \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0438 \u0437\u0432\u0430\u043b\u0438 \u0435\u0433\u043e &#8230; \u041d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0447\u044c \u043d\u0435 \u043e \u043d\u0451\u043c. \u0420\u0435\u0447\u044c \u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u043e \u043f\u043e\u0438\u0441\u043a\u0443 \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0438, \u0442\u0430\u043a\u043e\u0439 \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u0437 \u043d\u0435\u0451 \u043c\u043e\u0437\u0430\u0438\u043a\u0430 \u0431\u044b\u043b\u0430 \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439. \u00ab\u041e\u0434\u0438\u043d \u043a\u0430\u043c\u0435\u043d\u044c\u00bb &#8212; \u044d\u0442\u043e \u043f\u0440\u043e \u043f\u043b\u0438\u0442\u043a\u0443. \u0412 \u043c\u043e\u0437\u0430\u0438\u043a\u0435 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430 \u0442\u0430\u043a\u0438\u0445 \u043f\u043b\u0438\u0442\u043e\u043a \u0434\u0432\u0435, \u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443. \u041d\u0435 \u0432\u0434\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9_%D0%BF%D0%BB%D0%B8%D1%82%D0%BA%D0%B8\" rel=\"noopener noreferrer nofollow\">\u0437\u0430\u0434\u0430\u0447\u0430 \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0438<\/a> \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 (2023) \u0440\u0435\u0448\u0435\u043d\u0430. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u043c\u043e\u0437\u0430\u0438\u043a\u0438.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u00ab\u0448\u043b\u044f\u043f\u0430 \u044d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430\u00bb &#8212; \u043f\u043b\u0438\u0442\u043a\u0430, \u043f\u043e\u0445\u043e\u0436\u0430\u044f \u043d\u0430 \u0448\u043b\u044f\u043f\u0443. \u0418\u043b\u0438, \u043f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u043d\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0443. \u0418\u0437 \u043d\u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u043d\u0443\u044e \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443. \u0422\u043e\u043b\u044c\u043a\u043e, \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0430\u043c\u0438 \u0448\u043b\u044f\u043f\u044b, \u0442\u0430\u043a \u0438 \u0438\u0445 \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0421\u0447\u0438\u0442\u0430\u0442\u044c \u043b\u0438 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u043e\u0439? \u041c\u043e\u0436\u043d\u043e \u0438 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0431\u044b\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u043f\u043b\u0438\u0442\u043a\u0430 \u00ab\u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0430\u00bb. \u0418\u0437 \u043d\u0435\u0451 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443, \u043f\u043e \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c. \u042d\u0442\u0438 \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u043f\u043b\u0438\u0442\u043e\u043a \u043c\u043e\u0433\u0443\u0442, \u043f\u043b\u0430\u0432\u043d\u043e \u043c\u0435\u043d\u044f\u044f \u0444\u043e\u0440\u043c\u0443, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430, \u043c\u0435\u043d\u044f\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0433\u0440\u0430\u043d\u0435\u0439 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u0415\u0449\u0451 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043f\u043b\u0438\u0442\u043e\u043a. \u0414\u0430\u043b\u044c\u0448\u0435 \u0431\u043e\u043b\u044c\u0448\u0435. \u0423 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u0438\u043d\u0430 \u0433\u0440\u0430\u043d\u0435\u0439 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430.<\/p>\n<p>\u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0442\u0430\u043a\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0448\u043b\u044f\u043f\u044b \u0438 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0438, \u043f\u0440\u0438 \u043e\u0431\u043c\u0435\u043d\u0435 \u0444\u043e\u0440\u043c\u043e\u0439 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u0438\u043d\u0430 \u0433\u0440\u0430\u043d\u0435\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438\u0437 \u043f\u043b\u0438\u0442\u043e\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u044b. \u0422\u043e \u0435\u0441\u0442\u044c, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u043d\u0435\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043b\u0438\u0442\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0431\u0435\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041f\u043b\u0438\u0442\u043a\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0433\u0440\u0430\u043d\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0442\u0430\u043a, \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0430 \u00abSpectre\u00bb (\u043f\u0440\u0438\u0437\u0440\u0430\u043a). \u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0435\u0448\u0435\u043d\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/articles\/359244\/\" rel=\"noopener noreferrer nofollow\">\u0422\u0440\u0438\u0434\u0446\u0430\u0442\u044c \u0448\u0435\u0441\u0442\u044c \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043a\u0440\u0430\u0441\u043e\u0442\u044b<\/a>\u00bb \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043a\u0430\u043a \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab<a href=\"https:\/\/habr.com\/ru\/articles\/597261\/\" rel=\"noopener noreferrer nofollow\">\u0414\u0432\u0430 \u0432\u0438\u0434\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439<\/a>\u00bb \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0448\u0443 \u043e \u0442\u043e\u043c \u043a\u0430\u043a \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043d\u043e\u0432\u044b\u0435 \u043c\u043e\u0437\u0430\u0438\u043a\u0438. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u044f \u00ab36, 90, 120 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043a\u0440\u0430\u0441\u043e\u0442\u044b\u00bb.<\/p>\n<p>\u041d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443. \u0421\u0435\u0442\u043a\u0438 \u0438\u0437 \u0440\u0430\u0432\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u0440\u0430\u0432\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u0438\u0445 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0435\u0442\u043a\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0441 \u043d\u0435\u0440\u0430\u0432\u043d\u044b\u043c\u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u043e\u0434\u043d\u0443 \u0442\u043e\u0447\u043a\u0443 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0432 , \u0432\u0442\u043e\u0440\u0443\u044e \u0432 , \u0442\u043e \u0442\u0440\u0435\u0442\u044c\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u043a\u0430\u043a . \u0427\u0435\u0442\u0432\u0451\u0440\u0442\u0430\u044f \u043a\u0430\u043a .<\/p>\n<p>\u0423 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0435\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439, \u0434\u0430\u043b\u044c\u043d\u044f\u044f \u0442\u043e\u0447\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435 . \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a \u0447\u0438\u0441\u043b\u0430.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0440\u0435\u0431\u0440\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u0446\u0435\u043d\u0442\u0440\u0430, \u0442\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e  \u0438 \u0434\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e . \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432\u0441\u0435\u0433\u043e \u0448\u0435\u0441\u0442\u044c, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043a\u043e\u043c.<\/p>\n<p>\u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0440\u0435\u0431\u0440\u0430 \u0431\u044b\u043b\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0430\u044f.<\/p>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u044d\u0442\u0438\u0445 \u0441\u0435\u043c\u0438 \u0442\u043e\u0447\u0435\u043a \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0443\u0442 \u0432  \u0440\u0430\u0437 \u0438 \u0441\u0442\u0430\u043d\u0443\u0442:<\/p>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435\u043c  \u0434\u043b\u044f x \u0438  \u0434\u043b\u044f y.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442:<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0431\u0435\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u043e\u0439 \u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b \u0438\u0437 \u043d\u0443\u043b\u044f, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u043d\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0448\u0430\u0433\u043e\u0432 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u043c\u0430\u043b\u044b\u0445 \u0448\u0430\u0433\u043e\u0432. \u0422\u043e\u0433\u0434\u0430 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0437\u043d\u0430\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0448\u0430\u0433\u0430:<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430<\/p>\n<\/p>\n<p>\u2014 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u0438<\/p>\n<\/p>\n<p>\u2014 \u0434\u043b\u044f \u043c\u0430\u043b\u043e\u0433\u043e \u0448\u0430\u0433\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438  \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0443\u0433\u043b\u0430:<br \/> [2,0,0,0],[0,0,1,1],[1,3,0,0],[0,0,0,2],[-1,3,0,0],[0,0,-1,1],<br \/> [-2,0,0,0],[0,0,-1,-1],[-1,-3,0,0],[0,0,0,-2],[1,-3,0,0],[0,0,1,-1]<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0440\u0443\u0431\u0430\u0448\u043a\u0443.<\/p>\n<p>\u0424\u0438\u0433\u0443\u0440\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u043f\u0430\u0440 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0437\u0430\u043d\u0438\u043c\u0430\u044f \u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0412 \u043e\u0434\u043d\u043e\u043c \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0435 \u0434\u0432\u0435 \u043f\u0430\u0440\u044b \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0438 \u0432 \u0434\u0432\u0443\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u0440\u0435. \u0422\u0430\u043a\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u0442\u0440\u0430\u0444\u0430\u0440\u0435\u0442\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u043d\u0430\u0440\u0430\u0432\u043d\u0435, \u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438. \u0424\u0438\u0433\u0443\u0440\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u044f\u0442\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u043e\u0434\u0438\u043d \u0437\u0430\u043d\u044f\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0432 \u043e\u0434\u043d\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u043f\u0440\u0438\u043b\u0435\u0433\u0430\u044e\u0449\u0438\u0445 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u0435\u0449\u0451 \u0432 \u0442\u0440\u0451\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u0430\u0440\u044b.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u0443 \u0440\u0443\u0431\u0430\u0448\u043a\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0446\u0435\u043b\u044b\u0445 \u0442\u0440\u0438: \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0442 \u043d\u0438\u0437\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u043e\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u00ab\u043f\u0443\u0433\u043e\u0432\u0438\u0446\u00bb: \u043e\u0442 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0438\u043b\u0438 \u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0439. \u042f \u0432\u044b\u0431\u0440\u0430\u043b \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0439 \u043f\u0443\u0433\u043e\u0432\u0438\u0446\u044b. \u0410 \u043e\u0431\u0445\u043e\u0434 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0438\u0437\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0438, \u0438 \u0438\u0434\u0442\u0438 \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439.<\/p>\n<p>\u0428\u0430\u0433\u0438 \u043f\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0431\u0443\u0434\u0443\u0442<br \/> [0,0,1,1],[0,0,1,-1],[1,3,0,0],[2,0,0,0],[0,0,0,2],[0,0,-1,1],[0,0,-1,1],<br \/> [0,0,-1,-1],[-1,3,0,0],[-2,0,0,0],[0,0,0,-2],[0,0,1,-1],[-1,-3,0,0],[1,-3,0,0]<\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442:<br \/> (0,0,-1,-3),(0,0,0,-2),(0,0,1,-3),(1,3,1,-3),(3,3,1,-3),(3,3,1,-1),(3,3,0,0),<br \/> (3,3,-1,1),(3,3,-2,0),(2,6,-2,0),(0,6,-2,0),(0,6,-2,-2),(0,6,-1,-3),(-1,3,-1,-3)<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/p5js.org\" rel=\"noopener noreferrer nofollow\">p5.js<\/a>, \u044d\u0442\u043e js-\u0432\u0435\u0440\u0441\u0438\u044f Processing. \u0415\u0441\u043b\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0439, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043a\u043b\u0430\u0441\u0441\u0443 Math, \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e \u043c\u0435\u043b\u043e\u0447\u0438 \u2014 \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e \u043c\u043e\u0437\u0430\u0438\u043a\u0443 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0438 \u0431\u0435\u0437 \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041d\u043e \u0441 \u043d\u0435\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <a href=\"https:\/\/editor.p5js.org\" rel=\"noopener noreferrer nofollow\">https:\/\/editor.p5js.org<\/a> \u0438 \u0432 \u043e\u043a\u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0438\u0434\u0438\u043c \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u043a\u0430\u0434\u0440\u043e\u0432\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0444\u0438\u0433\u0443\u0440.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u043e\u0442 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c.<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\">\/\/ \u041e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043c\u043e\u0437\u0430\u0438\u043a\u0438, yurixi, https:\/\/habr.com\/ru\/articles\/757132\/ \/\/  \/\/ \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043b\u0438\u043d\u0438\u0438 line(x1,y1,x2,y2); \/\/ \u041d\u043e \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u044b\u0435 \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0441\u0442\u043e\u0438\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \/\/ fill(r,g,b); stroke(r,g,b); \/\/ \u0446\u0432\u0435\u0442 \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u0438 \u043b\u0438\u043d\u0438\u0438 \/\/ beginShape(); vertex(x1, y1); vertex(x2, y2); vertex(x3, y3); endShape(CLOSE); \/\/ \u0428\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 strokeWeight(h);  let kf, fc, zm, xs, ys; let color1, color2;  \/\/ \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 function setup() {   createCanvas(640, 480);   \/\/ \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b   kf = [sqrt(3)\/2, 1\/2, sqrt(3)\/2, 1\/2, 0, 0, 0, 0];    \/\/ \u0444\u043e\u0440\u043c\u0430 \u043f\u043b\u0438\u0442\u043a\u0438   fc = [[0, 0, -1, -3], [0, 0, 0, -2], [0, 0, 1, -3], [1, 3, 1, -3], [3, 3, 1, -3],           [3, 3, 1, -1], [3, 3, 0, 0], [3, 3, -1, 1], [3, 3, -2, 0], [2, 6, -2, 0],           [0, 6, -2, 0], [0, 6, -2, -2], [0, 6, -1, -3], [-1, 3, -1, -3]];      \/\/ \u0446\u0432\u0435\u0442\u0430 \u043c\u043e\u0436\u043d\u043e  \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u043d\u0435 \u0432 rgb   color1 = color('hsla(220,100%,75%,0.5)');    color2 = color('hsla(200,100%,75%,0.5)');       \/\/ \u043c\u0430\u0441\u0448\u0442\u0430\u0431   zm = 30;      \/\/ \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u0430 \u043e\u0442\u0441\u0447\u0451\u0442\u0430   xs = 320;   ys = 240; }  \/\/ \u041f\u0435\u0440\u0435\u0441\u0447\u0451\u0442 \u0438\u0437 \u0446\u0435\u043b\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u0432 \u044d\u043a\u0440\u0430\u043d\u043d\u0443\u044e, \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f function place(p) {   return createVector(     xs + zm * (kf[0] * p[0] + kf[2] * p[2] + kf[4] * p[1] + kf[6] * p[3]),     ys - zm * (kf[1] * p[1] + kf[3] * p[3] - kf[5] * p[0] - kf[7] * p[2])   ); }  \/\/ \u0440\u0438\u0441\u0443\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443 function draw_shape() {   liner(); \/\/ \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u043b\u0438\u043d\u0438\u0438   strokeWeight(2);   stroke(50)   fill(color1);   beginShape();   for (i in fc) {     let c = place(fc[i]);     vertex(c.x, c.y);   }   endShape(CLOSE);   point(place([0, 0, 0, 2]));   point(place([0, 0, 0, 0])); }  \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043a\u0430\u0434\u0440\u0430 function draw() {   \/\/ \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u043a\u0430\u043d\u0432\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430   background(240); \/\/ \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 - \u0446\u0432\u0435\u0442 \u0432 \u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u043e\u0433\u043e   draw_shape()    \/\/ \u043a\u0430\u0434\u0440 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0438\u043a\u043b \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f   \/\/noLoop();      \/\/ \u041d\u043e \u0435\u0441\u043b\u0438 \u0446\u0438\u043a\u043b \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u0442\u043e \u0444\u0438\u0433\u0443\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f    \/\/ \u0438\u0437 \u0448\u043b\u044f\u043f\u044b \u0432 \u0447\u0435\u0440\u0435\u043f\u0430\u0445\u0443 \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e,    \/\/ \u0447\u0435\u0440\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442   let k3 = sqrt(3) \/ 2,     k2 = 1 \/ 2,     k1 = (1 - cos(frameCount \/ 60 * PI)) \/ 2;   \/\/ \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438   k1 = (1 - cos(abs(k1 - 0.5) * PI)) \/ 2 * Math.sign(k1 - 0.5) + 0.5;   \/\/ \u0438 \u043d\u0430 \u043a\u0440\u0430\u0439\u043d\u0438\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445   k1 = ((1 - cos(k1 * PI)) \/ 2 + k1) \/ 2;   kf = [     (1 - k1) * k3 + k1 * k2,      (1 - k1) * k2 + k1 * k3 \/ 3,      (1 - k1) * k3 + k1 * 3 \/ 2,      (1 - k1) * k2 + k1 * k3,      0, 0, 0, 0     ]  }  \/\/ \u0440\u0430\u0437\u043b\u0438\u043d\u043e\u0432\u043a\u0430 function liner() {   \/\/ \u0437\u0434\u0435\u0441\u044c \u0446\u0432\u0435\u0442 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 rgb-\u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0438 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c   stroke(color(180, 180, 180, 60));   \/\/ \u0440\u0435\u0436\u0438\u043c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0435\u0451 \u0437\u0430\u043b\u0438\u0432\u043a\u0435   noFill();   \/\/ \u0434\u0430\u043d\u043d\u044b\u0435 \u0448\u0435\u0441\u0442\u0438 \u0447\u0435\u0442\u044b\u0440\u0451\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a   fcn = [          [[0, 0, 0, 0], [2, 0, 0, 0], [2, 0, 0, 2], [2, 0, -1, 3], [1, -3, -1, 3]],          [[0, 0, 0, 0], [1, 3, 0, 0], [1, 3, -1, 1], [1, 3, -2, 0], [2, 0, -2, 0]],          [[0, 0, 0, 0], [-1, 3, 0, 0], [-1, 3, -1, -1], [-1, 3, -1, -3], [1, 3, -1, -3]],          [[0, 0, 0, 0], [-2, 0, 0, 0], [-2, 0, 0, -2], [-2, 0, 1, -3], [-1, 3, 1, -3]],          [[0, 0, 0, 0], [-1, -3, 0, 0], [-1, -3, 1, -1], [-1, -3, 2, 0], [-2, 0, 2, 0]],          [[0, 0, 0, 0], [1, -3, 0, 0], [1, -3, 1, 1], [1, -3, 1, 3], [-1, -3, 1, 3]],         ];    \/\/ \u0441\u0434\u0432\u0438\u0433\u0438 \u0434\u043b\u044f \u0448\u0435\u0441\u0442\u0438\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432   fs = [[0, 0], [4, 0], [2, 6], [-2, 6], [-4, 0], [-2, -6], [2, -6], [8, 0], [6, 6], [6, -6]]   for (let jf in fs) {     let fs2 = fs[jf];     for (let j in fcn) {       let fcm = fcn[j];       beginShape();       for (let i in fcm) {         let fci = fcm[i];         fci = [fci[0] + fs2[0] - 2, fci[1] + fs2[1], fci[2], fci[3]];         c = place(fci);         vertex(c.x, c.y);       }       endShape(CLOSE);     }   } } <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c,  \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u044d\u0442\u0430 \u0440\u0443\u0431\u0430\u0448\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0432\u044b\u0448\u0435.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0438\u0441\u0443\u043d\u043e\u043a, \u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0437\u0430\u0438\u043a. \u0420\u0430\u0434\u0438 \u043a\u0440\u0430\u0441\u043e\u0442\u044b.<\/p>\n<p>\u041f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443 \u0441 \u043c\u043e\u0437\u0430\u0438\u043a\u043e\u0439 \u041f\u0435\u043d\u0440\u043e\u0443\u0437\u0430 \u043c\u043e\u0433\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0444\u0438\u0433\u0443\u0440 \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0431\u043e\u0440 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u043b\u0438\u0442\u043e\u043a, \u0430 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u043b\u0438\u0442\u043a\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u043b\u0438\u0442\u043e\u043a \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043e\u0442 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u043b\u0438\u0442\u043e\u043a. \u041a\u0440\u0430\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043a\u0440\u0430\u044f\u043c\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u0438 \u043f\u043b\u0438\u0442\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f \u0443 \u0441\u043e\u0441\u0435\u0434\u0435\u0439 \u0438\u0433\u0440\u0430\u044e\u0442 \u0440\u043e\u043b\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u0443\u0448\u0435\u043a \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u0435 \u043f\u0430\u0437\u043b\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0437\u0430\u0438\u043a\u0438 \u043d\u0430\u0434\u043e<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-353258","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/353258","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=353258"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/353258\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=353258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=353258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=353258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}