{"id":302113,"date":"2020-04-18T15:00:25","date_gmt":"2020-04-18T15:00:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=302113"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=302113","title":{"rendered":"3D \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438. \u0427\u0430\u0441\u0442\u044c 2: \u043e\u043d\u043e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0435"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/497808\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ko\/ek\/3y\/koek3yvmqsby8gve6rpexo3lizw.jpeg\"><\/p>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/post\/494094\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u043a\u0430\u043a \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0438 \u043b\u0438\u043d\u0438\u044f (\u043e\u0442\u0440\u0435\u0437\u043e\u043a), \u043d\u043e \u0432\u0435\u0434\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043a\u043e\u0440\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 3D-\u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440 \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0442\u0435\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. <br \/>  <a name=\"habracut\"><\/a><br \/>  <strong>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/strong><\/p>\n<ul>\n<li>\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442<\/li>\n<li>\u0422\u043e\u0447\u043a\u0430 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440<\/li>\n<li>\u041c\u0430\u0442\u0440\u0438\u0446\u0430<\/li>\n<li>\u0412\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/li>\n<li>\u041a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>  <strong>\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442<\/strong><\/p>\n<p>  \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0435\u0442\u043e\u0447\u043d\u043e \u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u044b \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u0443\u0445\u0432\u0430\u0442\u0438\u0432 \u0441\u0443\u0442\u044c, \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0432 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435. \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0435, \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u044b\u043c\u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0438 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u043c\u0438, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438. \u041c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043d\u0435 \u0432\u0438\u0434\u044f \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432\u0441\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0438\u0445 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435.\u00a0<\/p>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u2013 \u044d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0431\u0435\u0440\u0435\u043c, \u043a\u0430\u043a\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gx\/tk\/zk\/gxtkzkmi6lgedw0-zae3ylaaeii.png\" align=\"left\" width=\"300\"><br \/>  \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442? \u042d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0438\u0433\u0440\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0438\u0437 \u0442\u043e\u0447\u0435\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0447\u0438\u0441\u0435\u043b. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438\u043c\u0435\u0435\u0442 2 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0435\u0439 (\u0431\u0443\u0434\u0435\u043c \u0438\u0445 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u043a\u0430\u043a X, Y), \u0435\u0441\u043b\u0438 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 2D \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439. \u0415\u0441\u043b\u0438 \u043c\u044b 2D-\u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0439 Y \u0438 \u043e\u043d \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0431\u044b\u043b \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u2013 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u0441\u044c Y \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u0432\u0435\u0440\u0445. \u0415\u0441\u043b\u0438 \u043c\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0425 \u0438 \u043e\u043d \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0440\u0430\u0432\u0435\u0435 \u2013 \u044d\u0442\u043e\u00a0 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u0441\u044c \u0425 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043f\u0440\u0430\u0432\u043e. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0435\u0439, \u0430 \u0432\u043c\u0435\u0441\u0442\u0435 \u043e\u043d\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0415\u0441\u043b\u0438 \u0432 \u043c\u0435\u0441\u0442\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0441\u0435\u0439 \u0425 \u0438 Y \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0433\u043e\u043b 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0442\u043e \u0442\u0430\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u043e\u0439 (\u0435\u0449\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0414\u0435\u043a\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442) (\u0441\u043c. \u0420\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u044b\u0448\u0435).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/q_\/lu\/uf\/q_luufb93jef3uvt9pocgyhimrc.png\" width=\"500\"><\/div>\n<p>  \u041d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432 2D \u043c\u0438\u0440\u0435, \u0432 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u043c \u0436\u0435, \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0441\u044c \u2013 Z. \u0415\u0441\u043b\u0438 \u043e\u0441\u044c Y (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0448\u0435\/\u043d\u0438\u0436\u0435, \u043e\u0441\u044c \u0425 (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0430\u0431\u0441\u0446\u0438\u0441\u0441\u0430) \u043b\u0435\u0432\u0435\u0435\/\u043f\u0440\u0430\u0432\u0435\u0435, \u0442\u043e \u043e\u0441\u044c Z (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0430\u043f\u043f\u043b\u0438\u043a\u0430\u0442\u0430) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0434\u0430\u043b\u044f\u0442\u044c\/\u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0447\u0430\u0441\u0442\u043e (\u043d\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0441\u044c Y \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u0432\u0435\u0440\u0445, \u043e\u0441\u044c \u0425 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043f\u0440\u0430\u0432\u043e, \u0430 \u0432\u043e\u0442 Z \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430, \u043b\u0438\u0431\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u043b\u0438\u0431\u043e \u0432 \u0434\u0440\u0443\u0433\u043e\u043c. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043c\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043d\u0430 2 \u0442\u0438\u043f\u0430 \u2013 \u043b\u0435\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e \u0438 \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e (\u0441\u043c. \u0420\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u044b\u0448\u0435).<\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0440\u0438\u0441\u0443\u043d\u043a\u0430, \u043b\u0435\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043b\u0435\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442) \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u0433\u0434\u0430 \u043e\u0441\u044c Z, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0442 \u043d\u0430\u0441 (\u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 Z, \u0442\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u044a\u0435\u043a\u0442), \u0435\u0441\u043b\u0438 \u0436\u0435 \u043e\u0441\u044c Z \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043a \u043d\u0430\u043c, \u0442\u043e \u044d\u0442\u043e \u2013 \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043f\u0440\u0430\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442). \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u0445 \u0442\u0430\u043a \u043d\u0430\u0437\u0432\u0430\u043b\u0438? \u041b\u0435\u0432\u0430\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043b\u0435\u0432\u0443\u044e \u0440\u0443\u043a\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u0430\u0434\u043e\u043d\u044c\u044e \u0432\u0432\u0435\u0440\u0445, \u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u043c\u0438 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043e\u0441\u0438 \u0425, \u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0430\u043b\u0435\u0446 \u0443\u043a\u0430\u0436\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Z, \u0442\u043e \u0435\u0441\u0442\u044c, \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430, \u0435\u0441\u043b\u0438 \u0425 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u0432\u043f\u0440\u0430\u0432\u043e. \u0422\u043e\u0436\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0441 \u043f\u0440\u0430\u0432\u043e\u0439 \u0440\u0443\u043a\u043e\u0439, \u0438 \u043e\u0441\u044c Z \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430, \u043f\u0440\u0438 \u0425 \u0432\u043f\u0440\u0430\u0432\u043e. \u0417\u0430\u043f\u0443\u0442\u0430\u043b\u0438\u0441\u044c \u0441 \u043f\u0430\u043b\u044c\u0446\u0430\u043c\u0438? \u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0443\u043a\u0443 \u0438 \u043f\u0430\u043b\u044c\u0446\u044b, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0435\u0439, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c.<\/p>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u043e\u0432, \u0433\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 Direct3D \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0435\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0430 \u0432 OpenGL \u0438 WebGL \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f, \u0432 VulkanAPI \u043e\u0441\u044c Y \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043d\u0438\u0437 (\u0447\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 Y \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442) \u0430 Z \u043e\u0442 \u043d\u0430\u0441, \u043d\u043e \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f, \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0430\u043c\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0439.<\/p>\n<p>  \u041a\u0430\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u043c? \u041f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u044e\u0431\u0430\u044f, \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0447\u0438\u043c\u0441\u044f \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0435\u0439 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430 \u0443\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u044e\u0442. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0447\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u044b \u0443\u043a\u0430\u0436\u0435\u043c Z \u0434\u043b\u044f \u0442\u043e\u0447\u043a\u0438, \u0442\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c X,Y \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u043f\u0440\u0430\u0432\u043e\/\u0432\u0432\u0435\u0440\u0445.<\/p>\n<p>  <strong>\u0422\u043e\u0447\u043a\u0430 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440<\/strong><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0431\u0430\u0437\u043e\u0432\u043e \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0441\u0435\u0439. \u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0442\u043e\u0447\u043a\u0430 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440, \u0442.\u043a. \u043e\u043d\u0438 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0434\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438. \u0422\u043e\u0447\u043a\u043e\u0439 \u0432 3D-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u0447\u0435\u0440\u0435\u0437 [X, Y, Z]. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043e\u043a\u043d\u0430), \u0442\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 [0, 0, 0], \u0438\u043b\u0438 \u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 \u0442\u043e\u0447\u043a\u0435 [0, 0, 0]. \u0422\u0435\u043f\u0435\u0440\u044c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0430 \u043b\u0435\u0432\u0435\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u043d\u0430 20 \u0435\u0434\u0438\u043d\u0438\u0446 (\u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439),\u00a0 \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0432 \u0442\u043e\u0447\u043a\u0435 [-20, 0, 0]. \u041c\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u043e\u0447\u043a\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0438\u0445 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u043e\u0437\u0436\u0435.\u00a0<\/p>\n<p>  \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432\u0435\u043a\u0442\u043e\u0440? \u042d\u0442\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u0412 3D-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043e\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438 \u0442\u043e\u0447\u043a\u0430, 3-\u043c\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 [X, Y, Z]. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0432\u0432\u0435\u0440\u0445 \u043d\u0430 5 \u0435\u0434\u0438\u043d\u0438\u0446 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c Y, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u043a \u043d\u0435\u043c\u0443 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 5, \u043d\u043e X \u0438 Z \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0442\u0430\u043a\u043e\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [0, 5, 0]. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0432\u043d\u0438\u0437 \u043d\u0430 2 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438 \u0432\u043f\u0440\u0430\u0432\u043e \u043d\u0430 1, \u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a: [1, -2, 0]. \u041c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 -2 \u0442.\u043a. Y \u0432\u043d\u0438\u0437 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u0423 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 [X, Y, Z] \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u0412\u0435\u043a\u0442\u043e\u0440 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a \u0442\u043e\u0447\u043a\u0435, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0442\u043e\u0447\u043a\u0443, \u0441\u043c\u0435\u0449\u0435\u043d\u043d\u0443\u044e \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0448\u0435 \u044f \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c 3D-\u043e\u0431\u044a\u0435\u043a\u0442 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430) \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0430 5 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0432\u0435\u0440\u0445, \u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c: [0, 5, 0]. \u041d\u043e \u043a\u0430\u043a \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f?\u00a0<\/p>\n<p>  \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u043e\u0447\u043a\u0435 [5, 7, 0], \u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f [0, 5, 0]. \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u043c \u043a \u0442\u043e\u0447\u043a\u0435 \u0432\u0435\u043a\u0442\u043e\u0440, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u043a\u0430. \u0421\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c, \u0438\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f <font color=\"#ff0000\">\u0442\u043e\u0447\u043a\u0438<\/font> \u0438 <font color=\"#0000ff\">\u0432\u0435\u043a\u0442\u043e\u0440\u0430<\/font>:<\/p>\n<p>  [<font color=\"#ff0000\">5, 7, 0<\/font>] + [<font color=\"#0000ff\">0, 5, 0<\/font>] = [<font color=\"#ff0000\">5<\/font> + <font color=\"#0000ff\">0<\/font>, <font color=\"#ff0000\">7<\/font> + <font color=\"#0000ff\">5<\/font>, <font color=\"#ff0000\">0<\/font> + <font color=\"#0000ff\">0<\/font>] = [5, 12, 0] \u2013 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.\u00a0<\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u043b\u0441\u044f \u043d\u0430 5 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0432\u0435\u0440\u0445, \u043e\u0442\u0441\u044e\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u2013 \u0434\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u043d\u0430 \u0435\u0441\u0442\u044c, \u043a\u0440\u043e\u043c\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [0, 0, 0], \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c, \u0442\u0430\u043a\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0423 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [0, 5, 0]\u00a0 \u0434\u043b\u0438\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 5, \u0442.\u043a. \u0442\u0430\u043a\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0430\u0435\u0442 \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 5 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0432\u0435\u0440\u0445. \u0423 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [0, 0, 10] \u0434\u043b\u0438\u043d\u0430 10, \u0442.\u043a. \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 10 \u043f\u043e \u043e\u0441\u0438 Z. \u041d\u043e \u0432\u043e\u0442 \u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [12, 3, -4] \u00ab\u043d\u0430 \u0433\u043b\u0430\u0437\u00bb \u0438 \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0448\u044c \u043a\u0430\u043a\u0430\u044f \u0434\u043b\u0438\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0412\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u0434\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430? \u041e\u0434\u043d\u043e \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u2013 \u0443\u0437\u043d\u0430\u0442\u044c \u043d\u0430 \u043a\u0430\u043a\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0438\u043b\u0438 \u0447\u0442\u043e\u0431\u044b \u0441\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u0439, \u0443 \u043a\u043e\u0433\u043e \u0434\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u043e\u0442 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u0414\u043b\u0438\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u0435-\u043a\u0430\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u0414\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0441\u044f Z):  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fa7\/1ad\/094\/fa71ad094ef68d567ea38904b3fec3dd.svg\" alt=\"$Length = \\sqrt{X^2+Y^2+Z^2}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u044b\u0448\u0435 \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [6, 3, -8];  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/51a\/a85\/11d\/51aa8511dc27f52288046d49bdf1ae2d.svg\" alt=\"$Length = \\sqrt{6 * 6 + 3 * 3 + -8 * -8} = \\sqrt{36 + 9 + 64} = \\sqrt{109} \u2248 10.44$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0414\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [6, 3, -8] \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0432\u043d\u0430 10.44.<\/p>\n<p>  \u041c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0442\u043e\u0447\u043a\u0430, \u0432\u0435\u043a\u0442\u043e\u0440, \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440 (\u0438\u043b\u0438 2 \u0432\u0435\u043a\u0442\u043e\u0440\u0430), \u0438 \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 \u043d\u0435\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u044b. \u0425\u043e\u0447\u0443 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0442\u043e\u0447\u043a\u0438, \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0442\u043e\u0447\u043a\u0430, \u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0442.\u043a. \u0438 \u0442\u043e\u0447\u043a\u0430 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u0441\u0435\u0431\u0435 X, Y, Z,\u00a0 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0447\u043a\u0438 \u044d\u0442\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 \u0434\u043b\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043a\u043b\u0430\u0441\u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0438\u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 Drawer. \u042f \u0441\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u043d\u0430\u0437\u0432\u0430\u043b Vector \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0432 \u043d\u0435\u0433\u043e 3 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 X, Y, Z:<\/p>\n<pre><code class=\"javascript\">class Vector { \u00a0\u00a0x = 0; \u00a0\u00a0y = 0; \u00a0\u00a0z = 0;  \u00a0\u00a0constructor(x, y, z) { \u00a0\u00a0\u00a0\u00a0this.x = x; \u00a0\u00a0\u00a0\u00a0this.y = y; \u00a0\u00a0\u00a0\u00a0this.z = z; \u00a0\u00a0} } <\/code><\/pre>\n<p>  \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u043b\u044f x, y, z\u00a0 \u0431\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u00ab\u0430\u043a\u0441\u0435\u0441\u0441\u043e\u0440\u043e\u0432\u00bb, \u0442\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435, \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430. \u041f\u043e\u0437\u0434\u043d\u0435\u0435, \u043c\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0435\u0449\u0435 \u0441\u0438\u043b\u044c\u043d\u0435\u0435, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c 2 \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0434\u0443\u043c\u0430\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439. \u0422\u0435\u043b\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u044b\u0448\u0435. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c:<\/p>\n<pre><code class=\"javascript\">static add(v1, v2) { \u00a0\u00a0\u00a0\u00a0return new Vector( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v1.x + v2.x, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v1.y + v2.y, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0v1.z + v2.z, \u00a0\u00a0\u00a0\u00a0); } <\/code><\/pre>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u0432\u0441\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0432\u044b\u0448\u0435:<\/p>\n<pre><code class=\"javascript\">getLength() { \u00a0\u00a0\u00a0\u00a0return Math.sqrt( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.x * this.x + this.y * this.y + this.z * this.z \u00a0\u00a0\u00a0\u00a0); } <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043d\u0430\u0434 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0437\u0436\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0438 \u043c\u043d\u043e\u0433\u043e \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u2013 \u00ab\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u00bb. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0432 \u0438\u0433\u0440\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0430\u043c\u0438 \u0441\u0442\u0440\u0435\u043b\u043e\u043a. \u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u0432\u0432\u0435\u0440\u0445, \u0442\u043e \u043e\u043d \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 [0, 1, 0], \u0435\u0441\u043b\u0438 \u0432\u043d\u0438\u0437 \u0442\u043e [0, -1, 0], \u0432\u043b\u0435\u0432\u043e [-1, 0, 0] \u0438 \u0432\u043f\u0440\u0430\u0432\u043e [1, 0, 0]. \u0417\u0434\u0435\u0441\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043b\u0438\u043d\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0440\u0430\u0432\u043d\u044b 1, \u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0440\u0430\u0432\u043d\u0430 1. \u0410 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438, \u0435\u0441\u043b\u0438 \u0438\u0433\u0440\u043e\u043a \u0437\u0430\u0436\u0438\u043c\u0430\u0435\u0442 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0443 \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043f\u0440\u0430\u0432\u043e, \u0442\u043e \u043a\u0430\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f? \u0421\u0430\u043c\u044b\u0439 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 [1, 1, 0]. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0443, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0432\u043d\u0430 1.414. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0434\u0438\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435? \u0422\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u043d\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0445\u043e\u0434\u0438\u043b \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 1, \u0432\u0435\u043a\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c: [0.707, 0.707, 0]. \u041e\u0442\u043a\u0443\u0434\u0430 \u044f \u0432\u0437\u044f\u043b \u0442\u0430\u043a\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440? \u042f \u0432\u0437\u044f\u043b \u0432\u0435\u043a\u0442\u043e\u0440 [1, 1, 0] \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0435\u0433\u043e, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b [0.707, 0.707, 0]. \u0422\u043e \u0435\u0441\u0442\u044c, \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u2013 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a \u0434\u043b\u0438\u043d\u0435 1 (\u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u0435) \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u044b [0.707, 0.707, 0] \u0438 [1, 1, 0] \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0431\u0443\u0434\u0435\u0442 \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u0432\u0432\u0435\u0440\u0445 \u0432\u043f\u0440\u0430\u0432\u043e, \u043d\u043e \u0432\u0435\u043a\u0442\u043e\u0440 [0.707, 0.707, 0] \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e 1, \u0447\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442 \u0431\u0430\u0433 \u0441 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u044b\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u0434 \u043b\u044e\u0431\u044b\u043c\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0432\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u0448\u0438\u0431\u043e\u043a. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440. \u041d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 (X, Y, Z) \u043d\u0430 \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0443. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0443\u0436\u0435 \u0435\u0441\u0442\u044c, \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0434\u0435\u043b\u0430 \u0441\u0434\u0435\u043b\u0430\u043d\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 Vector):<\/p>\n<pre><code class=\"javascript\">normalize() { \u00a0\u00a0\u00a0\u00a0const length = this.getLength(); \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0this.x \/= length; \u00a0\u00a0\u00a0\u00a0this.y \/= length; \u00a0\u00a0\u00a0\u00a0this.z \/= length; \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0return this; } <\/code><\/pre>\n<p>  \u041c\u0435\u0442\u043e\u0434 normalize \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e (this), \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e normalize \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0438 \u0437\u043d\u0430\u0435\u043c \u0447\u0442\u043e \u0435\u0435 \u043b\u0443\u0447\u0448\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441. \u0415\u0441\u043b\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u2013 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430) \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u0430 1, \u0442\u043e \u043a\u0430\u043a \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u0432\u0432\u0435\u0440\u0445\/\u0432\u043f\u0440\u0430\u0432\u043e \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e 1, \u0435\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 [0.707, 0.707, 0], \u0430 \u043a\u0430\u043a\u043e\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0431\u0443\u0434\u0435\u0442 \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u0432 6 \u0440\u0430\u0437 \u0431\u044b\u0441\u0442\u0440\u0435\u0435? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0441\u043a\u0430\u043b\u044f\u0440\u00bb. \u0421\u043a\u0430\u043b\u044f\u0440\u043e\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u044e\u0442 \u0432\u0435\u043a\u0442\u043e\u0440. \u0415\u0441\u043b\u0438 \u0441\u043a\u0430\u043b\u044f\u0440 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 6, \u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u0442\u0430\u043d\u0435\u0442 \u0432 6 \u0440\u0430\u0437 \u0434\u043b\u0438\u043d\u043d\u0435\u0435, \u0430 \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0432 6 \u0440\u0430\u0437 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041a\u0430\u043a \u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u043a\u0430\u043b\u044f\u0440? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0441\u043a\u0430\u043b\u044f\u0440. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u0448\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u0432\u044b\u0448\u0435, \u043a\u043e\u0433\u0434\u0430 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 [0.707, 0.707, 0] (\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 1) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0432 6 \u0440\u0430\u0437, \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u0441\u043a\u0430\u043b\u044f\u0440 6. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u00abV\u00bb \u043d\u0430\u00a0 \u0441\u043a\u0430\u043b\u044f\u0440 \u00abs\u00bb \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/272\/ab4\/c40\/272ab4c40fe0685a0c77c3118bb4c23e.svg\" alt=\"$V * s = \\begin{bmatrix}V_x * s&amp;V_y*s&amp;V_z*s\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442:<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb4\/561\/aae\/eb4561aae2729bd1018e662029b64476.svg\" alt=\"$\\begin{bmatrix}0.707 * 6&amp;0.707 * 6&amp;0 * 6\\end{bmatrix} = \\begin{bmatrix}4.242&amp;4.242&amp;0\\end{bmatrix}$\" data-tex=\"inline\"><\/math> \u2013 \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0432\u043d\u0430 6.<\/p>\n<p>  \u0412\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0430\u043b\u044f\u0440 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0436\u0435 \u0441\u043a\u0430\u043b\u044f\u0440 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 (\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0443) \u043d\u043e \u0432\u0434\u043e\u0431\u0430\u0432\u043e\u043a \u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0435.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>multiplyByScalar<\/code> \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0441\u043a\u0430\u043b\u044f\u0440 \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0435 Vector:<\/p>\n<pre><code class=\"javascript\">multiplyByScalar(s) { \u00a0\u00a0\u00a0\u00a0this.x *= s; \u00a0\u00a0\u00a0\u00a0this.y *= s; \u00a0\u00a0\u00a0\u00a0this.z *= s; \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0return this; } <\/code><\/pre>\n<p>  <strong>\u041c\u0430\u0442\u0440\u0438\u0446\u0430<\/strong><\/p>\n<p>  \u041c\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0414\u0430\u043b\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u2013 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u041f\u0440\u043e\u0441\u0442\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0435\u0440\u043c\u0438\u043d \u00ab\u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432\u00bb, \u0430 \u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0435 \u00ab\u043c\u0430\u0442\u0440\u0438\u0446\u0430\u00bb. \u0414\u043b\u044f \u0447\u0435\u0433\u043e \u0436\u0435 \u0432 3D-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0443\u0436\u043d\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b? \u042d\u0442\u043e \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\u00a0<\/p>\n<p>  \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b). \u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 (\u043a\u0430\u043a \u0443 \u043b\u044e\u0431\u043e\u0433\u043e 2-\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430). \u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0446:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/898\/a02\/012\/898a020123ffedfdb6ca4f3d5c06945d.svg\" alt=\"$M=\\begin{bmatrix}1&amp;2&amp;3\\\\4&amp;5&amp;6\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 2 \u043d\u0430 3<\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5e4\/158\/939\/5e4158939f7394873ef244f97a6be0f2.svg\" alt=\"$M=\\begin{bmatrix}2&amp;4&amp;3\\\\3&amp;4&amp;4\\\\5&amp;-2&amp;2\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 3 \u043d\u0430 3  <\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7f2\/53c\/f21\/7f253cf21b8f6fec30ed6fafd62a4d54.svg\" alt=\"$M=\\begin{bmatrix}2\\\\3\\\\0\\\\5\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 4 \u043d\u0430 1  <\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/752\/3a8\/36a\/7523a836a58ae43573befa9a0482108b.svg\" alt=\"$M=\\begin{bmatrix}5&amp;0&amp;7\\\\2&amp;-1&amp;7\\\\9&amp;2&amp;8\\\\3&amp;5&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 4 \u043d\u0430 3  <\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0418\u0437 \u0432\u0441\u0435\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438, \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043b\u0438\u0448\u044c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 (\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0437\u0436\u0435). \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446 \u043d\u0435 \u0441\u0430\u043c\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043e\u043d\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435, \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0442.\u043a. \u0442\u0443\u0442 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0438 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e A \u043d\u0430 \u0447\u0438\u0441\u043b\u043e B, \u0442\u043e \u044d\u0442\u043e \u0432\u0435\u0434\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 B * A. \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c, \u043f\u0440\u0438 \u043a\u0430\u043a\u043e\u043c \u043b\u0438\u0431\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u044b \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0442\u043e \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u0438\u0432\u043d\u0430. \u041f\u0440\u0438\u043c\u0435\u0440:\u00a0 a + b = b + a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u0438\u0432\u043d\u0430, a \u2013 b \u2260 b \u2013 a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0435\u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u0438\u0432\u043d\u0430, a * b = b * a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u0435\u043b \u2013 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u0438\u0432\u043d\u0430. \u0422\u0430\u043a \u0432\u043e\u0442, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u043d\u0435\u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u0438\u0432\u043d\u0430 \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u0435\u043b. \u0422\u043e \u0435\u0441\u0442\u044c, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b M \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 N \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u044b N \u043d\u0430 M.<\/li>\n<li>\u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0435\u0441\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043b\u0435\u0432\u0430) \u0440\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0442\u0440\u043e\u043a \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u0430).\u00a0<\/li>\n<\/ul>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 (\u043a\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435). \u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u043a\u043e\u0433\u0434\u0430 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u0442:<\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/39e\/27f\/048\/39e27f048f532606a0c626090bab2a8e.svg\" alt=\"$M_1=\\begin{bmatrix}1&amp;2\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/012\/615\/5ee\/0126155ee805a9aa3de274e9ab45a6a8.svg\" alt=\"$M_2=\\begin{bmatrix}1&amp;2&amp;3\\\\4&amp;5&amp;6\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 M1 \u043d\u0430 M2 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442.\u043a. \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 2 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 2 \u0441\u0442\u0440\u043e\u043a\u0438.<\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dbd\/4a8\/092\/dbd4a8092656d5f1ff4e2fbf46d37f1e.svg\" alt=\"$M_1=\\begin{bmatrix}3&amp;2&amp;5\\\\4&amp;4&amp;2\\\\-7&amp;4&amp;5\\\\7&amp;9&amp;4\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e37\/917\/c9d\/e37917c9db66c8d822bad7db8fd20fdc.svg\" alt=\"$M_2=\\begin{bmatrix}1&amp;0\\\\4&amp;5\\\\6&amp;-9\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u041c1 \u043d\u0430 \u041c2 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442.\u043a. \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 3 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 3\u00a0\u0441\u0442\u0440\u043e\u043a\u0438.<\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/89e\/665\/638\/89e665638b2ddca629bd9ea595bf42fd.svg\" alt=\"$M_1=\\begin{bmatrix}5&amp;4\\\\0&amp;3\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7d2\/6c2\/8b7\/7d26c28b7b7d31fede2bf59d2cc0d6cc.svg\" alt=\"$M_2=\\begin{bmatrix}7&amp;3\\\\0&amp;3\\\\6&amp;3\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u041c1 \u043d\u0430 \u041c2 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442.\u043a. \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 2 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 3 \u0441\u0442\u0440\u043e\u043a\u0438.<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0414\u0443\u043c\u0430\u044e, \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0438\u043b\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u0443, \u043a\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446, \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0442\u0440\u043e\u043a 1-\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 2-\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 2 \u043d\u0430 6 \u0438 6 \u043d\u0430 8, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 2 \u043d\u0430 8. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c, \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044e.<\/p>\n<p>  \u0414\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 1, \u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0441 0. \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430) \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0432 \u0432\u0438\u0434\u0435: m28, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u0432\u043e\u0441\u044c\u043c\u043e\u043c\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0443. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043a\u043e\u0434\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438, \u0432\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u043a \u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 0.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c 2 \u043c\u0430\u0442\u0440\u0438\u0446\u044b A \u0438 B \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4fb\/5a9\/f41\/4fb5a9f41f7b366aa72a973078c75807.svg\" alt=\"$A=\\begin{bmatrix}1&amp;2\\\\3&amp;4\\\\5&amp;6\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1d9\/9bb\/db6\/1d99bbdb6294e565e42ad5df3be7bd69.svg\" alt=\"$B=\\begin{bmatrix}7&amp;8\\\\9&amp;10\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0410 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 3 \u043d\u0430 2, \u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0412 \u0440\u0430\u0437\u043c\u0435\u0440 2 \u043d\u0430 2, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3f3\/9d0\/167\/3f39d01671c1d4d820900246e79ce058.svg\" alt=\"$A*B=\\begin{bmatrix}1*7+2*9&amp;1*8+2*10\\\\3*7+4*9&amp;3*8+4*10\\\\5*7+6*9&amp;5*8+6*10\\end{bmatrix}=\\begin{bmatrix}25&amp;28\\\\57&amp;64\\\\89&amp;100\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430 3 \u043d\u0430 2, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u043e\u0435, \u043d\u043e \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u00ab\u0431\u0435\u0437 \u043d\u0430\u043f\u0440\u044f\u0433\u0430\u00bb, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. \u0412\u043e\u0442 \u0435\u0449\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 A \u0438 \u0412:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2b8\/fb6\/149\/2b8fb61497e5e19ea682be3f7de00bd3.svg\" alt=\"$A=\\begin{bmatrix}3&amp;2\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/90e\/a54\/b73\/90ea54b73f0519dac62da41aa7ab9c99.svg\" alt=\"$B=\\begin{bmatrix}2&amp;-3&amp;0\\\\1&amp;4&amp;-2\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/795\/f92\/e33\/795f92e335daf913f412d3926b57318a.svg\" alt=\"$A*B=\\begin{bmatrix}3*2+2*1&amp;3*-3+2*4&amp;3*0+2*-2\\end{bmatrix}=\\begin{bmatrix}8&amp;-1&amp;-4\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u2013 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u0442.\u043a. \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043d\u0430 \u043b\u0438\u0441\u0442\u0438\u043a\u0435 \u043d\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f. \u041c\u044b \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451. \u0412\u043e\u043e\u0431\u0449\u0435, \u0432\u0441\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b, \u043d\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f:<\/p>\n<ul>\n<li>\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446:<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f83\/32c\/376\/f8332c376d031c41e21db507814d7670.svg\" alt=\"$\\begin{bmatrix}2&amp;3\\\\6&amp;4\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 2 \u043d\u0430 2<\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5bf\/34e\/de4\/5bf34ede4db3fc81e72160017c7f8212.svg\" alt=\"$\\begin{bmatrix}5&amp;6&amp;7\\\\9&amp;0&amp;-2\\\\4&amp;5&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 3 \u043d\u0430 3<\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bba\/e33\/c8a\/bbae33c8a14723086ef7da4f831115e3.svg\" alt=\"$\\begin{bmatrix}5&amp;6&amp;7&amp;3\\\\9&amp;0&amp;2&amp;1\\\\4&amp;5&amp;1&amp;3\\\\1&amp;7&amp;9&amp;8\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 4 \u043d\u0430 4<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  <\/p>\n<ul>\n<li>\u0413\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u044e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0440\u0430\u0432\u0435\u043d \u043d\u043e\u043c\u0435\u0440\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0435\u0439 (\u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0434\u0435\u0432\u044f\u0442\u043a\u0430\u043c\u0438):\u00a0<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8bd\/062\/237\/8bd062237c504b5b95812493d8cc8864.svg\" alt=\"$\\begin{bmatrix}9&amp;3\\\\3&amp;9\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eac\/ecb\/02f\/eacecb02f482c01da4a151ef5f846aaf.svg\" alt=\"$\\begin{bmatrix}9&amp;3&amp;3\\\\3&amp;9&amp;3\\\\3&amp;3&amp;9\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3d3\/c1b\/583\/3d3c1b583cf9b85946d555e37052f904.svg\" alt=\"$\\begin{bmatrix}9&amp;3&amp;3&amp;3\\\\3&amp;9&amp;3&amp;3\\\\3&amp;3&amp;9&amp;3\\\\3&amp;3&amp;3&amp;9\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  <\/p>\n<ul>\n<li>\u0415\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u0440\u0430\u0432\u043d\u044b 1, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0430\u0432\u043d\u044b 0. \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446:<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3e\/aa7\/b70\/f3eaa7b70605844d9b4a5dd33036a0c3.svg\" alt=\"$\\begin{bmatrix}1&amp;0\\\\0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/632\/43f\/e39\/63243fe39bbfcde5bda60879eaa58b0f.svg\" alt=\"$\\begin{bmatrix}1&amp;0&amp;0\\\\0&amp;1&amp;0\\\\0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9d1\/e89\/f67\/9d1e89f674faefd61e6efeea840a48cf.svg\" alt=\"$\\begin{bmatrix}1&amp;0&amp;0&amp;0\\\\0&amp;1&amp;0&amp;0\\\\0&amp;0&amp;1&amp;0\\\\0&amp;0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0415\u0449\u0435 \u0432\u0430\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 M \u043d\u0430\u00a0 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435 I, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 M, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\u00a0 M * I = M \u0438\u043b\u0438 I * M = M. \u0422.\u0435. \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041a \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043c\u044b \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043f\u043e\u0437\u0434\u043d\u0435\u0435. \u0412 3D-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 4 \u043d\u0430 4.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c, \u0437\u0430\u0447\u0435\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438 \u0437\u0430\u0447\u0435\u043c \u0438\u0445 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c? \u0412 3D-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446 4 \u043d\u0430 4, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u043b\u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0443, \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0432 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 \u0425, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u0423\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 X. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u0432\u043e\u043a\u0440\u0443\u0433 \u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u0443 \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443. \u0423 \u043c\u0430\u0442\u0440\u0438\u0446 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u2013 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 (\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435). \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0438\u0437 100 \u0442\u043e\u0447\u0435\u043a (\u0432\u0435\u0440\u0448\u0438\u043d, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0438\u0436\u0435) \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0432 5 \u0440\u0430\u0437, \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u043e \u0425, \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043d\u0430 30 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0432\u0435\u0440\u0445. \u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u2013 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c. \u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u044b\u0448\u0435, \u043c\u044b, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 100 \u0442\u043e\u0447\u0435\u043a \u0438 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 1-\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u0437\u0430\u0442\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 2-\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u043e \u0425, \u043f\u043e\u0442\u043e\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 3-\u044e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043d\u0430 30 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0432\u0435\u0440\u0445. \u0418\u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0443 \u043d\u0430\u0441 3 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0430 \u0442\u043e\u0447\u0435\u043a 100, \u0437\u043d\u0430\u0447\u0438\u0442, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 300. \u041d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0434\u043b\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u0432 5-\u0442\u044c \u0440\u0430\u0437, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u043e \u0425 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 30 \u0435\u0434. \u0432\u0432\u0435\u0440\u0445, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0441\u0435\u0431\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0423\u043c\u043d\u043e\u0436\u0438\u0432 \u0442\u043e\u0447\u043a\u0443 \u043d\u0430 \u0442\u0430\u043a\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0442\u043e\u0447\u043a\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e. \u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f: 2 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f 3-\u0445 \u043c\u0430\u0442\u0440\u0438\u0446, \u0438 100 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f 100 \u0442\u043e\u0447\u0435\u043a, \u0438\u0442\u043e\u0433\u043e 102 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u2013 \u0442\u043e\u0447\u043d\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c 300 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043e \u044d\u0442\u043e\u0433\u043e. \u0422\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043b\u0438 3 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0432 \u043e\u0434\u043d\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u2013 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0438 \u043c\u044b \u0435\u0433\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  \u041a\u0430\u043a \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0438, \u043d\u043e \u0432 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u0430\u0431\u0437\u0430\u0446\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f \u043e\u0431 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0438\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440. \u0414\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u0438\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 [10, 2, 5] \u0438 \u0435\u0441\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0430:\u00a0  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7c\/e4a\/656\/a7ce4a6564cccfbcbdc635b744fb6155.svg\" alt=\"$\\begin{bmatrix}1&amp;2&amp;1\\\\2&amp;2&amp;1\\\\0&amp;4&amp;3\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 1 \u043d\u0430 3 \u0438\u043b\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 3 \u043d\u0430 1. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 2 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/318\/14d\/b28\/31814db280b473413913f3b1a34383ac.svg\" alt=\"$\\begin{bmatrix}10&amp;2&amp;5\\end{bmatrix} * \\begin{bmatrix}1&amp;2&amp;1\\\\2&amp;2&amp;1\\\\0&amp;4&amp;3\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440, \u043a\u0430\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0443 1 \u043d\u0430 3 (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u0440\u043e\u043a\u0430). \u0422\u0430\u043a\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442.\u043a. \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 (\u0432\u0435\u043a\u0442\u043e\u0440\u0435-\u0441\u0442\u0440\u043e\u043a\u0435) 3 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 3 \u0441\u0442\u0440\u043e\u043a\u0438.<\/td>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/077\/630\/1b5\/0776301b536706654f3c48c358747b50.svg\" alt=\"$\\begin{bmatrix}1&amp;2&amp;1\\\\2&amp;2&amp;1\\\\0&amp;4&amp;3\\end{bmatrix} * \\begin{bmatrix}10\\\\2\\\\5\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440, \u043a\u0430\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0443 3 \u043d\u0430 1 (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446). \u0422\u0430\u043a\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0442.\u043a. \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 3 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 (\u0432\u0435\u043a\u0442\u043e\u0440\u0435-\u0441\u0442\u043e\u043b\u0431\u0446\u0435) 3 \u0441\u0442\u0440\u043e\u043a\u0438.<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440, \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u043d\u0435\u0433\u043e. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445:<\/p>\n<p>  \u0423\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/679\/922\/53e\/67992253e690803f96bcc659ea8570f6.svg\" alt=\"$\\begin{bmatrix}10&amp;2&amp;5\\end{bmatrix} * \\begin{bmatrix}1&amp;2&amp;1\\\\2&amp;2&amp;1\\\\0&amp;4&amp;3\\end{bmatrix} = $\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/403\/6bb\/a6d\/4036bba6d2a97ae0a8ace8bb161fdcbd.svg\" alt=\"$= \\begin{bmatrix}10*1+2*2+5*0&amp;10*2+2*2+5*4&amp;10*1+2*1+5*3\\end{bmatrix} = \\begin{bmatrix}14&amp;44&amp;27\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6b7\/ec4\/4c4\/6b7ec44c48f219ca10c4ca16623ce3fa.svg\" alt=\"$\\begin{bmatrix}1&amp;2&amp;1\\\\2&amp;2&amp;1\\\\0&amp;4&amp;3\\end{bmatrix} * \\begin{bmatrix}10\\\\2\\\\5\\end{bmatrix}=\\begin{bmatrix}1*10+2*5+1*5\\\\2*10+2*2+1*5\\\\0*10+4*2+3*5\\end{bmatrix}=\\begin{bmatrix}19\\\\29\\\\23\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0443\u043c\u043d\u043e\u0436\u0430\u044f \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u0440\u043e\u043a\u0443 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b (\u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043f\u0440\u043e \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c). \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 3D-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u0442\u0440\u043e\u043a\u0443, \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u0442\u043e\u043b\u0431\u0435\u0446. \u0415\u0441\u043b\u0438 \u043c\u044b \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430-\u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0430\u0441\u0442. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0432\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\/\u0442\u043e\u0447\u043a\u0438 (\u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u0441\u0442\u043e\u043b\u0431\u0435\u0446), \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430\/\u0442\u043e\u0447\u043a\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0412 Direct3D, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438 \u0432\u0441\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432 Direct3D \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430-\u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443. \u0412 OpenGL \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0438), \u043a\u0430\u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0438 \u0432\u0441\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446. \u0412 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438 \u0431\u0443\u0434\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c, \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446.<\/p>\n<p>  \u041f\u043e\u0434\u0432\u0435\u0434\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438\u0442\u043e\u0433 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<\/p>\n<ul>\n<li>\u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043d\u0430\u0434 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c (\u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u043e\u0439) \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/li>\n<li>\u0414\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f (\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438 \u0442.\u0434.) \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043c\u0435\u0441\u0442\u0435.<\/li>\n<li>\u0412 3D-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4 \u043d\u0430 4.<\/li>\n<li>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 (\u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0443) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0432 \u0435\u0433\u043e, \u043a\u0430\u043a \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443. \u041d\u043e \u0434\u043b\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430-\u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430-\u0441\u0442\u0440\u043e\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043c\u0430\u0442\u0440\u0438\u0446, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4 \u043d\u0430 4 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u044b \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4 \u043d\u0430 4, \u0442.\u043a. \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 (\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u2026) \u0438\u043c\u0435\u044e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440, \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f.\u00a0\u00a0<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441 Matrix. \u0415\u0449\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438 4 \u043d\u0430 4 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 Matrix4, \u0438 \u044d\u0442\u0430 4 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c \u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b (\u0435\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 4-\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430). \u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 4 \u043d\u0430 4.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f. \u042f \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043c\u044b \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e \u2013 \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u0441\u0447\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.\u00a0 \u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u044b \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043e\u0431\u044a\u0435\u043c\u0430 \u043a\u043e\u0434\u0430, \u0432\u044b \u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0446\u0438\u043a\u043b\u043e\u0432 \u0432\u043e\u043e\u0431\u0449\u0435. \u0423 \u043c\u0435\u043d\u044f \u043a\u043e\u0434 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">class Matrix { \u00a0\u00a0static multiply(a, b) { \u00a0\u00a0\u00a0\u00a0const m = [ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[0, 0, 0, 0], \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[0, 0, 0, 0], \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[0, 0, 0, 0], \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0[0, 0, 0, 0], \u00a0\u00a0\u00a0\u00a0];  \u00a0\u00a0\u00a0\u00a0for (let i = 0; i &lt; 4; i++) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for (let j = 0; j &lt; 4; j++) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0m[i][j] = a[i][0] * b[0][j] + \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a[i][1] * b[1][j] + \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a[i][2] * b[2][j] + \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0a[i][3] * b[3][j]; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0return m; \u00a0\u00a0} } <\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u044b a \u0438 b, \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442 \u0438\u0445 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0436\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 4 \u043d\u0430 4. \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u043c\u0430\u0442\u0440\u0438\u0446\u0443 m \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0443\u044e \u043d\u0443\u043b\u044f\u043c\u0438, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u044f \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0432\u044b \u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 4 \u043d\u0430 4, \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445 \u043b\u0438\u0431\u043e \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u043a\u0430\u043a \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u0432\u044b\u0448\u0435. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0432\u0438\u0434\u0430: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e46\/55a\/7ef\/e4655a7efbfce29f7507f2b133569624.svg\" alt=\"$\\begin{bmatrix}x\\\\y\\\\z\\end{bmatrix}$\" data-tex=\"inline\"><\/math><br \/>  \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4 \u043d\u0430 4 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439. \u041d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0432\u0435\u0434\u044c \u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430-\u0441\u0442\u043e\u043b\u0431\u0446\u0430 3 \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 \u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 4 \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u0427\u0442\u043e \u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u0442\u044c? \u041d\u0443\u0436\u0435\u043d \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0442\u043e\u0433\u0434\u0430 \u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441\u0442\u0430\u043d\u0435\u0442 4 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0432\u043d\u044b \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0443 \u0442\u0430\u043a\u043e\u0439 4-\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e W, \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0432 3D \u0431\u0443\u0434\u0443\u0442 \u0432\u0438\u0434\u0430 [X, Y, Z, W] \u0438 \u0442\u0430\u043a\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 4 \u043d\u0430 4. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b W \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u043e \u0441 \u043d\u0438\u043c \u043c\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 (\u0432\u0435\u0434\u044c \u043d\u0435 \u0437\u0440\u044f \u0443 \u043d\u0430\u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 4 \u043d\u0430 4, \u0430 \u043d\u0435 3 \u043d\u0430 3).\u00a0 \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043b\u0430\u0441\u0441 Vector, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0432\u044b\u0448\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 w. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Vector \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">class Vector { \u00a0\u00a0\u00a0\u00a0x = 0; \u00a0\u00a0\u00a0\u00a0y = 0; \u00a0\u00a0\u00a0\u00a0z = 0; \u00a0\u00a0\u00a0\u00a0w = 1;  \u00a0\u00a0\u00a0\u00a0constructor(x, y, z, w = 1) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.x = x; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.y = y; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.z = z; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.w = w; \u00a0\u00a0\u00a0\u00a0} <\/code><\/pre>\n<p>  \u042f \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b W \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u0439, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 1? \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0438\u043c\u0441\u044f \u043a \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u0443\u043c\u043d\u043e\u0436\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 (\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u043d\u0438\u0436\u0435), \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 W \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0 \u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043e\u0442 1, \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0442 W \u0431\u0443\u0434\u0435\u0442 \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u043c\u044b \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0430 \u0435\u0441\u043b\u0438 \u043c\u044b \u0435\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u043c 1, \u0442\u043e \u043e\u043d \u0432 \u0432\u0435\u043a\u0442\u043e\u0440\u0435 \u0431\u0443\u0434\u0435\u0442, \u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442.\u00a0<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Matrix (\u043c\u043e\u0436\u043d\u043e \u0438 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Vector, \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043d\u0435\u0442) \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f W:<\/p>\n<pre><code class=\"javascript\">static multiplyVector(m, v) { \u00a0\u00a0return new Vector( \u00a0\u00a0\u00a0\u00a0m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] * v.w, \u00a0\u00a0\u00a0\u00a0m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] * v.w, \u00a0\u00a0\u00a0\u00a0m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] * v.w, \u00a0\u00a0\u00a0\u00a0m[3][0] * v.x + m[3][1] * v.y + m[3][2] * v.z + m[3][3] * v.w, \u00a0\u00a0) } <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c 4 \u043d\u0430 4, \u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0441\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 x, y, z, w, \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u044b \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u0438 \u043e\u043d \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c 1 \u043d\u0430 4, \u0442.\u043a. \u044d\u0442\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435. \u041d\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430, \u043c\u044b \u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c.<\/p>\n<p>  \u041a\u043e\u0434 \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438, \u043d\u043e \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0435.<\/p>\n<p>  \u0425\u043e\u0447\u0443 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u044f \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u044e \u043a\u0430\u043a \u0442\u043e\u0447\u043a\u0443 (\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435) \u0442\u0430\u043a \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0442.\u043a. \u043e\u0431\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 x, y, z \u0438 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 w.\u00a0<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u041f\u0435\u0440\u0432\u043e\u0439 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043c\u0430\u0442\u0440\u0438\u0446 \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f (Translation matrix). \u0423\u043c\u043d\u043e\u0436\u0438\u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 (\u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435) \u043e\u043d \u0441\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u0410 \u0432\u043e\u0442 \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/305\/9aa\/0b8\/3059aa0b84a7f16163971372c6444f2b.svg\" alt=\"$\\begin{bmatrix}1&amp;0&amp;0&amp;dx\\\\0&amp;1&amp;0&amp;dy\\\\0&amp;0&amp;1&amp;dz\\\\0&amp;0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0413\u0434\u0435 dx, dy, dz \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0441\u044f\u043c x,y,z \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u044d\u0442\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0435\u0446. \u0422\u0430\u043a\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0438\u043b\u0438 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0435 \u043f\u043e 3D-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u0438\u043c, \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0439\u0442\u0435 \u0438\u0445 \u0441\u0435\u0439\u0447\u0430\u0441, \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u0441\u043e \u0448\u043a\u043e\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.\u00a0 \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0432 \u0442\u0430\u043a\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 [10, 10, 10, 1] (4-\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 W \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c 1) \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0432 \u0438\u0433\u0440\u0435 \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0435\u0433\u043e \u0441\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 10 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u0432\u0435\u0440\u0445, 5 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432\u043f\u0440\u0430\u0432\u043e, \u0438 \u043d\u0430 1 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043e\u0442\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0442 \u044d\u043a\u0440\u0430\u043d\u0430. \u0422\u043e\u0433\u0434\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c [10, 5, -1] ( -1 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0438 \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 Z, \u0442\u0435\u043c \u043e\u043d \u043c\u0435\u043d\u044c\u0448\u0435). \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0435\u0437 \u043c\u0430\u0442\u0440\u0438\u0446, \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u0422\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: [10 + 10, 10 + 5, 10 + -1, 1] = [20, 15, 9, 1] \u2013 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430. \u0423\u043c\u043d\u043e\u0436\u0438\u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432\u044b\u0448\u0435 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b [10, 10, 10, 1], \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u044d\u0442\u043e \u0432 \u043a\u043e\u0434\u0435, \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Drawer, Vector \u0438 Matrix:  <\/p>\n<pre><code class=\"javascript\">const translationMatrix = [ \u00a0\u00a0[1, 0, 0, 10], \u00a0\u00a0[0, 1, 0, 5], \u00a0\u00a0[0, 0, 1, -1], \u00a0\u00a0[0, 0, 0, 1], ] \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 const characterPosition = new Vector(10, 10, 10) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 const newCharacterPosition = Matrix.multiplyVector( \u00a0\u00a0translationMatrix, characterPosition ) console.log(newCharacterPosition) <\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u0443\u0436\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 (translationMatrix), \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (characterPosition) \u0438 \u043f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043b\u0438 \u0435\u0433\u043e \u0441 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0432\u0435\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 console.log (\u044d\u0442\u043e \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0432 JS). \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043d\u0435 JS, \u0442\u043e \u0432\u044b\u0432\u0435\u0434\u0438\u0442\u0435 X, Y, Z \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0430\u0448\u0435\u0433\u043e \u044f\u0437\u044b\u043a\u0430. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438: [20, 15, 9, 1], \u0432\u0441\u0435 \u0441\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b\u0438 \u0432\u044b\u0448\u0435. \u0423 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441, \u0437\u0430\u0447\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0435\u0441\u043b\u0438 \u043c\u044b \u0435\u0433\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0432 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e. \u041e\u0442\u0432\u0435\u0442 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0435\u0433\u043e \u0435\u0449\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043c, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0447\u0442\u043e \u043a\u0430\u043a \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u043d\u0435\u0435, \u043c\u044b \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043c\u043e\u0436\u0435\u043c \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439. \u041c\u0430\u0442\u0440\u0438\u0446\u0443 translationMatrix \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0442\u0443\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u043d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u044d\u0442\u043e\u0439 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0430\u0441\u0442\u043e, \u0442\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u044b\u043d\u0435\u0441\u0435\u043c \u0435\u0435 \u0432 \u043c\u0435\u0442\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Matrix, \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438:  <\/p>\n<pre><code class=\"javascript\">static getTranslation(dx, dy, dz) { \u00a0\u00a0return [ \u00a0\u00a0\u00a0\u00a0[1, 0, 0, dx], \u00a0\u00a0\u00a0\u00a0[0, 1, 0, dy], \u00a0\u00a0\u00a0\u00a0[0, 0, 1, dz], \u00a0\u00a0\u00a0\u00a0[0, 0, 0, 1], \u00a0\u00a0] } <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435\u0441\u044c \u0435\u0449\u0435 \u0440\u0430\u0437 \u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043e dx, dy, dz \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0438 \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440, \u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 W \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0418 \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 0, \u0442\u043e dx, dy, dz, \u043c\u044b \u0431\u044b \u0443\u043c\u043d\u043e\u0436\u0430\u043b\u0438 \u043d\u0430 0 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0431\u044b. \u041d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c W \u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0432\u043d\u043e\u0435 0, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Vector \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0442.\u043a. \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0442\u043e \u0442\u0430\u043a \u0431\u044b \u043c\u044b \u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0438\u043b\u0438 \u0441\u0435\u0431\u044f, \u0438 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043c\u044b \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u0442\u0430\u043a\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0442\u043e \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043b\u043e\u043c\u0430\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442.\u043a. \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 0.<\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">new Vector(x, y, z, 1) \/\/ 1 \u0443 \u043d\u0430\u0441 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c <\/code><\/pre>\n<p>  \u0410 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u043c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">new Vector(x, y, z, 0) <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0438 \u043f\u0440\u0438 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  <strong>\u0412\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/strong><\/p>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441 \u0442\u0435\u043c, \u043a\u0430\u043a \u043d\u0430\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0447\u0435\u0433\u043e-\u0442\u043e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d. \u0412\u0441\u0435 \u0447\u0442\u043e \u043c\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043b\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u2013 \u043b\u0438\u043d\u0438\u0438 \u0438 \u043f\u0438\u043a\u0441\u0435\u043b\u0438. \u041d\u043e \u0434\u0430\u0432\u0430\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u044b\u0432\u0435\u0434\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0443\u0431. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0447\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c. \u0421\u0430\u043c\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u043b\u044e\u0431\u043e\u0439 3D-\u043c\u043e\u0434\u0435\u043b\u0438 \u2013 \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0438 (\u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u044b) \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0435\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c, \u044d\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u043c\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043b\u0438\u043d\u0438\u044f\u043c\u0438,\u00a0 \u043f\u043e\u043b\u0443\u0447\u0438\u043c 3D-\u043c\u043e\u0434\u0435\u043b\u044c (\u0441\u0435\u0442\u043a\u0443 \u043c\u043e\u0434\u0435\u043b\u0438) \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0431\u0435\u0437 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b \u0438 \u0431\u0435\u0437 \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u043d\u043e \u0432\u0441\u0435\u043c\u0443 \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043a\u0443\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438, \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0435\u0433\u043e \u0432\u0435\u0440\u0448\u0438\u043d:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dl\/lr\/a-\/dllra-jkeie7nvzwq_4jxibakti.png\"><\/div>\n<p>  \u041d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0443 \u043a\u0443\u0431\u0430 8 \u0432\u0435\u0440\u0448\u0438\u043d (\u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u044f \u0438\u0445 \u043f\u0440\u043e\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043b). \u0418 \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043b\u0438\u043d\u0438\u044f\u043c\u0438 (\u0440\u0435\u0431\u0440\u0430 \u043a\u0443\u0431\u0430). \u0422.\u0435., \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0443\u0431 \u0438 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043b\u0438\u043d\u0438\u044f\u043c\u0438, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e 8 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u0438 \u0442\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0437 \u043a\u0430\u043a\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0434\u043e \u043a\u0430\u043a\u043e\u0439 \u043d\u0430\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043a\u0443\u0431, \u0432\u0435\u0434\u044c \u0435\u0441\u043b\u0438 \u043c\u044b \u043c\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u0438\u0437 \u0432\u0435\u0440\u0448\u0438\u043d\u044b 0 \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u0443 6, \u0442\u043e \u044d\u0442\u043e \u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u043a\u0443\u0431, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 8 \u0432\u0435\u0440\u0448\u0438\u043d. \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 3D-\u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0442\u044b\u0441\u044f\u0447 \u0432\u0435\u0440\u0448\u0438\u043d, \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043d\u0438\u043a\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0445 \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442. \u041c\u043e\u0434\u0435\u043b\u0438 \u0440\u0438\u0441\u0443\u044e\u0442 \u0432 3D-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430\u0445 \u0438 \u043a\u043e\u0433\u0434\u0430 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442 3D-\u043c\u043e\u0434\u0435\u043b\u044c, \u0432 \u0435\u0435 \u043a\u043e\u0434\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u043c\u044b \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0443\u0447\u0438\u043c\u0441\u044f \u0438 \u043d\u0435 \u0443\u043c\u0435\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u044b 3D-\u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0443\u0431 \u043e\u043f\u0438\u0448\u0435\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u043e\u043d \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439.<\/p>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u043a\u0443\u0431 \u0432\u044b\u0448\u0435, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0435\u0433\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u043e\u0447\u043a\u0435 0, 0, 0 \u0438 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u044d\u0442\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qa\/dy\/s9\/qadys9o74anjuw3xgych_kzer34.png\"><\/div>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u044b 0, \u0438 \u043f\u0443\u0441\u0442\u044c \u043d\u0430\u0448 \u043a\u0443\u0431 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0435\u0439\u0447\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043c\u043e\u0435\u0433\u043e \u043a\u0443\u0431\u0430 \u0431\u0443\u0434\u0443\u0442 2 \u0432 \u0448\u0438\u0440\u0438\u043d\u0443, 2 \u0432 \u0432\u044b\u0441\u043e\u0442\u0443 \u0438 2 \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0443, \u0442.\u0435. 2 \u043d\u0430 2 \u043d\u0430 2. \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u0430 0 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0432\u0435\u0435 \u0446\u0435\u043d\u0442\u0440\u0430 0, 0, 0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0437\u0430\u0434\u0430\u043c X = -1, \u0442.\u043a. \u0447\u0435\u043c \u043b\u0435\u0432\u0435\u0435, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 X, \u0442\u0430\u043a\u0436\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 0 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435 \u0446\u0435\u043d\u0442\u0440\u0430 0, 0, 0, \u0430 \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 Y, \u044f \u0437\u0430\u0434\u0430\u043c \u0441\u0432\u043e\u0435\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u0435 Y = 1, \u0442\u0430\u043a\u0436\u0435 Z \u0434\u043b\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u044b 0, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043b\u0438\u0436\u0435 \u043a \u044d\u043a\u0440\u0430\u043d\u0443 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0442\u043e\u0447\u043a\u0435 0, 0, 0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d Z = 1, \u0432\u0435\u0434\u044c \u0432 \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, Z \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b -1, 1, 1 \u0434\u043b\u044f \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f 7-\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u044d\u0442\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435, \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0446\u0438\u043a\u043b\u0435, \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u043c\u0430\u0441\u0441\u0438\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0438\u0436\u0435 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Drawer, Vector, Marix):<\/p>\n<pre><code class=\"javascript\">\/\/ Cube vertices const vertices = [ \u00a0\u00a0new Vector(-1, 1, 1), \/\/ 0 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(-1, 1, -1), \/\/ 1 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(1, 1, -1), \/\/ 2 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(1, 1, 1), \/\/ 3 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(-1, -1, 1), \/\/ 4 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(-1, -1, -1), \/\/ 5 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(1, -1, -1), \/\/ 6 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u00a0\u00a0new Vector(1, -1, 1), \/\/ 7 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 ]; <\/code><\/pre>\n<p>  \u041a\u0430\u0436\u0434\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u044f \u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0432 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Vector, \u044d\u0442\u043e \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u043b\u0443\u0447\u0448\u0435 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435), \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0432\u0435\u0440\u0448\u0438\u043d \u043a\u0443\u0431\u0430 \u043a\u0430\u043a \u043f\u0438\u043a\u0441\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0443\u0431\u0430 2 \u043d\u0430 2 \u043d\u0430 2 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043a\u0443\u0431, \u0447\u0442\u043e\u0431\u044b \u0432 \u0442.\u0447. \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0435\u0433\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043c. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c\u0438, \u0434\u0430\u0436\u0435 \u0435\u0449\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0443 \u043d\u0430\u0441, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0434\u043e \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043a\u0430\u043b\u044f\u0440\u0430\u043c\u0438.<\/p>\n<p>  \u041f\u0440\u043e\u0441\u0442\u043e \u0442\u043e\u0447\u043a\u0438 \u043a\u0443\u0431\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e, \u0442.\u043a. \u0432\u0441\u0435 \u0447\u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u2013 \u044d\u0442\u043e 8 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u0431 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e drawLine \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u041d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u0437 \u043a\u0430\u043a\u0438\u0445 \u0432\u0435\u0440\u0448\u0438\u043d \u0432 \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0430\u0441 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043b\u0438\u043d\u0438\u0438. \u0412\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0443\u0431\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u0435\u0449\u0435 \u0440\u0430\u0437 \u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u043b\u0438\u043d\u0438\u0439 (\u0438\u043b\u0438 \u0440\u0435\u0431\u0435\u0440). \u0422\u0430\u043a\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0447\u0442\u043e \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0446\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0434\u043d\u0430 \u0438\u0437 \u043b\u0438\u043d\u0438\u0439 (\u0432\u0435\u0440\u0445\u043d\u044f\u044f \u0431\u043b\u0438\u0436\u043d\u044f\u044f) \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u0438\u0437 \u0432\u0435\u0440\u0448\u0438\u043d\u044b 0 \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u0443 3, \u0438\u043b\u0438 \u0436\u0435 \u0438\u0437 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u00a0 [-1, 1, 1] \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b [1, 1, 1]. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0443\u0431\u0430, \u043d\u043e \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 12 \u043b\u0438\u043d\u0438\u0439 \u0438 \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446, \u0442.\u0435. 2 \u0442\u043e\u0447\u043a\u0438, \u0442\u043e\u0433\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u0431 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f 24 \u0442\u043e\u0447\u043a\u0438? \u042d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0443\u0431\u0430 \u0435\u0449\u0435 \u0440\u0430\u0437 \u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u0443 \u043a\u0443\u0431\u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u043b\u0438\u043d\u0438\u044f \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u0449\u0438\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u0435 0 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f 3 \u043b\u0438\u043d\u0438\u0438, \u0438 \u0442\u0430\u043a \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u043e\u0439. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u0447\u0430\u043b\u0430 \u0438 \u043a\u043e\u043d\u0446\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043b\u0438\u043d\u0438\u0438, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 vertices \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u0438 \u043b\u0438\u043d\u0438\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u043a\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u043e\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d, \u043f\u043e 2 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043b\u0438\u043d\u0438\u044e (\u043d\u0430\u0447\u0430\u043b\u043e \u043b\u0438\u043d\u0438\u0438 \u0438 \u043a\u043e\u043d\u0435\u0446). \u0410 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u0435\u0435, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043b\u0438\u043d\u0438\u0438, \u043c\u044b \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0434\u043e\u0441\u0442\u0430\u043d\u0435\u043c \u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 vertices. \u041c\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u043b\u0438\u043d\u0438\u0439 (\u044f \u043d\u0430\u0437\u0432\u0430\u043b \u0435\u0433\u043e edges, \u0442.\u043a. \u044d\u0442\u043e \u0440\u0435\u0431\u0440\u0430 \u043a\u0443\u0431\u0430) \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u043d\u0438\u0436\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">\/\/ Cube edges const edges = [ \u00a0\u00a0[0, 1], \u00a0\u00a0[1, 2], \u00a0\u00a0[2, 3], \u00a0\u00a0[3, 0],  \u00a0\u00a0[0, 4], \u00a0\u00a0[1, 5], \u00a0\u00a0[2, 6], \u00a0\u00a0[3, 7],  \u00a0\u00a0[4, 5], \u00a0\u00a0[5, 6], \u00a0\u00a0[6, 7], \u00a0\u00a0[7, 4], ]; <\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 12 \u043f\u0430\u0440 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u043f\u043e 2 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0432\u0435\u0440\u0448\u0438\u043d \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043b\u0438\u043d\u0438\u044e.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0435\u0449\u0435 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442 \u043d\u0430\u0448 \u043a\u0443\u0431, \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0435\u0433\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (Scale Matrix) \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/72c\/b02\/7fa\/72cb027fa96889b064d7aea83a9acd26.svg\" alt=\"$\\begin{bmatrix}sx&amp;0&amp;0&amp;0\\\\0&amp;sy&amp;0&amp;0\\\\0&amp;0&amp;sz&amp;0\\\\0&amp;0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b sx, sy, sz \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u0432\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442. \u0415\u0441\u043b\u0438 \u043c\u044b \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c 10, 10, 10 \u0432\u043c\u0435\u0441\u0442\u043e sx, sy, sz, \u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u044d\u0442\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043a\u0443\u0431\u0430, \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0447\u0442\u043e \u043d\u0430\u0448 \u043a\u0443\u0431 \u0432 \u0434\u0435\u0441\u044f\u0442\u044c \u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u043e\u043d \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 2 \u043d\u0430 2 \u043d\u0430 2, \u0430 20 \u043d\u0430 20 \u043d\u0430 20.<\/p>\n<p>  \u0414\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043c\u0435\u0442\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Matrix, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0441 \u0443\u0436\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438:<\/p>\n<pre><code class=\"javascript\">static getScale(sx, sy, sz) { \u00a0\u00a0return [ \u00a0\u00a0\u00a0\u00a0[sx, 0, 0, 0], \u00a0\u00a0\u00a0\u00a0[0, sy, 0, 0], \u00a0\u00a0\u00a0\u00a0[0, 0, sz, 0], \u00a0\u00a0\u00a0\u00a0[0, 0, 0, 1], \u00a0\u00a0] } <\/code><\/pre>\n<p>  <strong>\u041a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/strong><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u0443\u0431 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432\u0435\u0440\u0448\u0438\u043d, \u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u0434\u0432\u0443\u0445\u043f\u0438\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u0443\u0431, \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043b\u0435\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u044d\u043a\u0440\u0430\u043d\u0430, \u0442.\u043a. \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 canvas \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c.\u00a0 \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043c \u0446\u0438\u043a\u043b\u043e\u043c \u043f\u043e \u0432\u0441\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c \u043a\u0443\u0431\u0430 \u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u0438\u0445 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0443\u0431 \u0431\u043e\u043b\u044c\u0448\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0435 \u0438 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043a\u0443\u0431 \u043d\u0435 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043b\u0435\u0432\u043e\u043c \u0443\u0433\u043b\u0443, \u0430 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u044d\u043a\u0440\u0430\u043d\u0430, \u0443 \u043c\u0435\u043d\u044f \u043a\u043e\u0434 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u0432\u0435\u0440\u0448\u0438\u043d \u0441 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 edges, \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">const sceneVertices = [] for(let i = 0 ; i &lt; vertices.length ; i++) { \u00a0\u00a0let vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0Matrix.getScale(100, 100, 100), \u00a0\u00a0\u00a0\u00a0vertices[i] \u00a0\u00a0);  \u00a0\u00a0vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0Matrix.getTranslation(400, -300, 0), \u00a0\u00a0\u00a0\u00a0vertex \u00a0\u00a0);  \u00a0\u00a0sceneVertices.push(vertex); } <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043a\u0443\u0431\u0430, \u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 sceneVertices, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0445\u043e\u0442\u0435\u0442\u044c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u0443\u0431\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445, \u0438 \u0435\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b, \u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0443\u0431 \u0443\u0436\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0442.\u043a. \u043d\u0435 \u0438\u0437 \u0447\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u044b \u043f\u0435\u0440\u0432\u044b\u043c \u043a\u0443\u0431\u043e\u043c. \u0412 \u043a\u043e\u0434\u0435 \u0432\u044b\u0448\u0435 \u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u0443\u0431 \u0432 100 \u0440\u0430\u0437 \u043f\u043e \u0432\u0441\u0435\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044e \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 100, 100, 100, \u0438 \u0442\u0430\u043a\u0436\u0435 \u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u043b \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043a\u0443\u0431\u0430 \u043f\u0440\u0430\u0432\u0435\u0435 \u0438 \u043d\u0438\u0436\u0435 \u043d\u0430 400 \u0438 -300 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 \u043d\u0430\u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u044b canvas \u0441 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 800 \u043d\u0430 600, \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0448\u0438\u0440\u0438\u043d\u044b \u0438 \u0432\u044b\u0441\u043e\u0442\u044b \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u2013 \u0446\u0435\u043d\u0442\u0440.<\/p>\n<p>  \u0421 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c \u043c\u044b \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0438, \u043d\u043e \u0435\u0449\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f drawLine \u0438 \u043c\u0430\u0441\u0441\u0438\u0432 edges, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0438\u0436\u0435 \u0446\u0438\u043a\u043b\u0430 \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0446\u0438\u043a\u043b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 edges \u0438 \u0432 \u043d\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438:<\/p>\n<pre><code class=\"javascript\">drawer.clearSurface()  for (let i = 0, l = edges.length ; i &lt; l ; i++) { \u00a0\u00a0const e = edges[i]  \u00a0\u00a0drawer.drawLine( \u00a0\u00a0\u00a0\u00a0sceneVertices[e[0]].x, \u00a0\u00a0\u00a0\u00a0sceneVertices[e[0]].y, \u00a0\u00a0\u00a0\u00a0sceneVertices[e[1]].x, \u00a0\u00a0\u00a0\u00a0sceneVertices[e[1]].y, \u00a0\u00a0\u00a0\u00a00, 0, 255 \u00a0\u00a0) }  ctx.putImageData(imageData, 0, 0) <\/code><\/pre>\n<p>  \u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u0441\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430 \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u043c\u0435\u0442\u043e\u0434 clearSurface, \u0437\u0430\u0442\u0435\u043c \u044f \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044e \u0432\u0441\u0435 \u0433\u0440\u0430\u043d\u0438 \u043a\u0443\u0431\u0430 \u0438 \u0440\u0438\u0441\u0443\u044e \u043a\u0443\u0431 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0441\u0438\u043d\u0435\u0433\u043e \u0446\u0432\u0435\u0442\u0430 (0, 0, 255), \u0430 \u0441\u0430\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043b\u0438\u043d\u0438\u0439 \u044f \u0431\u0435\u0440\u0443 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 sceneVertices, \u0442.\u043a. \u0442\u0430\u043c \u043b\u0435\u0436\u0430\u0442 \u0443\u0436\u0435 \u043e\u0442\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0446\u0438\u043a\u043b\u0435, \u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u044d\u0442\u0438\u0445 \u0432\u0435\u0440\u0448\u0438\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0435\u0440\u0448\u0438\u043d \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 vertices, \u0442.\u043a. \u044f \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u0438\u0445 \u0438 \u043b\u043e\u0436\u0438\u043b \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 sceneVertices \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430.\u00a0<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043a\u043e\u0434, \u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435. \u042d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 Y \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432\u0432\u0435\u0440\u0445, \u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 canvas \u0432\u043d\u0438\u0437. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f,\u00a0 \u0447\u0442\u043e \u043d\u0430\u0448 \u043a\u0443\u0431 \u0435\u0441\u0442\u044c, \u043d\u043e \u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438 \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Drawer \u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043f\u043e Y (\u043e\u0442\u0437\u0435\u0440\u043a\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c). \u041f\u043e\u043a\u0430 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043a\u043e\u0434 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u0443 \u043c\u0435\u043d\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">drawPixel(x, y, r, g, b) { \u00a0\u00a0const offset = (this.width * -y + x) * 4;  \u00a0\u00a0if (x &gt;= 0 &amp;&amp; x &lt; this.width &amp;&amp; -y &gt;= 0 &amp;&amp; y &lt; this.height) { \u00a0\u00a0\u00a0\u00a0this.surface[offset] = r; \u00a0\u00a0\u00a0\u00a0this.surface[offset + 1] = g; \u00a0\u00a0\u00a0\u00a0this.surface[offset + 2] = b; \u00a0\u00a0\u00a0\u00a0this.surface[offset + 3] = 255; \u00a0\u00a0} } <\/code><\/pre>\n<p>  \u0412\u0438\u0434\u043d\u043e \u0447\u0442\u043e \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f offset, Y \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u043c\u0438\u043d\u0443\u0441 \u0438 \u043e\u0441\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043d\u0430\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u0442\u0430\u043a\u0436\u0435 \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432\u044b\u0445\u043e\u0434\u0430 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u0412 \u043a\u043b\u0430\u0441\u0441\u0435 Drawer \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c \u043a \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u0432\u0435\u0441\u044c \u043a\u043b\u0430\u0441\u0441 Drawer \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0439 Drawer \u043d\u0430 \u044d\u0442\u043e\u0442:  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Drawer<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">class Drawer { \u00a0\u00a0surface = null; \u00a0\u00a0width = 0; \u00a0\u00a0height = 0;  \u00a0\u00a0constructor(surface, width, height) { \u00a0\u00a0\u00a0\u00a0this.surface = surface; \u00a0\u00a0\u00a0\u00a0this.width = width; \u00a0\u00a0\u00a0\u00a0this.height = height; \u00a0\u00a0}  \u00a0\u00a0drawPixel(x, y, r, g, b) { \u00a0\u00a0\u00a0\u00a0const offset = (this.width * -y + x) * 4;  \u00a0\u00a0\u00a0\u00a0if (x &gt;= 0 &amp;&amp; x &lt; this.width &amp;&amp; -y &gt;= 0 &amp;&amp; y &lt; this.height) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.surface[offset] = r; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.surface[offset + 1] = g; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.surface[offset + 2] = b; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.surface[offset + 3] = 255; \u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0}  \u00a0\u00a0drawLine(x1, y1, x2, y2, r = 0, g = 0, b = 0) { \u00a0\u00a0\u00a0\u00a0const round = Math.trunc; \u00a0\u00a0\u00a0\u00a0x1 = round(x1); \u00a0\u00a0\u00a0\u00a0y1 = round(y1); \u00a0\u00a0\u00a0\u00a0x2 = round(x2); \u00a0\u00a0\u00a0\u00a0y2 = round(y2);  \u00a0\u00a0\u00a0\u00a0const c1 = y2 - y1; \u00a0\u00a0\u00a0\u00a0const c2 = x2 - x1;  \u00a0\u00a0\u00a0\u00a0const length = Math.max( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Math.abs(c1), \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Math.abs(c2) \u00a0\u00a0\u00a0\u00a0);  \u00a0\u00a0\u00a0\u00a0const xStep = c2 \/ length; \u00a0\u00a0\u00a0\u00a0const yStep = c1 \/ length;  \u00a0\u00a0\u00a0\u00a0for (let i = 0 ; i &lt;= length ; i++) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.drawPixel( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Math.trunc(x1 + xStep * i), \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Math.trunc(y1 + yStep * i), \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0r, g, b, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0); \u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0}  \u00a0\u00a0clearSurface() { \u00a0\u00a0\u00a0\u00a0const surfaceSize = this.width * this.height * 4; \u00a0\u00a0\u00a0\u00a0for (let i = 0; i &lt; surfaceSize; i++) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.surface[i] = 0; \u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0} }  const drawer = new Drawer( \u00a0\u00a0imageData.data, \u00a0\u00a0imageData.width, \u00a0\u00a0imageData.height ); <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043a\u043e\u0434, \u0442\u043e \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qs\/gv\/jk\/qsgvjklwi1hptoguip_2szgq5qq.png\"><\/div>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0435\u0441\u0442\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0445\u043e\u0442\u044f \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0443\u0431, \u0432 \u0447\u0435\u043c \u0436\u0435 \u0434\u0435\u043b\u043e? \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u2013 \u044d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043a\u0443\u0431, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043d \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u043e\u0432\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u0440\u0430\u043d\u0435\u0439 (\u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439) \u043a \u043d\u0430\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043d\u0435 \u0432\u0438\u0434\u0438\u043c \u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u044f\u043c\u0438, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u043d\u044f\u044f \u0433\u0440\u0430\u043d\u044c \u043a\u0443\u0431\u0430 \u043d\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u0441 \u043e\u0442\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c, \u043a\u0430\u043a \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0443\u0431, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u044b\u043b \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u0435\u0440\u0448\u0438\u043d. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c 3D-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 3 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0442.\u043a. \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u0435\u0439 X, Y \u0438\u043b\u0438 Z, \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0441\u0438, \u0431\u0443\u0434\u0435\u0442 \u0441\u0432\u043e\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 (Rotation matrix) (\u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u043d\u043e \u044d\u0442\u043e \u0442\u0435\u043c\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439). \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442:  <\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c50\/958\/09a\/c5095809a33c030057793096d3628d45.svg\" alt=\"$R_x(a)=\\begin{bmatrix}1&amp;0&amp;0&amp;0\\\\0&amp;cos(a)&amp;-sin(a)&amp;0\\\\0&amp;sin(a)&amp;cos(a)&amp;0\\\\0&amp;0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 X  <\/td>\n<\/tr>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/301\/53f\/4e4\/30153f4e430a1413b26b1737a253717e.svg\" alt=\"$R_y(a)\\begin{bmatrix}cos(a)&amp;0&amp;sin(a)&amp;0\\\\0&amp;1&amp;0&amp;0\\\\-sin(a)&amp;0&amp;cos(a)&amp;0\\\\0&amp;0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 Y  <\/td>\n<\/tr>\n<tr>\n<td>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bb8\/f3d\/774\/bb8f3d77414b8fd9ffdf9480f04cef2e.svg\" alt=\"$R_z(a)\\begin{bmatrix}cos(a)&amp;-sin(a)&amp;0&amp;0\\\\sin(a)&amp;cos(a)&amp;0&amp;0\\\\0&amp;0&amp;1&amp;0\\\\0&amp;0&amp;0&amp;1\\end{bmatrix}$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 Z  <\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043a\u0443\u0431\u0430 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043c\u0430\u0442\u0440\u0438\u0446, \u0442\u043e \u043a\u0443\u0431 \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0443\u0433\u043e\u043b (a) \u0432\u043e\u043a\u0440\u0443\u0433 \u0442\u043e\u0439 \u043e\u0441\u0438, \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u043c. \u0422\u0443\u0442 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u0441\u0435\u0439 \u0438 \u043d\u0430 \u043d\u0438\u0445 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0438\u0436\u0435. \u0418\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043c\u0430\u0442\u0440\u0438\u0446 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 2 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sin \u0438 cos \u0438 \u0432 JavaScript \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043b\u044f \u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f Math.sin(a) \u0438 Math.cos(a), \u043d\u043e \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0440\u0430\u0434\u0438\u0430\u043d\u043d\u043e\u0439 \u043c\u0435\u0440\u043e\u0439 \u0443\u0433\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0441\u0430\u043c\u043e\u0439 \u0443\u0434\u043e\u0431\u043d\u043e\u0439, \u0435\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c. \u041c\u043d\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 (\u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0430\u044f \u043c\u0435\u0440\u0430), \u0447\u0442\u043e \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u043d\u043e\u0439 \u043c\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c <code>Pi \/ 2<\/code> (\u0412 JS \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Pi \u044d\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 Math.PI). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432 \u043a\u043b\u0430\u0441\u0441 Matrix \u0434\u043e\u0431\u0430\u0432\u0438\u043c 3 \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f, \u0441 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u044b\u043c \u0443\u0433\u043b\u043e\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432 \u0433\u0440\u0430\u0434\u0443\u0441\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u044b, \u0442.\u043a. \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 sin\u00a0 \/ cos:<\/p>\n<pre><code class=\"javascript\">static getRotationX(angle) { \u00a0\u00a0const rad = Math.PI \/ 180 * angle;  \u00a0\u00a0return [ \u00a0\u00a0\u00a0\u00a0[1, 0, 0, 0], \u00a0\u00a0\u00a0\u00a0[0, Math.cos(rad), -Math.sin(rad), 0], \u00a0\u00a0\u00a0\u00a0[0, Math.sin(rad), Math.cos(rad), 0], \u00a0\u00a0\u00a0\u00a0[0, 0, 0, 1], \u00a0\u00a0]; }  static getRotationY(angle) { \u00a0\u00a0const rad = Math.PI \/ 180 * angle;  \u00a0\u00a0return [ \u00a0\u00a0\u00a0\u00a0[Math.cos(rad), 0, Math.sin(rad), 0], \u00a0\u00a0\u00a0\u00a0[0, 1, 0, 0], \u00a0\u00a0\u00a0\u00a0[-Math.sin(rad), 0, Math.cos(rad), 0], \u00a0\u00a0\u00a0\u00a0[0, 0, 0, 1], \u00a0\u00a0]; }  static getRotationZ(angle) { \u00a0\u00a0const rad = Math.PI \/ 180 * angle;  \u00a0\u00a0return [ \u00a0\u00a0\u00a0\u00a0[Math.cos(rad), -Math.sin(rad), 0, 0], \u00a0\u00a0\u00a0\u00a0[Math.sin(rad), Math.cos(rad), 0, 0], \u00a0\u00a0\u00a0\u00a0[0, 0, 1, 0], \u00a0\u00a0\u00a0\u00a0[0, 0, 0, 1], \u00a0\u00a0]; } <\/code><\/pre>\n<p>  \u0412\u0441\u0435 3 \u043c\u0435\u0442\u043e\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043c\u044b \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u0430\u0445 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u0443\u0433\u043b\u044b \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sin \u0438 cos. \u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0430\u044f, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0432 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445, \u0441 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2013 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u044d\u0442\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043b\u0438 \u0434\u043b\u044f \u043d\u0430\u0441 \u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0435.<\/p>\n<p>  \u0412\u044b\u0448\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 2 \u0446\u0438\u043a\u043b\u0430, \u043f\u0435\u0440\u0432\u044b\u0439 \u2013 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u0432\u0442\u043e\u0440\u043e\u0439 \u2013 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043b\u0438\u043d\u0438\u0438 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432\u0435\u0440\u0448\u0438\u043d, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0432\u0435\u0440\u0448\u0438\u043d \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043a\u043e\u0434\u0430 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0431\u0435\u0440\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0438 \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u043d\u0435\u0439 \u0440\u0430\u0437\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u0441\u0434\u0432\u0438\u0433, \u043f\u043e\u0432\u043e\u0440\u043e\u0442, \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443, \u043a\u0430\u043a \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0446\u0438\u043a\u043b \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u043e\u043c\u0438\u043c\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0435\u0449\u0435 \u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0435\u0439. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u043f\u043e\u0432\u0435\u0440\u043d\u0443 \u0432\u043e\u043a\u0440\u0443\u0433 X, \u043f\u043e\u0442\u043e\u043c \u0432\u043e\u043a\u0440\u0443\u0433 Y, \u0437\u0430\u0442\u0435\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0443 \u0435\u0435 (2 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c), \u0438\u0442\u043e\u0433\u043e \u0432\u0435\u0441\u044c \u043a\u043e\u0434 \u0446\u0438\u043a\u043b\u0430 \u0443 \u043c\u0435\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<pre><code class=\"javascript\">for(let i = 0 ; i &lt; vertices.length ; i++) { \u00a0\u00a0let vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0Matrix.getRotationX(20), \u00a0\u00a0\u00a0\u00a0vertices[i] \u00a0\u00a0);  \u00a0\u00a0vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0Matrix.getRotationY(20), \u00a0\u00a0\u00a0\u00a0vertex \u00a0\u00a0);  \u00a0\u00a0vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0Matrix.getScale(100, 100, 100), \u00a0\u00a0\u00a0\u00a0vertex \u00a0\u00a0);  \u00a0\u00a0vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0Matrix.getTranslation(400, -300, 0), \u00a0\u00a0\u00a0\u00a0vertex \u00a0\u00a0);  \u00a0\u00a0sceneVertices.push(vertex); } <\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044f \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u043b \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 X \u043d\u0430 20 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u043f\u043e\u0442\u043e\u043c \u0432\u043e\u043a\u0440\u0443\u0433 Y \u043d\u0430 20 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0438 2 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0431\u044b\u043b\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442\u043e \u0432\u0430\u0448 \u043a\u0443\u0431, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u043c:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cz\/5v\/uc\/cz5vucuyegtr9lb6araumuvho-o.png\"><\/div>\n<p>  \u0423 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0435\u0439 \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u0442\u0435 \u043a\u0443\u0431 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 Y, \u0430 \u043f\u043e\u0442\u043e\u043c \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 X, \u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f:<\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cz\/5v\/uc\/cz5vucuyegtr9lb6araumuvho-o.png\"><\/div>\n<p>  <\/td>\n<td>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gr\/ig\/gn\/griggnzvdahbboqfd6cx6ddjvlm.png\"><\/div>\n<p>  <\/td>\n<\/tr>\n<tr>\n<td>\u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430 20 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 X, \u0437\u0430\u0442\u0435\u043c \u043d\u0430 20 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 Y<\/td>\n<td>\u041f\u043e\u0432\u043e\u0440\u043e\u0442 \u043d\u0430 20 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 Y, \u0437\u0430\u0442\u0435\u043c \u043d\u0430 20 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 X<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0415\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043a\u0443\u0431 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u043e \u043e\u0441\u0438 \u0425, \u0437\u0430\u0442\u0435\u043c \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u043e \u043e\u0441\u0438 Y, \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 Z, \u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 Z, \u043e\u0442\u043c\u0435\u043d\u0438\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u0432\u043e\u043a\u0440\u0443\u0433 \u0425, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u0430\u043a \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u0444\u0438\u0433\u0443\u0440\u0443 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 Y. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0432\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 (\u0438\u043b\u0438 \u043a\u0443\u0431\u0438\u0447\u0435\u0441\u043a\u0438\u0439) \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0440\u0443\u043a\u0438 (\u043d\u0430\u043f\u0440. \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043a\u0443\u0431\u0438\u043a \u0420\u0443\u0431\u0438\u043a\u0430), \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0425, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 Y \u0438 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0432\u043e\u043a\u0440\u0443\u0433 Z \u0438 \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u043e\u043d \u043a \u0432\u0430\u043c \u0441\u0442\u0430\u043b, \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441 \u0437\u0430\u043f\u043e\u043c\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0443\u0431\u0440\u0430\u0432 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u044b X \u0438 Z, \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u043a\u0440\u0443\u0433 Y \u2014 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439. \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0438 \u0432\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a\u043e\u0435 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0441 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442, \u043d\u043e \u043c\u044b \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0435\u0449\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0435\u043c \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 (\u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441\u0435\u0439\u0447\u0430\u0441, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u00ab\u0448\u0430\u0440\u043d\u0438\u0440\u043d\u044b\u0439 \u0437\u0430\u043c\u043e\u043a\u00bb).<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u0434, \u0432\u044b\u0448\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u043f\u0443\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0435 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 X, \u0437\u0430\u0442\u0435\u043c \u0432\u043e\u043a\u0440\u0443\u0433 Y, \u0437\u0430\u0442\u0435\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430, \u0434\u043e \u0446\u0438\u043a\u043b\u0430, \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043c \u0432\u0441\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0430 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0431\u0443\u0434\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u043b\u0438\u0448\u044c \u043d\u0430 \u043e\u0434\u043d\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0443 \u043c\u0435\u043d\u044f \u043a\u043e\u0434 \u0432\u044b\u0448\u0435\u043b \u0442\u0430\u043a\u0438\u043c:<\/p>\n<pre><code class=\"javascript\">let matrix = Matrix.getRotationX(20);  matrix = Matrix.multiply( \u00a0\u00a0Matrix.getRotationY(20), \u00a0\u00a0matrix );  matrix = Matrix.multiply( \u00a0\u00a0Matrix.getScale(100, 100, 100), \u00a0\u00a0matrix, );  matrix = Matrix.multiply( \u00a0\u00a0Matrix.getTranslation(400, -300, 0), \u00a0\u00a0matrix, );  const sceneVertices = []; for(let i = 0 ; i &lt; vertices.length ; i++) { \u00a0\u00a0let vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0matrix, \u00a0\u00a0\u00a0\u00a0vertices[i] \u00a0\u00a0);  \u00a0\u00a0sceneVertices.push(vertex); } <\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0446\u0438\u043a\u043b\u0430 1 \u0440\u0430\u0437, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e 1 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434, \u0442\u043e \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u043a\u0443\u0431\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u043c.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0443\u044e \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2013 \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0443\u0433\u043e\u043b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438 Y \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0443\u0434\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0443\u0433\u043e\u043b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0441\u0438\u00a0 Y \u043d\u0430 1 \u0433\u0440\u0430\u0434\u0443\u0441, \u043a\u0430\u0436\u0434\u044b\u0435 100 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043e\u0434 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e setInterval, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432 1-\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041a\u043e\u0434 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0441 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"javascript\">let angle = 0 setInterval(() =&gt; { \u00a0\u00a0let matrix = Matrix.getRotationX(20)  \u00a0\u00a0matrix = Matrix.multiply( \u00a0\u00a0\u00a0\u00a0Matrix.getRotationY(angle += 1), \u00a0\u00a0\u00a0\u00a0matrix \u00a0\u00a0)  \u00a0\u00a0matrix = Matrix.multiply( \u00a0\u00a0\u00a0\u00a0Matrix.getScale(100, 100, 100), \u00a0\u00a0\u00a0\u00a0matrix, \u00a0\u00a0)  \u00a0\u00a0matrix = Matrix.multiply( \u00a0\u00a0\u00a0\u00a0Matrix.getTranslation(400, -300, 0), \u00a0\u00a0\u00a0\u00a0matrix, \u00a0\u00a0)  \u00a0\u00a0const sceneVertices = [] \u00a0\u00a0for(let i = 0 ; i &lt; vertices.length ; i++) { \u00a0\u00a0\u00a0\u00a0let vertex = Matrix.multiplyVector( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0matrix, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0vertices[i] \u00a0\u00a0\u00a0\u00a0)  \u00a0\u00a0\u00a0\u00a0sceneVertices.push(vertex) \u00a0\u00a0}  \u00a0\u00a0drawer.clearSurface()  \u00a0\u00a0for (let i = 0, l = edges.length ; i &lt; l ; i++) { \u00a0\u00a0\u00a0\u00a0const e = edges[i]  \u00a0\u00a0\u00a0\u00a0drawer.drawLine( \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sceneVertices[e[0]].x, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sceneVertices[e[0]].y, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sceneVertices[e[1]].x, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sceneVertices[e[1]].y, \u00a0\u00a0\u00a0\u00a0\u00a0\u00a00, 0, 255 \u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0}  \u00a0\u00a0ctx.putImageData(imageData, 0, 0) }, 100) <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0438\u043c:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6s\/jp\/cn\/6sjpcnle6imzzfntqvxfnpzy1bq.gif\"><\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u0447\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u2013 \u0432\u044b\u0432\u043e\u0434 \u043e\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e \u0432\u043e\u043a\u0440\u0443\u0433 \u0447\u0435\u0433\u043e \u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448 \u043a\u0443\u0431. \u041e\u0441\u044c Y \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u0432\u0432\u0435\u0440\u0445, \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0432 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043e\u0441\u044c X \u2013 \u0432\u043f\u0440\u0430\u0432\u043e, \u0442\u043e\u0436\u0435 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0430 \u043e\u0441\u044c Z, \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0432\u043d\u0438\u0437 \u0438 \u0432\u043b\u0435\u0432\u043e (\u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438) \u0434\u043b\u0438\u043d\u043d\u043e\u0439 150 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u0440\u0430\u0432\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438, \u044d\u0442\u043e \u043e\u0441\u0438\u00a0 X, Y, \u0442.\u043a. \u0438\u0445 \u043b\u0438\u043d\u0438\u044f \u0441\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438. \u041f\u043e\u0441\u043b\u0435 \u0446\u0438\u043a\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0438\u0441\u0443\u0435\u0442 \u043a\u0443\u0431 (\u0446\u0438\u043a\u043b \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 edges) \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 X, Y \u043e\u0441\u0435\u0439:<\/p>\n<pre><code class=\"javascript\">const center = new Vector(400, -300, 0) drawer.drawLine( \u00a0\u00a0center.x, center.y, \u00a0\u00a0center.x, center.y + 200, \u00a0\u00a0150, 150, 150 )  drawer.drawLine( \u00a0\u00a0center.x, center.y, \u00a0\u00a0center.x + 200, center.y, \u00a0\u00a0150, 150, 150 ) <\/code><\/pre>\n<p>  \u0412\u0435\u043a\u0442\u043e\u0440 center \u044d\u0442\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u043e\u043a\u043d\u0430 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f, \u0442.\u043a. \u0443 \u043d\u0430\u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b 800 \u043d\u0430 600, \u0430 -300 \u0434\u043b\u044f Y \u044f \u0443\u043a\u0430\u0437\u0430\u043b, \u0442.\u043a. \u0444\u0443\u043d\u043a\u0446\u0438\u044f drawPixel \u043f\u0435\u0440\u0435\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 Y \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u0434\u043b\u044f canvas (\u0432 canvas Y \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432\u043d\u0438\u0437). \u0417\u0430\u0442\u0435\u043c \u043c\u044b \u0440\u0438\u0441\u0443\u0435\u043c 2 \u043e\u0441\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f drawLine, \u0441\u043c\u0435\u0449\u0430\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 Y \u043d\u0430 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0432\u0432\u0435\u0440\u0445 (\u043a\u043e\u043d\u0435\u0446 \u043b\u0438\u043d\u0438\u0438 \u043e\u0441\u0438 Y), \u0437\u0430\u0442\u0435\u043c X \u043d\u0430 200 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0432\u043f\u0440\u0430\u0432\u043e (\u043a\u043e\u043d\u0435\u0446 \u043b\u0438\u043d\u0438\u0438 \u043e\u0441\u0438 X). \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/va\/5p\/7f\/va5p7f0-koycvtc9xnfk1jery9q.png\"><\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u043b\u0438\u043d\u0438\u044e \u043e\u0441\u0438 Z, \u043e\u043d\u0430 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043d\u0438\u0437\\\u0432\u043b\u0435\u0432\u043e \u0438 \u0435\u0435 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 [-1, -1, 0] \u0438 \u0442\u0430\u043a\u0436\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u044e \u0434\u043b\u0438\u043d\u043e\u0439 150 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439, \u0442.\u0435. \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f [-1, -1, 0] \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043b\u0438\u043d\u043d\u043e\u0439 150, \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u00a0 \u044d\u0442\u043e [-150, -150, 0], \u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0434\u043b\u0438\u043d\u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 212 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u0412\u044b\u0448\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0443\u0436\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435\u0433\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0434\u043b\u0438\u043d\u0435 1, \u0430 \u0437\u0430\u0442\u0435\u043c \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0441\u043a\u0430\u043b\u044f\u0440 \u0442\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e 150. \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0434\u0435\u043b\u043e\u043c \u043f\u0440\u043e\u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0441\u0438 Z, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0433\u0434\u0435 \u043b\u0438\u043d\u0438\u044f \u043e\u0441\u0438 Z \u0434\u043e\u043b\u0436\u043d\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u0434, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0434\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 2-\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043e\u0441\u0435\u0439 \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u043b\u0438\u043d\u0438\u0438 \u043e\u0441\u0438 Z:<\/p>\n<pre><code class=\"javascript\">const zVector = new Vector(-1, -1, 0); const zCoords = Vector.add( \u00a0\u00a0center, \u00a0\u00a0zVector.normalize().multiplyByScalar(150) ); drawer.drawLine( \u00a0\u00a0center.x, center.y, \u00a0\u00a0zCoords.x, zCoords.y, \u00a0\u00a0150, 150, 150 ); <\/code><\/pre>\n<p>  \u0418 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0432\u0441\u0435 3 \u043e\u0441\u0438 \u043d\u0443\u0436\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nn\/x0\/02\/nnx002onfiuewo_yrgnzjwrpzka.png\"><\/div>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0441\u044c Z, \u043b\u0438\u0448\u044c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a\u0430\u044f \u0443 \u043d\u0430\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u043c\u044b \u0435\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0438 \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u0447\u0442\u043e\u0431\u044b \u0435\u0435 \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e, \u0442.\u043a. \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043e\u0441\u044c Z\u00a0 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u0443, \u0438 \u0435\u0435 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u043e\u0439 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e.<\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e, \u0432 \u044d\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0430\u0437\u043e\u0432\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0432\u0435\u043a\u0442\u043e\u0440\u0430\u0445 \u0438 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438, \u043c\u0430\u0442\u0440\u0438\u0446\u0430\u043c\u0438 \u0438 \u0438\u0445 \u0440\u043e\u043b\u0438 \u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c\u0438 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0443\u0431\u0430 \u0438 \u043e\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0432 \u0442\u0435\u043e\u0440\u0438\u044e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439. \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c:<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041a\u043e\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/b>                         <\/p>\n<div class=\"spoiler_text\">\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;   }    multiplyByScalar(s) {     this.x *= s;     this.y *= s;     this.z *= s;      return this;   }    static add(v1, v2) {     return new Vector(       v1.x + v2.x,       v1.y + v2.y,       v1.z + v2.z,     );   }    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 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) {     const offset = (this.width * -y + x) * 4;      if (x &gt;= 0 &amp;&amp; x &lt; this.width &amp;&amp; -y &gt;= 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;     }   } }  const drawer = new Drawer(   imageData.data,   imageData.width,   imageData.height );  \/\/ Cube vertices const vertices = [   new Vector(-1, 1, 1), \/\/ 0 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(-1, 1, -1), \/\/ 1 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(1, 1, -1), \/\/ 2 \u0432\u0435\u0440\u0448\u0438\u043d\u0430   new Vector(1, 1, 1), \/\/ 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 ];  \/\/ Cube edges const edges = [   [0, 1],   [1, 2],   [2, 3],   [3, 0],    [0, 4],   [1, 5],   [2, 6],   [3, 7],    [4, 5],   [5, 6],   [6, 7],   [7, 4], ];  let angle = 0; setInterval(() =&gt; {   let matrix = Matrix.getRotationX(20);    matrix = Matrix.multiply(     Matrix.getRotationY(angle += 1),     matrix   );    matrix = Matrix.multiply(     Matrix.getScale(100, 100, 100),     matrix,   );    matrix = Matrix.multiply(     Matrix.getTranslation(400, -300, 0),     matrix,   );    const sceneVertices = [];   for(let i = 0 ; i &lt; vertices.length ; i++) {     let vertex = Matrix.multiplyVector(       matrix,       vertices[i]     );      sceneVertices.push(vertex);   }    drawer.clearSurface();    for (let i = 0, l = edges.length ; i &lt; l ; i++) {     const e = edges[i];      drawer.drawLine(       sceneVertices[e[0]].x,       sceneVertices[e[0]].y,       sceneVertices[e[1]].x,       sceneVertices[e[1]].y,       0, 0, 255     );   }    const center = new Vector(400, -300, 0)   drawer.drawLine(     center.x, center.y,     center.x, center.y + 200,     150, 150, 150   );    drawer.drawLine(     center.x, center.y,     center.x + 200, center.y,     150, 150, 150   );    const zVector = new Vector(-1, -1, 0, 0);   const zCoords = Vector.add(     center,     zVector.normalize().multiplyByScalar(150)   );   drawer.drawLine(     center.x, center.y,     zCoords.x, zCoords.y,     150, 150, 150   );    ctx.putImageData(imageData, 0, 0); }, 100); <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  <strong>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/strong><\/p>\n<p>  \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u0438 \u043a\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u044e (\u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0431\u044a\u0435\u043a\u0442, \u0442\u0435\u043c \u043e\u043d \u043c\u0435\u043d\u044c\u0448\u0435), \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u043c\u0438 \u0438 \u0443\u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c 3D-\u043c\u043e\u0434\u0435\u043b\u0438, \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u0438 \u0438 \u0437\u0430\u0447\u0435\u043c \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b.<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/497808\/\"> https:\/\/habr.com\/ru\/post\/497808\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/497808\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ko\/ek\/3y\/koek3yvmqsby8gve6rpexo3lizw.jpeg\"><\/p>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/post\/494094\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u043a\u0430\u043a \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0438 \u043b\u0438\u043d\u0438\u044f (\u043e\u0442\u0440\u0435\u0437\u043e\u043a), \u043d\u043e \u0432\u0435\u0434\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043a\u043e\u0440\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 3D-\u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440 \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c\u0438, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0442\u0435\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-302113","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302113","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=302113"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302113\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=302113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=302113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}