{"id":328556,"date":"2022-01-25T15:00:23","date_gmt":"2022-01-25T15:00:23","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=328556"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=328556","title":{"rendered":"<span>3D \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438. \u0427\u0430\u0441\u0442\u044c 4: \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u043a\u0430<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e7f\/7ab\/bb6\/e7f7abbb69560e098e8989b5288ff06b.png\" data-width=\"640\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u043d\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0435 \u0447\u0430\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u0432 \u043a\u0430\u043c\u0435\u0440\u0443 \u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u043a\u043e\u0434 \u0441 \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u043e\u0439 \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/post\/599403\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u0431\u043e\u043d\u0443\u0441\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 ( <em>25.01.22 \u0432 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u044f \u0432\u043d\u0435\u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u0434 \u0438 \u0442\u0435\u043a\u0441\u0442, \u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438 \u043a\u043e\u0434 \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0430\u0432\u043a\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/em> ). \u0412\u0441\u044e \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443 \u043c\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u0435\u0440\u0448\u0438\u043d ( \u043c\u0430\u0441\u0441\u0438\u0432 <code>vertices<\/code> ) \u0438 \u0440\u0435\u0431\u0435\u0440 ( \u043c\u0430\u0441\u0441\u0438\u0432 <code>edges<\/code> ). \u0423 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u043c\u0438\u043d\u0443\u0441, \u0443 \u043d\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435 \u0443 \u0444\u0438\u0433\u0443\u0440\u044b \u043d\u0435\u0442\u0443 \u0433\u0440\u0430\u043d\u0435\u0439, \u0442.\u0435., \u0443 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043d\u0435\u044f\u0441\u043d\u043e \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0431\u0440\u0430 ( \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0438\u0438 ) \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0432 \u043a\u043e\u0434\u0435 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u044d\u0442\u043e \u0433\u0440\u0430\u043d\u044c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b\" title=\"\u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b\" height=\"444\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/233\/750\/4c9\/2337504c958ddb931a44c92696ddc2d9.png\" data-width=\"602\"\/><figcaption>\u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b<\/figcaption><\/figure>\n<p>\u041f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u044d\u0442\u043e <code>0, 1, 2, 3<\/code>, \u043b\u0438\u0446\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u044c: <code>3, 2, 6, 7<\/code> \u0438 \u0442.\u0434. \u0422.\u0435. \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043c\u044b \u044d\u0442\u0438 \u0433\u0440\u0430\u043d\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u043c, \u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0443 \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0442.\u043a. \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u0444\u0438\u0433\u0443\u0440\u0443 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 ( \u0440\u0435\u0431\u0440\u0430 ). \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u043d\u044b \u0433\u0440\u0430\u043d\u0438, \u0432\u0435\u0434\u044c \u0438 \u0442\u0430\u043a \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u0412\u043e\u043f\u0440\u043e\u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438 \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0447\u0438\u043d, \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<p>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0433\u0440\u0430\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u0446\u0432\u0435\u0442, \u043e\u0441\u0432\u0435\u0449\u0430\u0442\u044c \u0435\u0451, \u0438\u043b\u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b ( \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u043b\u0435\u0434. \u0447\u0430\u0441\u0442\u044f\u0445 ). \u0412\u0435\u0434\u044c \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0446\u0432\u0435\u0442 \u043b\u0438\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0438\u0441\u0443\u0435\u043c. \u0410 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u0442\u044c, \u0443 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0432 \u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u043c.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0433\u0440\u0430\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0431\u044b\u043b\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430 ( \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 ).<\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u0445, \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437 \u043b\u0438\u043d\u0438\u0439 \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430, \u0430 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0433\u0440\u0430\u043d\u0435\u0439 ( \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 ), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u044f\u0442 \u0440\u044f\u0434\u043e\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0444\u0438\u0433\u0443\u0440\u0443. \u0423\u043c\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0432 \u043a\u043e\u0434\u0435 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e ( \u0438\u0445 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b ), \u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0445 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u0437 3D-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u043d\u044b \u0438\u0437 \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 3D-\u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0448\u0443 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0438\u043c\u0435\u043b\u0430 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430. \u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443. \u0412\u0435\u0434\u044c \u043c\u044b \u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0441\u0444\u0435\u0440\u044b, \u0438\u043b\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u2026 \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443, \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 6 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u043e\u0431\u0449\u0438\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435, \u0442\u0430\u043c \u0433\u0434\u0435 \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u044b \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u042d\u0442\u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0435\u0449\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043c\u0438. \u041d\u043e \u0432 3D \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u043d\u0430\u043c \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b ( \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 ), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u0432 \u043c\u043e\u0434\u0435\u043b\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043b\u044e\u0441 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u0443 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u043d\u0430\u043c \u043f\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u0438 ( \u0443\u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u044d\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 ) \u0438 \u043f\u0440\u043e\u0449\u0435 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c ( \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 ). \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0421\u043b\u0435\u0432\u0430 - \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u0441\u043f\u0440\u0430\u0432\u0430 - \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439.\" title=\"\u0421\u043b\u0435\u0432\u0430 - \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u0441\u043f\u0440\u0430\u0432\u0430 - \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439.\" height=\"160\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/43e\/767\/36e\/43e76736e6c92f6d31d831b6760345a0.png\" data-width=\"503\"\/><figcaption>\u0421\u043b\u0435\u0432\u0430 &#8212; \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u0441\u043f\u0440\u0430\u0432\u0430 &#8212; \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439.<\/figcaption><\/figure>\n<p>\u0418\u0437 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c 2 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438. \u0421 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438, \u043d\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0441\u044f \u043a\u043e\u0434\u0435 \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f.<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u0432\u0430\u044e\u0442\u0441\u044f, \u0432\u0441\u0435 \u0442\u0435 \u0436\u0435 8 \u0448\u0442\u0443\u043a, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u0438 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430, \u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043b\u0438\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0432 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0430\u044f \u043d\u0430\u043c \u0444\u0438\u0433\u0443\u0440\u0430. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439-\u0436\u0435 \u043a\u0430\u043a \u0438 \u0431\u044b\u043b \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>edges<\/code>, \u0442.\u0435. \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432\u0435\u0440\u0448\u0438\u043d, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u043d\u0435 \u043f\u0430\u0440\u044b \u0432\u0435\u0440\u0448\u0438\u043d ( \u043f\u0430\u0440\u0430 \u0442.\u043a. \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0435\u0446 ), \u0430 \u043f\u043e 3 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0438\u0441\u0430\u0442\u044c 1 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c 3 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u041c\u044b \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438 \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 6 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0430 \u0432\u043e\u0442 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432 2 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0442.\u043a. \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 ( \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 ) \u043d\u0443\u0436\u043d\u043e 2 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043c 1 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043b\u0438\u043d\u0438\u0439 ( \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 ), \u0430 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 ( \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0435\u043c ). \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0438 \u0442\u0430\u043c \u0438 \u0442\u0430\u043c \u0443 \u043d\u0430\u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a ( \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0430\u043d\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b ). \u041d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0443 \u043d\u0430\u0441 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u043b\u0438\u043d\u0438\u044f \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0442.\u043a. \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e 2 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043a \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u042d\u0442\u0430 \u043b\u0438\u043d\u0438\u044f \u0432\u0438\u0434\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044f\u043c\u0438. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0432 \u0446\u0432\u0435\u0442, \u0430 \u043f\u043e\u0442\u043e\u043c \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043c \u043b\u0438\u043d\u0438\u0438, \u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e, \u0438 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u0431\u0435\u0437 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0442\u044b\u043a\u043e\u0432:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u0421\u0432\u0435\u0440\u0445\u0443 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u043b\u0438\u043d\u0438\u0439, \u0441\u043d\u0438\u0437\u0443 - \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.\" title=\"\u0421\u0432\u0435\u0440\u0445\u0443 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u043b\u0438\u043d\u0438\u0439, \u0441\u043d\u0438\u0437\u0443 - \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.\" height=\"395\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/61e\/709\/ee2\/61e709ee2c6cfd8116f4248829179466.png\" data-width=\"539\"\/><figcaption>\u0421\u0432\u0435\u0440\u0445\u0443 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u043b\u0438\u043d\u0438\u0439, \u0441\u043d\u0438\u0437\u0443 &#8212; \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.<\/figcaption><\/figure>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u2013 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a \u0438 \u0435\u0441\u0442\u044c, \u0442.\u043a. \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u0442\u0443\u0442 \u043e\u043d\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442. \u041d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u044b\u0448\u0435. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0434\u043d\u0438 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0431\u0443\u0434\u0443\u0442 \u0434\u0440\u0443\u0433\u0438\u0435, \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u0433\u0434\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043b\u0443\u0447\u0448\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0438 \u0447\u0442\u043e\u0431\u044b \u0432 \u043a\u043e\u0434\u0435 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0432\u0441\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u043c\u044b \u0432\u0441\u0435 \u0438\u0445 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0445\u043e\u0442\u044c \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u0430\u043c\u044b\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <code>edges<\/code> \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 <code>indices<\/code>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043f\u043e 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430:<\/p>\n<pre><code class=\"javascript\">const indices = [ \u00a0\u00a0\u00a0\u00a0[0, 1, 2], \/\/ 0 \u00a0\u00a0\u00a0\u00a0[0, 2, 3], \/\/ 1     [4, 6, 5], \/\/ 2 \u00a0\u00a0\u00a0\u00a0[4, 7, 6], \/\/ 3     [0, 5, 1], \/\/ 4 \u00a0\u00a0\u00a0\u00a0[0, 4, 5], \/\/ 5     [1, 5, 2], \/\/ 6 \u00a0\u00a0\u00a0\u00a0[6, 2, 5], \/\/ 7     [3, 2, 6], \/\/ 8 \u00a0\u00a0\u00a0\u00a0[3, 6, 7], \/\/ 9     [3, 4, 0], \/\/ 10 \u00a0\u00a0\u00a0\u00a0[4, 3, 7], \/\/ 11 ];<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 ( \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 3\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 ) \u2013 \u044d\u0442\u043e 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0435\u0440\u0448\u0438\u043d ( <code>vertices<\/code> ) \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u2013 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0438\u0445 \u0443 \u043d\u0435\u0435 6, \u043d\u043e \u043e\u043d\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435, \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e 2 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043b\u0438\u043d\u0438\u0439, \u0442.\u043a. \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0430\u0441\u0441\u0438\u0432 <code>edges<\/code>, \u0430 \u0441\u0440\u0430\u0437\u0443 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0443 ( \u043c\u0430\u0441\u0441\u0438\u0432 <code>indices<\/code> ).<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0446\u0438\u043a\u043b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <code>edges<\/code>:<\/p>\n<pre><code class=\"javascript\">\/\/for (let i = 0, l = edges.length; i &lt; l; i++) { \/\/\u00a0 \u0432\u0435\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0434 \u0446\u0438\u043a\u043b\u0430 \u0442\u043e\u0436\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c... \/\/}<\/code><\/pre>\n<p> \u0418 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 <code>indices<\/code>: <\/p>\n<pre><code class=\"javascript\">for (let i = 0, l = indices.length; i &lt; l; i++) { }<\/code><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 <code>indices[i]<\/code> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0441 3\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u044d\u0442\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>sceneVertices<\/code> ( \u0442.\u043a. \u043c\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0435\u0440\u0448\u0438\u043d \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>indices<\/code> ). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0448\u0438\u043d: <\/p>\n<pre><code class=\"javascript\">\/\/ \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 const e = indices[i]; \/\/ \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b ( \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Vector ) let v1 = sceneVertices[e[0]]; let v2 = sceneVertices[e[1]]; let v3 = sceneVertices[e[2]];<\/code><\/pre>\n<p> \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u2014 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 3\u0445 \u043b\u0438\u043d\u0438\u0439 \u043f\u043e 3\u043c \u0442\u043e\u0447\u043a\u0430\u043c: <\/p>\n<pre><code class=\"javascript\">\/\/ \u041b\u0438\u043d\u0438\u044f \u043e\u0442 v1 \u043a v2 drawer.drawLine( \u00a0\u00a0v1.x, \u00a0\u00a0v1.y, \u00a0\u00a0v2.x, \u00a0\u00a0v2.y, \u00a0\u00a00, 0, 255 ); \/\/ \u041b\u0438\u043d\u0438\u044f \u043e\u0442 v2 \u043a v3 drawer.drawLine( \u00a0\u00a0v2.x, \u00a0\u00a0v2.y, \u00a0\u00a0v3.x, \u00a0\u00a0v3.y, \u00a0\u00a00, 0, 255 ); \/\/ \u041b\u0438\u043d\u0438\u044f \u043e\u0442 v1 \u043a v3 drawer.drawLine( \u00a0\u00a0v1.x, \u00a0\u00a0v1.y, \u00a0\u00a0v3.x, \u00a0\u00a0v3.y, \u00a0\u00a00, 0, 255 );<\/code><\/pre>\n<p>\u0412 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 3 \u0442\u043e\u0447\u043a\u0438 \u0431\u044b\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. <\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443 \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0435, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0435\u0440\u043d\u0435\u043c \u0435\u0439 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 <code>Y<\/code>, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438 \u043f\u043e <code>X<\/code> ( \u0445\u043e\u0442\u044c \u0442\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 0 \u0441\u0442\u043e\u0438\u0442 \u0434\u043b\u044f <code>X<\/code> ):<\/p>\n<pre><code class=\"javascript\">matrix = Matrix.multiply(   Matrix.getRotationY(angle += 1),   matrix );<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442\u043e \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u041c\u043e\u0434\u0435\u043b\u044c \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432\" title=\"\u041c\u043e\u0434\u0435\u043b\u044c \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432\" height=\"608\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/60c\/b13\/7ad\/60cb137ade962898d0c47d1a11953f99.png\" data-width=\"811\"\/><figcaption>\u041c\u043e\u0434\u0435\u043b\u044c \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432<\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043e\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0430\u043d\u0435\u0435 \u044d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0432 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0440\u044f\u0434\u043e\u043c \u0441\u0442\u043e\u044f\u0449\u0438\u0445 2 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0422\u0430\u043a\u043e\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u043c\u044b \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0443\u0431\u0435\u0440\u0435\u043c, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445. <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0435 \u0440\u0430\u0437 \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0423 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u0438 \u0432\u0441\u0435\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u0432\u0438\u0434\u043d\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u0435\u0451 \u0433\u0440\u0430\u043d\u0438 ( \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043b\u0438\u043d\u0438\u0438 \u0440\u0435\u0431\u0435\u0440, \u0442.\u043a. \u0438\u0445 \u0440\u0438\u0441\u0443\u0435\u043c ), \u0440\u0430\u043d\u0435\u0435 \u044d\u0442\u043e \u043d\u0430\u0441 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e, \u0442.\u043a. \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0443 \u0438 \u0442.\u0434.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u043a\u0440\u044b\u0442\u044c \u0442\u0435 \u0433\u0440\u0430\u043d\u0438 \u0444\u0438\u0433\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u044b. \u042d\u0442\u043e \u0434\u0430\u0441\u0442 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 ( \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0439 ), \u0442\u0430\u043a\u0436\u0435 \u043c\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442.\u043a. \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 \u0442\u0435\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0441\u043a\u0440\u044b\u0442\u044c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u043c \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0421\u0435\u0439\u0447\u0430\u0441 \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438, \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0441 2\u043c\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u043b\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u0431\u0443\u043c\u0430\u0433\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0435\u0433\u043e \u043f\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0442\u043e \u043e\u0434\u043d\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439. \u0412 \u0436\u0438\u0437\u043d\u0438 \u043c\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432\u0438\u0434\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u043e\u043d \u043a \u043d\u0430\u043c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442, \u043d\u043e \u0432 3D \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u0438\u0434\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0430. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0439? \u0412\u043e\u043e\u0431\u0449\u0435 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u0437\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u0438 \u0442\u0443\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u0430 \u0432\u044b\u0431\u043e\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u0430\u043c\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0435 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u0438\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0432 \u043a\u043e\u0434\u0435, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u044b 3\u0445 \u0432\u0435\u0440\u0448\u0438\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430 \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c. \u041d\u043e\u0440\u043c\u0430\u043b\u044c \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0443 \u0438 \u043e\u0442\u043a\u0443\u0434\u0430 \u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c, \u0442\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0446\u0435\u0432\u043e\u0439:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" alt=\"\u041d\u043e\u0440\u043c\u0430\u043b\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0433\u0440\u0430\u043d\u0438.\" title=\"\u041d\u043e\u0440\u043c\u0430\u043b\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0433\u0440\u0430\u043d\u0438.\" height=\"186\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e29\/629\/56d\/e2962956d6514e3a02312c1d80cb4e4e.png\" data-width=\"171\"\/><figcaption>\u041d\u043e\u0440\u043c\u0430\u043b\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0433\u0440\u0430\u043d\u0438.<\/figcaption><\/figure>\n<p>\u0421\u0438\u043d\u044f\u044f \u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u044b\u0448\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u0441\u0442\u043e\u0440\u043e\u043d \u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 2, \u0442\u043e \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 2, \u043d\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e 1 \u043d\u043e\u0440\u043c\u0430\u043b\u044c, \u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c ( \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c ) \u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0443 \u043d\u0430\u0441 3\u0445 \u0432\u0435\u0440\u0448\u0438\u043d \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0435\u0440\u0448\u0438\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0442\u043e \u0432 \u043a\u0430\u043a\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0431\u044b \u0442\u043e\u0447\u043a\u0438 <code>a, b, c<\/code> \u0434\u0430\u043b\u0438 \u0431\u044b \u043d\u0430\u043c \u043e\u0434\u043d\u0443 \u043d\u043e\u0440\u043c\u0430\u043b\u044c, \u0442\u043e <code>c, b, a<\/code> \u0434\u0430\u043b\u0438 \u0431\u044b \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u0443\u044e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u0421\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c <code>indices<\/code> \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e, \u0432\u0435\u0434\u044c \u0443 \u043d\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0438 \u0442\u0430\u043c \u0443\u0436\u0435 12 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u043e 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0434\u0435\u043b\u0430\u044e\u0442 3D \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u0437 \u043d\u0438\u0445, \u043e\u043d\u0438 \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e \u043d\u0438\u043c \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438. \u041d\u043e \u043f\u043e\u043a\u0430 \u043c\u044b \u0441 3D-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0435\u0449\u0435 \u043d\u0435 \u0443\u043c\u0435\u0435\u043c \u0447\u0442\u043e \u043b\u0438\u0431\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c, \u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0432\u0435\u0440\u0448\u0438\u043d \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>indices<\/code> \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u0442\u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0442\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0448\u0435 \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0442\u0430\u043a, \u0447\u0442\u043e \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0432 \u043d\u0435\u043c \u0434\u0430\u044e\u0442 \u043d\u0430\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0430\u043c\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u043d\u0430\u043c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043d\u043e\u0432\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f, \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u043b\u0438 \u0438\u0445 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 \u0431\u043e\u043d\u0443\u0441\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043a \u043a\u0430\u043c\u0435\u0440\u0435.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c. \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c 2 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u2014 \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 3\u0445 \u0442\u043e\u0447\u0435\u043a 2 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>substruct<\/code>, \u0432\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u0432\u044b\u0447\u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0443 \u0442\u043e\u0447\u043a\u0443 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0439, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u043e\u0434\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043a \u0434\u0440\u0443\u0433\u043e\u0439. \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043d\u0438\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f <code>v1, v2, v3<\/code> \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 <code>indices<\/code>:<\/p>\n<pre><code class=\"javascript\">let t1 = Vector.substruct(v1, v2); let t2 = Vector.substruct(v2, v3);<\/code><\/pre>\n<p>\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <code>t1<\/code> \u0438 <code>t2<\/code> \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043c \u0438\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043e\u0431\u043e\u0438\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c \u2014 \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u044e:<\/p>\n<pre><code class=\"javascript\">let normal = Vector.crossProduct(t1, t2).normalize();<\/code><\/pre>\n<p>\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c, \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u0435\u0441\u043b\u0438 \u0431\u044b \u044f \u043e\u0442\u043d\u0438\u043c\u0430\u043b <code>v2<\/code> \u0438 <code>v1<\/code> ( \u0432\u043e\u0442 \u0442\u0430\u043a: <code>let t1 = Vector.substruct(v2, v1);<\/code> ) \u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0431\u044b\u043b \u0431\u044b \u0443 \u043c\u0435\u043d\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u0438 \u044d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0434\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u0443\u0432\u0438\u0436\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b. \u0412\u043e\u043e\u0431\u0449\u0435 \u0442\u0443\u0442 \u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0442 \u043a\u0430\u043a\u0438\u0445 \u043e\u0442\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0432\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044f \u0442\u0430\u043a \u2014 \u043a\u0430\u043a \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435 \u0442\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u0444\u0438\u0433\u0443\u0440\u0430 \u043d\u0430\u0438\u0437\u043d\u0430\u043d\u043a\u0443, \u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e. \u0412\u0435\u0434\u044c \u0442\u0443\u0442 \u043d\u0435\u043b\u044c\u0437\u044f \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0442\u043e \u044d\u0442\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442.\u043a. \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0442\u0430\u043a\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0438\u0433\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442 \u0432 \u0438\u0433\u0440\u0435, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0441\u0444\u0435\u0440\u0443 \u0432\u043e\u043a\u0440\u0443\u0433 \u043d\u0430\u0448\u0435\u0439 \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043d\u0430\u043b\u043e\u0436\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0443 \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0444\u0435\u0440\u044b, \u0442.\u043a. \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0435\u0451 \u0438\u0437\u043d\u0443\u0442\u0440\u0438, \u0438 \u0442\u0443\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0438\u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u0438\u043b\u0438 \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0412 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u044d\u0442\u0443 \u0436\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u0441\u0444\u0435\u0440\u044b \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u0438\u0433\u0440\u0435 \u0438 \u0442\u0430\u043c \u0443\u0436\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0440\u0443\u0436\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0444\u0435\u0440\u044b, \u0433\u0434\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043e\u0442 \u0442\u0435\u0445 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0434\u043b\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u043a \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0442\u0430\u043a \u0438 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e, \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u0410 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u043e\u0439, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0438 \u0432\u0438\u0434\u043d\u044b \u043e\u0431\u0435 \u0435\u0433\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b ( \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 ) \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0438\u0434\u043d\u044b, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0440\u043c\u0430\u043b\u0435\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0432\u0435\u0449\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u043e \u044d\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u043b\u0438 \u044d\u0442\u043e\u0442 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u044b\u043c \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u043a\u0430\u043c\u0435\u0440\u0435 ( \u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0430\u043a\u0443\u0440\u0441\u0430 ). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u043d\u0430\u0434 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438: <em>\u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432<\/em>. \u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 2 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0447\u0438\u0441\u043b\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043a \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0437\u0432\u0443\u0447\u0438\u0442 \u0442\u0430\u043a: <em>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e, \u0440\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044e \u0434\u043b\u0438\u043d \u044d\u0442\u0438\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0443\u0433\u043b\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438<\/em>. \u0427\u0442\u043e \u0437\u0430 \u0434\u043b\u0438\u043d\u044b, \u0447\u0442\u043e \u0437\u0430 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0438 \u043a\u0430\u043a \u043d\u0430\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u043a\u043b\u0430\u0441\u0441 <code>Vector<\/code>:<\/p>\n<pre><code class=\"javascript\">static scalarProduct(a, b) { \u00a0\u00a0return a.x * b.x + a.y * b.y + a.z * b.z }<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439, \u0430 \u0432\u043e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0442\u0430\u043a \u0441\u0435\u0431\u0435. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0430\u043c \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u044d\u0442\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0430\u043c\u043e \u0447\u0438\u0441\u043b\u043e \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043b\u0438\u0448\u044c \u0437\u043d\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u0412\u0435\u0434\u044c \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u044d\u0442\u043e \u0434\u043b\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0443\u0433\u043b\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u0432\u043e\u0442 \u0434\u043b\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043d\u0430\u043c \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u043d\u0443\u0436\u043d\u044b, \u043e\u043d\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u0430 \u0432\u043e\u0442 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0443\u0433\u043b\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439, \u0442.\u043a. \u0435\u0441\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u0447\u0443\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441\u043e\u043c \u043d\u0430\u0447\u043d\u0435\u043c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0433\u043b\u044b \u0432 \u043a\u043e\u0441\u0438\u043d\u0443\u0441, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0443\u0433\u043b\u0430 <code>90<\/code> \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 = <code>0<\/code>, \u0430 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 <code>89<\/code> \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0440\u0430\u0432\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e <code>0.017<\/code>, \u0430 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 <code>91<\/code> \u0433\u0440\u0430\u0434\u0443\u0441\u0430 <code>-0.017<\/code>. \u0422.\u0435. \u0435\u0441\u043b\u0438 \u0443\u0433\u043e\u043b \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0432 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0431\u043e\u043b\u0435\u0435 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0430 \u0435\u0441\u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u2014 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0443\u0433\u043e\u043b \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 ( \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u043c\u0435\u0440\u044b \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u044e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 ) \u043c\u0435\u043d\u0435\u0435 <code>90<\/code> \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0438 \u0442\u0430\u043a\u043e\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c, \u0430 \u0435\u0441\u043b\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 &#8212; \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0422.\u0435. \u043c\u044b \u043d\u0435 \u0437\u043d\u0430\u044f \u0443\u0433\u043b\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u044e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435, \u0442.\u043a. \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0445\u043e\u0442\u044c \u0438 \u043d\u0435\u0442\u0443 \u0443\u0433\u043b\u0430, \u043d\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0443\u0433\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0441\u0442 \u043d\u0430\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u044d\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u043a\u043e\u0434\u0435, \u043d\u0438\u0436\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u0430\u043c\u0435\u0440\u044b \u043d\u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c: <\/p>\n<pre><code class=\"javascript\">let res = Vector.scalarProduct(cameraDirection, normal)<\/code><\/pre>\n<p> \u0418 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u043e\u0439, \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0432\u0441\u044e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: <\/p>\n<pre><code class=\"javascript\">\/\/ res \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0435\u0441\u043b\u0438 \u0443\u0433\u043e\u043b \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u044e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 if (res > 0) { \u00a0\u00a0\/\/ \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e if \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432\u0441\u0435 3 \u0432\u044b\u0437\u043e\u0432\u0430 drawer.drawLine }<\/code><\/pre>\n<p> \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0443 \u0412\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0438\u0434\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u044f\u0449\u0430\u044f \u0432 \u043a\u0430\u043c\u0435\u0440\u0443, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438 \u043e\u0442\u0431\u0440\u043e\u0448\u0435\u043d\u044b \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c.: <\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"\/img\/image-loader.svg\" height=\"608\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f17\/c29\/cd5\/f17c29cd5a946f400358993d7827aeca.png\" data-width=\"807\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u043e\u0435 \u043e\u0442\u0441\u0435\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439 \u0435\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u0442\u0431\u0440\u0430\u043a\u043e\u0432\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b ( \u0438\u043b\u0438 <em>backface culling<\/em> ). \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0430, \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 <code>res > 0<\/code> \u043d\u0430 <code>res &lt; 0<\/code> \u0438 \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0442.\u043a. \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043e\u0442\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0435 \u043e\u0442 \u043a\u0430\u043c\u0435\u0440\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438. <\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f! \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u044d\u0442\u0438\u0445 \u043d\u043e\u0440\u043c\u0430\u043b\u0435\u0439 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043d\u043e\u0432\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439, \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u043d\u0430\u0441 \u0446\u0432\u0435\u0442, \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u043e\u0442\u0441\u0435\u043a\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u0438 \u0434\u0430\u043b\u0435\u043a\u0438\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u0438 ( \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c <code>near<\/code> \/ <code>far<\/code> \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b ) \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 z-\u0431\u0443\u0444\u0435\u0440\u043e\u043c, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u0438\u043a\u0441\u0435\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430. \u0418 \u0434\u0430\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0438\u0433\u0440\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"javascript\"> const ctx = document.getElementById('surface').getContext('2d'); const imageData = ctx.createImageData(800, 600);  class Vector {   x = 0;   y = 0;   z = 0;   w = 1;    constructor(x, y, z, w = 1) {     this.x = x;     this.y = y;     this.z = z;     this.w = w;   }    static substruct(v1, v2) {     return new Vector(       v1.x - v2.x,       v1.y - v2.y,       v1.z - v2.z,       v1.w - v2.w     );   }    static scalarProduct(a, b) {     return a.x * b.x + a.y * b.y + a.z * b.z   }    static crossProduct(a, b) {     return new Vector(       a.y * b.z - a.z * b.y,       a.z * b.x - a.x * b.z,       a.x * b.y - a.y * b.x     );   }    static add(v1, v2) {     return new Vector(       v1.x + v2.x,       v1.y + v2.y,       v1.z + v2.z     );   }    multiplyByScalar(s) {     this.x *= s;     this.y *= s;     this.z *= s;      return this;   }    getLength() {     return Math.sqrt(       this.x * this.x + this.y * this.y + this.z * this.z     );   }    normalize() {     const length = this.getLength();      this.x \/= length;     this.y \/= length;     this.z \/= length;      return this;   } }  class Matrix {   static getLookAt(eye, target, up) {     const vz = Vector.substruct(eye, target).normalize();     const vx = Vector.crossProduct(up, vz).normalize();     const vy = Vector.crossProduct(vz, vx).normalize();      return Matrix.multiply(       Matrix.getTranslation(-eye.x, -eye.y, -eye.z),       [         [vx.x, vx.y, vx.z, 0],         [vy.x, vy.y, vy.z, 0],         [vz.x, vz.y, vz.z, 0],         [0, 0, 0, 1]       ]);   }    static getPerspectiveProjection(fovy, aspect, n, f) {     const radians = Math.PI \/ 180 * fovy;     const sx = (1 \/ Math.tan(radians \/ 2)) \/ aspect;     const sy = (1 \/ Math.tan(radians \/ 2));     const sz = (f + n) \/ (f - n);     const dz = (-2 * f * n) \/ (f - n);      return [       [sx, 0, 0, 0],       [0, sy, 0, 0],       [0, 0, sz, dz],       [0, 0, -1, 0]     ];   }    static multiply(a, b) {     const m = [       [0, 0, 0, 0],       [0, 0, 0, 0],       [0, 0, 0, 0],       [0, 0, 0, 0]     ];      for (let i = 0; i &lt; 4; i++) {       for (let j = 0; j &lt; 4; j++) {         m[i][j] = a[i][0] * b[0][j] +           a[i][1] * b[1][j] +           a[i][2] * b[2][j] +           a[i][3] * b[3][j];       }     }      return m;   }    static getRotationX(angle) {     const rad = Math.PI \/ 180 * angle;      return [       [1, 0, 0, 0],       [0, Math.cos(rad), -Math.sin(rad), 0],       [0, Math.sin(rad), Math.cos(rad), 0],       [0, 0, 0, 1]     ];   }    static getRotationY(angle) {     const rad = Math.PI \/ 180 * angle;      return [       [Math.cos(rad), 0, Math.sin(rad), 0],       [0, 1, 0, 0],       [-Math.sin(rad), 0, Math.cos(rad), 0],       [0, 0, 0, 1]     ];   }    static getRotationZ(angle) {     const rad = Math.PI \/ 180 * angle;      return [       [Math.cos(rad), -Math.sin(rad), 0, 0],       [Math.sin(rad), Math.cos(rad), 0, 0],       [0, 0, 1, 0],       [0, 0, 0, 1]     ];   }    static getTranslation(dx, dy, dz) {     return [       [1, 0, 0, dx],       [0, 1, 0, dy],       [0, 0, 1, dz],       [0, 0, 0, 1]     ];   }    static getScale(sx, sy, sz) {     return [       [sx, 0, 0, 0],       [0, sy, 0, 0],       [0, 0, sz, 0],       [0, 0, 0, 1]     ];   }    static multiplyVector(m, v) {     return new Vector(       m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] * v.w,       m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] * v.w,       m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] * v.w,       m[3][0] * v.x + m[3][1] * v.y + m[3][2] * v.z + m[3][3] * v.w     );   } }  class Drawer {   surface = null;   width = 0;   height = 0;    constructor(surface, width, height) {     this.surface = surface;     this.width = width;     this.height = height;   }    drawPixel(x, y, r, g, b) {     x += this.width \/ 2;     y = -(y - this.height \/ 2);     const offset = (this.width * y + x) * 4;      if (x >= 0 &amp;&amp; x &lt; this.width &amp;&amp; y >= 0 &amp;&amp; y &lt; this.height) {       this.surface[offset] = r;       this.surface[offset + 1] = g;       this.surface[offset + 2] = b;       this.surface[offset + 3] = 255;     }   }    drawLine(x1, y1, x2, y2, r = 0, g = 0, b = 0) {     const round = Math.trunc;     x1 = round(x1);     y1 = round(y1);     x2 = round(x2);     y2 = round(y2);      const c1 = y2 - y1;     const c2 = x2 - x1;      const length = Math.max(       Math.abs(c1),       Math.abs(c2)     );      const xStep = c2 \/ length;     const yStep = c1 \/ length;      for (let i = 0; i &lt;= length; i++) {       this.drawPixel(         Math.trunc(x1 + xStep * i),         Math.trunc(y1 + yStep * i),         r, g, b       );     }   }    clearSurface() {     const surfaceSize = this.width * this.height * 4;     for (let i = 0; i &lt; surfaceSize; i++) {       this.surface[i] = 0;     }   } }  let cameraDirection = new Vector(0, 0, -1, 0); let cameraPos = new Vector(0, 0, 0);  const drawer = new Drawer(   imageData.data,   imageData.width,   imageData.height );  \/\/ Cube vertices const vertices = [   new Vector(-0.5, 1, 0.5), \/\/ 0 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(-0.5, 1, -0.5), \/\/ 1 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(0.5, 1, -0.5), \/\/ 2 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(0.5, 1, 0.5), \/\/ 3 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(-1, -1, 1), \/\/ 4 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(-1, -1, -1), \/\/ 5 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(1, -1, -1), \/\/ 6 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(1, -1, 1) \/\/ 7 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 ];  const indices = [   [0, 1, 2], \/\/ 0   [0, 2, 3], \/\/ 1    [4, 6, 5], \/\/ 2   [4, 7, 6], \/\/ 3    [0, 5, 1], \/\/ 4   [0, 4, 5], \/\/ 5    [1, 5, 2], \/\/ 6   [6, 2, 5], \/\/ 7    [3, 2, 6], \/\/ 8   [3, 6, 7], \/\/ 9    [3, 4, 0], \/\/ 10   [4, 3, 7], \/\/ 11 ];  let angle = 0; setInterval(() => {   let matrix = Matrix.getRotationX(0);    matrix = Matrix.multiply(     Matrix.getRotationY(angle += 1),     matrix   );    matrix = Matrix.multiply(     Matrix.getScale(100, 100, 100),     matrix   );    matrix = Matrix.multiply(     Matrix.getTranslation(0, 0, -300),     matrix   );    matrix = Matrix.multiply(     Matrix.getLookAt(       cameraPos,       Vector.add(cameraPos, cameraDirection),       new Vector(0, 1, 0)     ),     matrix   );    matrix = Matrix.multiply(     Matrix.getPerspectiveProjection(       90, 800 \/ 600,       -1, -1000),     matrix   );    const sceneVertices = [];   for (let i = 0; i &lt; vertices.length; i++) {     let vertex = Matrix.multiplyVector(       matrix,       vertices[i]     );      vertex.x = vertex.x \/ vertex.w * 400;     vertex.y = vertex.y \/ vertex.w * 300;      sceneVertices.push(vertex);   }    drawer.clearSurface();    for (let i = 0, l = indices.length; i &lt; l; i++) {     const e = indices[i];      let v1 = sceneVertices[e[0]]     let v2 = sceneVertices[e[1]]     let v3 = sceneVertices[e[2]]      let t1 = Vector.substruct(v1, v2)     let t2 = Vector.substruct(v2, v3)      let normal = Vector.crossProduct(t1, t2).normalize()      let res = Vector.scalarProduct(cameraDirection, normal)      if (res > 0) {       drawer.drawLine(         v1.x,         v1.y,         v2.x,         v2.y,         0, 0, 255       );        drawer.drawLine(         v2.x,         v2.y,         v3.x,         v3.y,         0, 0, 255       );        drawer.drawLine(         v1.x,         v1.y,         v3.x,         v3.y,         0, 0, 255       );     }   }    ctx.putImageData(imageData, 0, 0); }, 100);<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/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\/post\/647171\/\"> https:\/\/habr.com\/ru\/post\/647171\/<\/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_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u043a \u0438 \u0437\u0430\u0447\u0435\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u043d\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0435 \u0447\u0430\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u0432 \u043a\u0430\u043c\u0435\u0440\u0443 \u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u043a\u043e\u0434 \u0441 \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u043e\u0439 \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/post\/599403\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u0431\u043e\u043d\u0443\u0441\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 ( <em>25.01.22 \u0432 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u044f \u0432\u043d\u0435\u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u0434 \u0438 \u0442\u0435\u043a\u0441\u0442, \u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b\u0438 \u043a\u043e\u0434 \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u0443\u0436\u043d\u043e \u0435\u0433\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0430\u0432\u043a\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/em> ). \u0412\u0441\u044e \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443 \u043c\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u0435\u0440\u0448\u0438\u043d ( \u043c\u0430\u0441\u0441\u0438\u0432 <code>vertices<\/code> ) \u0438 \u0440\u0435\u0431\u0435\u0440 ( \u043c\u0430\u0441\u0441\u0438\u0432 <code>edges<\/code> ). \u0423 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u043c\u0438\u043d\u0443\u0441, \u0443 \u043d\u0430\u0441 \u0432 \u043a\u043e\u0434\u0435 \u0443 \u0444\u0438\u0433\u0443\u0440\u044b \u043d\u0435\u0442\u0443 \u0433\u0440\u0430\u043d\u0435\u0439, \u0442.\u0435., \u0443 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043d\u0435\u044f\u0441\u043d\u043e \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0431\u0440\u0430 ( \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0438\u0438 ) \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0432 \u043a\u043e\u0434\u0435 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u044d\u0442\u043e \u0433\u0440\u0430\u043d\u044c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440<\/p>\n<figure class=\"full-width\"><figcaption>\u0418\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b<\/figcaption><\/figure>\n<p>\u041f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u044d\u0442\u043e <code>0, 1, 2, 3<\/code>, \u043b\u0438\u0446\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u044c: <code>3, 2, 6, 7<\/code> \u0438 \u0442.\u0434. \u0422.\u0435. \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043c\u044b \u044d\u0442\u0438 \u0433\u0440\u0430\u043d\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u043c, \u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0443 \u043d\u0430\u0441 \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e, \u0442.\u043a. \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u0444\u0438\u0433\u0443\u0440\u0443 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 ( \u0440\u0435\u0431\u0440\u0430 ). \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u043d\u044b \u0433\u0440\u0430\u043d\u0438, \u0432\u0435\u0434\u044c \u0438 \u0442\u0430\u043a \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u0412\u043e\u043f\u0440\u043e\u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438 \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0447\u0438\u043d, \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<p>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0433\u0440\u0430\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u0446\u0432\u0435\u0442, \u043e\u0441\u0432\u0435\u0449\u0430\u0442\u044c \u0435\u0451, \u0438\u043b\u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b ( \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u043b\u0435\u0434. \u0447\u0430\u0441\u0442\u044f\u0445 ). \u0412\u0435\u0434\u044c \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0446\u0432\u0435\u0442 \u043b\u0438\u043d\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0438\u0441\u0443\u0435\u043c. \u0410 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u043a\u0440\u0430\u0441\u0438\u0442\u044c, \u0443 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0437\u0430\u043c\u043a\u043d\u0443\u0442\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u0432 \u043a\u043e\u0434\u0435, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u043c.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0433\u0440\u0430\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0431\u044b\u043b\u0430 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0430 ( \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 ).<\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u0445, \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437 \u043b\u0438\u043d\u0438\u0439 \u043a\u0430\u043a \u043d\u0430\u0448\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430, \u0430 \u0438\u0437 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0433\u0440\u0430\u043d\u0435\u0439 ( \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 ), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u044f\u0442 \u0440\u044f\u0434\u043e\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0444\u0438\u0433\u0443\u0440\u0443. \u0423\u043c\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0432 \u043a\u043e\u0434\u0435 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e ( \u0438\u0445 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b ), \u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0445 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u0437 3D-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u0441\u043a\u0430\u0447\u0430\u043d\u044b \u0438\u0437 \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 3D-\u043c\u043e\u0434\u0435\u043b\u044f\u043c\u0438.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0448\u0443 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0438\u043c\u0435\u043b\u0430 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430. \u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e \u0444\u0438\u0433\u0443\u0440\u0443, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443. \u0412\u0435\u0434\u044c \u043c\u044b \u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0441\u0444\u0435\u0440\u044b, \u0438\u043b\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u2026 \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443, \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0447\u0442\u043e \u043e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 6 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0435\u0439, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u043e\u0431\u0449\u0438\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435, \u0442\u0430\u043c \u0433\u0434\u0435 \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u044b \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u042d\u0442\u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0435\u0449\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043c\u0438. \u041d\u043e \u0432 3D \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u043d\u0430\u043c \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b ( \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 ), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u0432 \u043c\u043e\u0434\u0435\u043b\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043b\u044e\u0441 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u0443 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u043d\u0430\u043c \u043f\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u0438 ( \u0443\u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u044d\u0442\u043e \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 ) \u0438 \u043f\u0440\u043e\u0449\u0435 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c ( \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 ). \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430:<\/p>\n<figure class=\"\"><figcaption>\u0421\u043b\u0435\u0432\u0430 &#8212; \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u0441\u043f\u0440\u0430\u0432\u0430 &#8212; \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439.<\/figcaption><\/figure>\n<p>\u0418\u0437 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043b\u0438\u0433\u043e\u043d, \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c 2 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438. \u0421 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438, \u043d\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0441\u044f \u043a\u043e\u0434\u0435 \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f.<\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u0432\u0430\u044e\u0442\u0441\u044f, \u0432\u0441\u0435 \u0442\u0435 \u0436\u0435 8 \u0448\u0442\u0443\u043a, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u0438 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430, \u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043b\u0438\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0432 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0430\u044f \u043d\u0430\u043c \u0444\u0438\u0433\u0443\u0440\u0430. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439-\u0436\u0435 \u043a\u0430\u043a \u0438 \u0431\u044b\u043b \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>edges<\/code>, \u0442.\u0435. \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432\u0435\u0440\u0448\u0438\u043d, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u043d\u0435 \u043f\u0430\u0440\u044b \u0432\u0435\u0440\u0448\u0438\u043d ( \u043f\u0430\u0440\u0430 \u0442.\u043a. \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0435\u0446 ), \u0430 \u043f\u043e 3 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0438\u0441\u0430\u0442\u044c 1 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c 3 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u041c\u044b \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438 \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 6 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0430 \u0432\u043e\u0442 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432 2 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0442.\u043a. \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 ( \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430 ) \u043d\u0443\u0436\u043d\u043e 2 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043c 1 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043b\u0438\u043d\u0438\u0439 ( \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 ), \u0430 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 ( \u0442\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0435\u043c ). \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0438 \u0442\u0430\u043c \u0438 \u0442\u0430\u043c \u0443 \u043d\u0430\u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a ( \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0440\u0430\u043d\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b ). \u041d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0443 \u043d\u0430\u0441 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u043b\u0438\u043d\u0438\u044f \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0442.\u043a. \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e 2 \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043a \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u042d\u0442\u0430 \u043b\u0438\u043d\u0438\u044f \u0432\u0438\u0434\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044f\u043c\u0438. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0437\u0430\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0432 \u0446\u0432\u0435\u0442, \u0430 \u043f\u043e\u0442\u043e\u043c \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043c \u043b\u0438\u043d\u0438\u0438, \u0438\u0445 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e, \u0438 \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u0431\u0435\u0437 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0442\u044b\u043a\u043e\u0432:<\/p>\n<figure class=\"full-width\"><figcaption>\u0421\u0432\u0435\u0440\u0445\u0443 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u043b\u0438\u043d\u0438\u0439, \u0441\u043d\u0438\u0437\u0443 &#8212; \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432.<\/figcaption><\/figure>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u2013 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a \u0438 \u0435\u0441\u0442\u044c, \u0442.\u043a. \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u0442\u0443\u0442 \u043e\u043d\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442. \u041d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u044b\u0448\u0435. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0434\u043d\u0438 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0431\u0443\u0434\u0443\u0442 \u0434\u0440\u0443\u0433\u0438\u0435, \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u0433\u0434\u0435 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043b\u0443\u0447\u0448\u0438\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0438 \u0447\u0442\u043e\u0431\u044b \u0432 \u043a\u043e\u0434\u0435 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0432\u0441\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e, \u043c\u044b \u0432\u0441\u0435 \u0438\u0445 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0445\u043e\u0442\u044c \u044d\u0442\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u0430\u043c\u044b\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <code>edges<\/code> \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 <code>indices<\/code>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432\u044b \u043f\u043e 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430:<\/p>\n<pre><code class=\"javascript\">const indices = [ \u00a0\u00a0\u00a0\u00a0[0, 1, 2], \/\/ 0 \u00a0\u00a0\u00a0\u00a0[0, 2, 3], \/\/ 1     [4, 6, 5], \/\/ 2 \u00a0\u00a0\u00a0\u00a0[4, 7, 6], \/\/ 3     [0, 5, 1], \/\/ 4 \u00a0\u00a0\u00a0\u00a0[0, 4, 5], \/\/ 5     [1, 5, 2], \/\/ 6 \u00a0\u00a0\u00a0\u00a0[6, 2, 5], \/\/ 7     [3, 2, 6], \/\/ 8 \u00a0\u00a0\u00a0\u00a0[3, 6, 7], \/\/ 9     [3, 4, 0], \/\/ 10 \u00a0\u00a0\u00a0\u00a0[4, 3, 7], \/\/ 11 ];<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u0447\u043a\u0430 ( \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 3\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 ) \u2013 \u044d\u0442\u043e 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0435\u0440\u0448\u0438\u043d ( <code>vertices<\/code> ) \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u2013 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0432\u0441\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b, \u0438\u0445 \u0443 \u043d\u0435\u0435 6, \u043d\u043e \u043e\u043d\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435, \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e 2 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043b\u0438\u043d\u0438\u0439, \u0442.\u043a. \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043c\u0430\u0441\u0441\u0438\u0432 <code>edges<\/code>, \u0430 \u0441\u0440\u0430\u0437\u0443 \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0443 ( \u043c\u0430\u0441\u0441\u0438\u0432 <code>indices<\/code> ).<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0446\u0438\u043a\u043b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <code>edges<\/code>:<\/p>\n<pre><code class=\"javascript\">\/\/for (let i = 0, l = edges.length; i &lt; l; i++) { \/\/\u00a0 \u0432\u0435\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0434 \u0446\u0438\u043a\u043b\u0430 \u0442\u043e\u0436\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c... \/\/}<\/code><\/pre>\n<p> \u0418 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 <code>indices<\/code>: <\/p>\n<pre><code class=\"javascript\">for (let i = 0, l = indices.length; i &lt; l; i++) { }<\/code><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 <code>indices[i]<\/code> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 \u0441 3\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u044d\u0442\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>sceneVertices<\/code> ( \u0442.\u043a. \u043c\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u0435\u0440\u0448\u0438\u043d \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>indices<\/code> ). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0448\u0438\u043d: <\/p>\n<pre><code class=\"javascript\">\/\/ \u0418\u043d\u0434\u0435\u043a\u0441\u044b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 const e = indices[i]; \/\/ \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b ( \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043a\u043b\u0430\u0441\u0441\u0430 Vector ) let v1 = sceneVertices[e[0]]; let v2 = sceneVertices[e[1]]; let v3 = sceneVertices[e[2]];<\/code><\/pre>\n<p> \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u2014 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0430 3\u0445 \u043b\u0438\u043d\u0438\u0439 \u043f\u043e 3\u043c \u0442\u043e\u0447\u043a\u0430\u043c: <\/p>\n<pre><code class=\"javascript\">\/\/ \u041b\u0438\u043d\u0438\u044f \u043e\u0442 v1 \u043a v2 drawer.drawLine( \u00a0\u00a0v1.x, \u00a0\u00a0v1.y, \u00a0\u00a0v2.x, \u00a0\u00a0v2.y, \u00a0\u00a00, 0, 255 ); \/\/ \u041b\u0438\u043d\u0438\u044f \u043e\u0442 v2 \u043a v3 drawer.drawLine( \u00a0\u00a0v2.x, \u00a0\u00a0v2.y, \u00a0\u00a0v3.x, \u00a0\u00a0v3.y, \u00a0\u00a00, 0, 255 ); \/\/ \u041b\u0438\u043d\u0438\u044f \u043e\u0442 v1 \u043a v3 drawer.drawLine( \u00a0\u00a0v1.x, \u00a0\u00a0v1.y, \u00a0\u00a0v3.x, \u00a0\u00a0v3.y, \u00a0\u00a00, 0, 255 );<\/code><\/pre>\n<p>\u0412 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 3 \u0442\u043e\u0447\u043a\u0438 \u0431\u044b\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. <\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443 \u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0435, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0435\u0440\u043d\u0435\u043c \u0435\u0439 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 <code>Y<\/code>, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438 \u043f\u043e <code>X<\/code> ( \u0445\u043e\u0442\u044c \u0442\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 0 \u0441\u0442\u043e\u0438\u0442 \u0434\u043b\u044f <code>X<\/code> ):<\/p>\n<pre><code class=\"javascript\">matrix = Matrix.multiply(   Matrix.getRotationY(angle += 1),   matrix );<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442\u043e \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432:<\/p>\n<figure class=\"full-width\"><figcaption>\u041c\u043e\u0434\u0435\u043b\u044c \u0443\u0441\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u0438\u0437 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432<\/figcaption><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043e\u043d\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0440\u0430\u043d\u0435\u0435 \u044d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u0442\u044b\u0440\u0435\u0445\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0432 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0440\u044f\u0434\u043e\u043c \u0441\u0442\u043e\u044f\u0449\u0438\u0445 2 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0422\u0430\u043a\u043e\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u043c\u044b \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0443\u0431\u0435\u0440\u0435\u043c, \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445. <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0435 \u0440\u0430\u0437 \u0447\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0423 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u044b \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043a\u0430\u043a \u0438 \u0432\u0441\u0435\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u0432\u0438\u0434\u043d\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u0435\u0451 \u0433\u0440\u0430\u043d\u0438 ( \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u043b\u0438\u043d\u0438\u0438 \u0440\u0435\u0431\u0435\u0440, \u0442.\u043a. \u0438\u0445 \u0440\u0438\u0441\u0443\u0435\u043c ), \u0440\u0430\u043d\u0435\u0435 \u044d\u0442\u043e \u043d\u0430\u0441 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e, \u0442.\u043a. \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0443 \u0438 \u0442.\u0434.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u0441\u043a\u0440\u044b\u0442\u044c \u0442\u0435 \u0433\u0440\u0430\u043d\u0438 \u0444\u0438\u0433\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u044b. \u042d\u0442\u043e \u0434\u0430\u0441\u0442 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 ( \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0438\u0440\u0430\u043c\u0438\u0434\u0443 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0439 ), \u0442\u0430\u043a\u0436\u0435 \u043c\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442.\u043a. \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 \u0442\u0435\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0438\u0434\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0441\u043a\u0440\u044b\u0442\u044c, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u0435\u043c \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0421\u0435\u0439\u0447\u0430\u0441 \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438, \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0441 2\u043c\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c\u0438, \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u043b\u0438 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u0431\u0443\u043c\u0430\u0433\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0435\u0433\u043e \u043f\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0442\u043e \u043e\u0434\u043d\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439. \u0412 \u0436\u0438\u0437\u043d\u0438 \u043c\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432\u0438\u0434\u0438\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u043e\u043d \u043a \u043d\u0430\u043c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442, \u043d\u043e \u0432 3D \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u0430 \u0432\u0438\u0434\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0430. \u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0439? \u0412\u043e\u043e\u0431\u0449\u0435 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u0437\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u0432\u043e\u0439 \u0438 \u0442\u0443\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u0430 \u0432\u044b\u0431\u043e\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u0430\u043c\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0435\u0448\u0438\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043a\u0430\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0435 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u0438\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0432 \u043a\u043e\u0434\u0435, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u044b 3\u0445 \u0432\u0435\u0440\u0448\u0438\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430 \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c. \u041d\u043e\u0440\u043c\u0430\u043b\u044c \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0443 \u0438 \u043e\u0442\u043a\u0443\u0434\u0430 \u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c, \u0442\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0446\u0435\u0432\u043e\u0439:<\/p>\n<figure class=\"\"><figcaption>\u041d\u043e\u0440\u043c\u0430\u043b\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0433\u0440\u0430\u043d\u0438.<\/figcaption><\/figure>\n<p>\u0421\u0438\u043d\u044f\u044f \u0441\u0442\u0440\u0435\u043b\u043a\u0430 \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u044b\u0448\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u0441\u0442\u043e\u0440\u043e\u043d \u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 2, \u0442\u043e \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c 2, \u043d\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e 1 \u043d\u043e\u0440\u043c\u0430\u043b\u044c, \u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0432\u0438\u0434\u0438\u043c\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c <\/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-328556","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/328556","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=328556"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/328556\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=328556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=328556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=328556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}