{"id":375048,"date":"2024-05-21T06:14:56","date_gmt":"2024-05-21T06:14:56","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=375048"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=375048","title":{"rendered":"<span>\u0412\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e?<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u043e\u0437\u044c\u043c\u0438\u0442\u0435\u00a0\u043b\u0438\u043d\u0435\u0439\u043a\u0443, \u043a\u0430\u0440\u0430\u043d\u0434\u0430\u0448 \u0438\u043b\u0438\u00a0\u0440\u0443\u0447\u043a\u0443 \u0438 \u043d\u0430\u0447\u0435\u0440\u0442\u0438\u0442\u0435 \u043d\u0430\u00a0\u0431\u0443\u043c\u0430\u0433\u0435\u00a0\u043b\u0438\u043d\u0438\u044e. \u0423\u00a0\u0432\u0430\u0441 \u0432\u044b\u0439\u0434\u0435\u0442 \u043a\u0430\u043a\u2011\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fbf\/21c\/e8c\/fbf21ce8c9284b0a74e6790f57724788.png\" alt=\"\" title=\"\" width=\"974\" height=\"119\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fbf\/21c\/e8c\/fbf21ce8c9284b0a74e6790f57724788.png\"\/><\/figure>\n<p>\u0412\u044b \u0441\u043a\u0430\u0436\u0435\u0442\u0435, \u0447\u0442\u043e\u00a0\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e? \u0410\u00a0\u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0433\u043e\u00a0\u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u00a0\u043b\u0438\u043d\u0438\u044e \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \u0432 5\u201310\u00a0\u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435 \u0448\u0438\u0440\u0438\u043d\u044b \u043a\u0435\u0433\u043b\u044f. \u0423\u0436\u0435 \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043d\u0435\u00a0\u0442\u0430\u043a\u00a0\u043b\u0438?:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bd6\/824\/836\/bd6824836cae21bc0e102d4107ae529a.png\" width=\"974\" height=\"88\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bd6\/824\/836\/bd6824836cae21bc0e102d4107ae529a.png\"\/><\/figure>\n<p>\u041b\u0430\u0434\u043d\u043e, \u0441\u043a\u0430\u0436\u0435\u0442\u0435 \u0432\u044b, \u0443\u00a0\u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0442\u043e\u043b\u0449\u0435 \u0440\u0443\u0447\u043a\u0438! \u0414\u0430, \u0432\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u0435 \u0441\u0435\u0431\u0435 \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u043e\u00a0\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e \u0442\u043e\u043b\u0449\u0435? \u0411\u0443\u0434\u0435\u0442 \u0441\u043d\u043e\u0432\u0430 \u043d\u0435\u00a0\u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f4\/514\/f8e\/5f4514f8ec3adfedd846a88e2bf8c396.png\" width=\"473\" height=\"394\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5f4\/514\/f8e\/5f4514f8ec3adfedd846a88e2bf8c396.png\"\/><\/figure>\n<p>\u0412\u044b \u043f\u0440\u0438\u0434\u0451\u0442\u0435 \u043a\u00a0\u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e\u00a0\u0442\u043e\u043d\u043a\u0430\u044f\u00a0\u043b\u0438\u043d\u0438\u044f\u00a0\u043b\u0438\u0448\u044c \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0442\u043e\u043d\u043a\u043e\u0439, \u0435\u0441\u043b\u0438 \u0435\u0451 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e\u00a0\u0438 \u043f\u0440\u0438\u00a0\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u043b\u0438\u043d\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0448\u0438\u0440\u0438\u043d\u044b. \u0410\u00a0\u0432\u0441\u0451 \u0434\u0435\u043b\u043e \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043b\u0438\u043d\u0438\u0438 \u044d\u0442\u043e \u043d\u0435\u00a0\u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b (\u0442. \u0435. \u043d\u0435 1d \u043e\u0431\u044a\u0435\u043a\u0442\u044b). <\/p>\n<p>\u0412\u0441\u0435\u00a0\u043b\u0438\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u044e\u0442 \u0442\u043e\u043b\u0449\u0438\u043d\u0443, \u0430\u00a0\u043b\u0438\u043d\u0438\u0438 \u0441\u00a0\u0442\u043e\u043b\u0449\u0438\u043d\u043e\u0439 \u044d\u0442\u043e \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 (\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e\u00a0\u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u043c\u0438\u0440\u0435 \u0432\u0441\u0451 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u00a0\u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0432\u043e\u00a0\u0432\u0441\u0435\u0445 \u0442\u0440\u0451\u0445 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044f\u0445). \u041d\u043e\u00a0\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u0443\u044e \u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0443\u044e\u00a0\u043b\u0438\u043d\u0438\u044e, \u0442\u043e\u00a0\u043b\u0438\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u00a0\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0410\u00a0\u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e\u00a0\u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e, \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u00a0\u0437\u0430\u0434\u0430\u0447\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. <\/p>\n<p>\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenGL, \u0430\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0448\u0435\u0439\u0434\u0435\u0440\u044b \u043d\u0430\u00a0\u044f\u0437\u044b\u043a\u0435 GLSL. \u0412\u0441\u0451 \u0447\u0442\u043e\u00a0\u043e\u043d\u0438 \u0434\u0435\u043b\u0430\u044e\u0442\u00a0\u2014 \u044d\u0442\u043e \u0431\u0435\u0440\u0443\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u0442\u043e\u0447\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b, \u0430\u00a0\u0434\u0430\u043b\u0435\u0435 \u0441\u0442\u0440\u043e\u044f\u0442 \u0438\u0437\u00a0\u043d\u0438\u0445 \u0444\u0438\u0433\u0443\u0440\u044b. \u0412\u0435\u0441\u044c \u0438\u0445 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u043d\u0438\u044f GLSL \u043d\u0435\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0434\u043b\u044f\u00a0\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u0435\u0433\u043e \u0441\u0442\u043e\u0440\u043e\u043d, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0434\u0440\u0443\u0433 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0434\u0440\u0443\u0433\u0430. \u0410\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u0448\u0438\u0440\u0438\u043d\u0430 \u044d\u0442\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d. \u041d\u0430\u0439\u0442\u0438\u00a0\u0436\u0435 \u043d\u0430\u043c \u043d\u0430\u0434\u043e, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0433\u043b\u043e\u0432 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d87\/945\/221\/d87945221e70cb309aa5289761084fa9.png\" width=\"523\" height=\"466\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d87\/945\/221\/d87945221e70cb309aa5289761084fa9.png\"\/><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u043d, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e\u00a0\u0438\u0437\u00a0\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u00a0\u0443\u0433\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0433\u043b\u043e\u0432.<\/p>\n<p>\u0422\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong> \u0438 <strong>P<sub>2<\/sub><\/strong> \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430\u00a0<strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u00a0\u043e\u0441\u044f\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a <strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/418\/480\/a24\/418480a24fc4aa2f0c7bc12251924ffd.png\" width=\"603\" height=\"445\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/418\/480\/a24\/418480a24fc4aa2f0c7bc12251924ffd.png\"\/><\/figure>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b\u00a0\u0436\u0435 \u0442\u043e\u0447\u0435\u043a <strong>P<sub>1<\/sub><\/strong> \u0438 <strong>P<sub>2<\/sub><\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435\u00a0\u2014 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e <strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/783\/16b\/241\/78316b2417d305097dd3392ea94728a3.png\" width=\"837\" height=\"495\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/783\/16b\/241\/78316b2417d305097dd3392ea94728a3.png\"\/><\/figure>\n<p>\u0412\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438\u00a0\u043b\u0438\u0448\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f <strong>x<\/strong> \u0438 <strong>y<\/strong> \u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u0410\u00a0\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a\u00a0\u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041f\u0435\u0440\u0432\u044b\u0439\u00a0\u2014 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438, \u0432\u0442\u043e\u0440\u043e\u0439\u00a0\u2014 \u0437\u043d\u0430\u043d\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u041a\u0430\u043a\u043e\u0439 \u0438\u0437\u00a0\u043d\u0438\u0445 \u043f\u0440\u043e\u0449\u0435 \u0434\u043b\u044f\u00a0\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0432\u0430\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0448\u0443 \u0438\u0445 \u043e\u0431\u0430. <\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u043b\u0438\u043d\u044b \u043b\u0438\u043d\u0438\u0439<\/h2>\n<p>\u041d\u0430\u0447\u043d\u0451\u043c \u0441\u00a0\u043c\u0435\u0442\u043e\u0434\u0430, \u0434\u043b\u044f\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043d\u0438\u044f \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u041f\u0438\u0444\u0430\u0433\u043e\u0440\u0430. \u0412\u00a0\u0447\u0451\u043c \u0441\u0443\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong> \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0430\u00a0\u0438\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0432\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0440\u0435\u0448\u0438\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0435\u0451 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u0412\u044b\u0447\u0442\u044f \u0438\u0437\u00a0\u043d\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u043a\u0438 <strong>\u0426<sub>0<\/sub><\/strong>, \u043c\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043e\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/10d\/584\/707\/10d584707a3cca211e3c82408f013c59.png\" width=\"589\" height=\"410\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/10d\/584\/707\/10d584707a3cca211e3c82408f013c59.png\"\/><\/figure>\n<p>\u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0434\u0432\u0435 \u043f\u0440\u044f\u043c\u044b\u0435 <strong>L<\/strong> \u0438 <strong>M<\/strong>. \u0418\u0445 \u0434\u043b\u0438\u043d\u0443 \u0447\u0435\u0440\u0435\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{L} ^ {2} = {( {x}_ {1} - {x} _ {0} )} ^ {2} + {( {y} _ {1} - {y} _ {0} )} ^ {2}\" alt=\"{L} ^ {2} = {( {x}_ {1} - {x} _ {0} )} ^ {2} + {( {y} _ {1} - {y} _ {0} )} ^ {2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/57a\/c6a\/15e\/57ac6a15ef7eb5b35be76926fd79acce.svg\" width=\"242\" height=\"26\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{M} ^ {2} = {L} ^ {2} + {S} ^ {2} = {( {x} _ {1} - {x} _ {0} )} ^ {2} + {( {y} _ {1} - {y} _ {0} )} ^ {2} + {S} ^ {2}\" alt=\"{M} ^ {2} = {L} ^ {2} + {S} ^ {2} = {( {x} _ {1} - {x} _ {0} )} ^ {2} + {( {y} _ {1} - {y} _ {0} )} ^ {2} + {S} ^ {2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/54a\/e19\/e54\/54ae19e5423bf7a73c9bbaa809430557.svg\" width=\"387\" height=\"26\"\/><\/p>\n<p>\u0418\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u044e \u043d\u0430\u0441 \u0442\u043e\u0447\u043a\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a:   <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{M}^{2}={\\left({x}_{1}-{\\left({x}_{}+{x}_{0}\\right)}_{}\\right)}^{2}{+\\left({y}_{1}-{{\\left({y}_{}+{y}_{0}\\right)}_{}}_{}\\right)}^{2}\\\\  {S}^{2}={\\left({x}_{0}-{\\left({x}_{}+{x}_{0}\\right)}_{}\\right)}^{2}+{\\left({y}_{0}-{{\\left({y}_{}+{y}_{0}\\right)}_{}}_{}\\right)}^{2}\\end{cases}\" alt=\"\\begin{cases}{M}^{2}={\\left({x}_{1}-{\\left({x}_{}+{x}_{0}\\right)}_{}\\right)}^{2}{+\\left({y}_{1}-{{\\left({y}_{}+{y}_{0}\\right)}_{}}_{}\\right)}^{2}\\\\  {S}^{2}={\\left({x}_{0}-{\\left({x}_{}+{x}_{0}\\right)}_{}\\right)}^{2}+{\\left({y}_{0}-{{\\left({y}_{}+{y}_{0}\\right)}_{}}_{}\\right)}^{2}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f53\/be6\/27a\/f53be627aa8dc07edf61cea3b12c9616.svg\" width=\"362\" height=\"54\"\/><\/p>\n<p>\u0414\u0432\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0434\u0432\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0438\u0442, \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c\u00a0\u043b\u0438\u0448\u044c \u0435\u0433\u043e \u043d\u0430\u0439\u0442\u0438. \u0414\u043b\u044f\u00a0\u0441\u0442\u0440\u043e\u0433\u043e\u0441\u0442\u0438, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u043e\u043b\u043d\u043e\u0439 \u044d\u0442\u0430\u043f \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043e\u043d \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u0435\u043d. \u0420\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{M}^{2}={\\left({x}_{1}-{x}_{0}{-x}_{}\\right)}^{2}{+\\left({y}_{1}-{y}_{0}-y\\right)}^{2}\\\\  {S}^{2}={\\left(-x\\right)}^{2}+{\\left(-y\\right)}^{2}\\end{cases}\" alt=\"\\begin{cases}{M}^{2}={\\left({x}_{1}-{x}_{0}{-x}_{}\\right)}^{2}{+\\left({y}_{1}-{y}_{0}-y\\right)}^{2}\\\\  {S}^{2}={\\left(-x\\right)}^{2}+{\\left(-y\\right)}^{2}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/810\/6f1\/280\/8106f128056472e928edb451ac0f817d.svg\" width=\"324\" height=\"53\"\/><\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043e\u0434\u043d\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{M}^{2}={{x}_{1}}^{2}-{2x}_{1}{x}_{0}-{2x}_{1}x+{2x}_{0}x+{{x}_{0}}^{2}+{{x}_{}}^{2}+ \\\\ + {{y}_{1}}^{2}-{2y}_{1}{y}_{0}-{2y}_{1}y+{2y}_{0}y+{{y}_{0}}^{2}+{{y}_{}}^{2}\\\\  {S}^{2}={{x}_{}}^{2}+ {y}^{2}\\end{cases}\" alt=\"\\begin{cases}{M}^{2}={{x}_{1}}^{2}-{2x}_{1}{x}_{0}-{2x}_{1}x+{2x}_{0}x+{{x}_{0}}^{2}+{{x}_{}}^{2}+ \\\\ + {{y}_{1}}^{2}-{2y}_{1}{y}_{0}-{2y}_{1}y+{2y}_{0}y+{{y}_{0}}^{2}+{{y}_{}}^{2}\\\\  {S}^{2}={{x}_{}}^{2}+ {y}^{2}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d9a\/540\/f1c\/d9a540f1c83a40e096d3abee550ea185.svg\" width=\"418\" height=\"74\"\/><\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0434\u043b\u0438\u043d\u044b \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{{x}_{1}}^{2}-{2x}_{1}{x}_{0}+{{x}_{0}}^{2}={\\left({x}_{1}-{x}_{0}{}_{}\\right)}^{2}\\\\  {{y}_{1}}^{2}-{2y}_{1}{y}_{0}+{{y}_{0}}^{2}={\\left({y}_{1}-{y}_{0}{}_{}\\right)}^{2}\\end{cases}\" alt=\"\\begin{cases}{{x}_{1}}^{2}-{2x}_{1}{x}_{0}+{{x}_{0}}^{2}={\\left({x}_{1}-{x}_{0}{}_{}\\right)}^{2}\\\\  {{y}_{1}}^{2}-{2y}_{1}{y}_{0}+{{y}_{0}}^{2}={\\left({y}_{1}-{y}_{0}{}_{}\\right)}^{2}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/95a\/bb6\/970\/95abb69700673bc66222fab081c78503.svg\" width=\"287\" height=\"53\"\/><\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{M}^{2}-{L}^{2}=-{2x}_{1}x+{2x}_{0}x+{{x}_{}}^{2}-{2y}_{1}y+{2y}_{0}y+{{y}_{}}^{2}\\\\  {S}^{2}={{x}_{}}^{2}+{y}^{2}\\end{cases}\" alt=\"\\begin{cases}{M}^{2}-{L}^{2}=-{2x}_{1}x+{2x}_{0}x+{{x}_{}}^{2}-{2y}_{1}y+{2y}_{0}y+{{y}_{}}^{2}\\\\  {S}^{2}={{x}_{}}^{2}+{y}^{2}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/13b\/63a\/66c\/13b63a66c8d406915f46eb0a4814d07c.svg\" width=\"448\" height=\"50\"\/><\/p>\n<p>\u0410 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{S}^{2}=-{2x}_{1}x+{2x}_{0}x+{{x}_{}}^{2}-{2y}_{1}y+{2y}_{0}y+{{y}_{}}^{2}\\\\  {S}^{2}={{x}_{}}^{2}+{y}^{2}\\end{cases}\" alt=\"\\begin{cases}{S}^{2}=-{2x}_{1}x+{2x}_{0}x+{{x}_{}}^{2}-{2y}_{1}y+{2y}_{0}y+{{y}_{}}^{2}\\\\  {S}^{2}={{x}_{}}^{2}+{y}^{2}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/32c\/fce\/ee8\/32cfceee80efe4df7d8957d4f01254ce.svg\" width=\"394\" height=\"51\"\/><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u044f\u0442\u044c \u043e\u0431\u0435 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{{x}_{}}^{2}+{y}^{2}=-{2x}_{1}x+{2x}_{0}x+{{x}_{}}^{2}-{2y}_{1}y+{2y}_{0}y+{{y}_{}}^{2}\" alt=\"{{x}_{}}^{2}+{y}^{2}=-{2x}_{1}x+{2x}_{0}x+{{x}_{}}^{2}-{2y}_{1}y+{2y}_{0}y+{{y}_{}}^{2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eeb\/c31\/f98\/eebc31f98c830de5bab6f33622dab285.svg\" width=\"414\" height=\"25\"\/><\/p>\n<p>\u0423\u0431\u0435\u0440\u0451\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044b, \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u0437\u043d\u0430\u043a\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"0={x}_{1}x-{x}_{0}x+{y}_{1}y-{y}_{0}y\" alt=\"0={x}_{1}x-{x}_{0}x+{y}_{1}y-{y}_{0}y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e3a\/504\/fe4\/e3a504fe4a8e1f628d57a919001650a1.svg\" width=\"223\" height=\"20\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x\\left({x}_{1}-{x}_{0}\\right)+y\\left({y}_{1}-{y}_{0}\\right)=0\" alt=\"x\\left({x}_{1}-{x}_{0}\\right)+y\\left({y}_{1}-{y}_{0}\\right)=0\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/524\/166\/036\/52416603663903490534c50219c71fda.svg\" width=\"239\" height=\"22\"\/><\/p>\n<p>\u0412\u044b\u0440\u0430\u0437\u0438\u043c <strong>x<\/strong> \u0438 <strong>y<\/strong> \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0443\u0433-\u0434\u0440\u0443\u0433\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}x=\\frac{-y\\left({y}_{1}-{y}_{0}\\right)}{\\left({x}_{1}-{x}_{0}\\right)}\\\\  y=\\frac{-x\\left({x}_{1}-{x}_{0}\\right)}{\\left({y}_{1}-{y}_{0}\\right)}\\end{cases}\" alt=\"\\begin{cases}x=\\frac{-y\\left({y}_{1}-{y}_{0}\\right)}{\\left({x}_{1}-{x}_{0}\\right)}\\\\  y=\\frac{-x\\left({x}_{1}-{x}_{0}\\right)}{\\left({y}_{1}-{y}_{0}\\right)}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cbf\/f4e\/f68\/cbff4ef685b71d71302b1d09a95e721f.svg\" width=\"133\" height=\"74\"\/><\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{S}^{2}={{\\left(\\frac{-y\\left({y}_{1}-{y}_{0}\\right)}{\\left({x}_{1}-{x}_{0}\\right)}\\right)}_{}}^{2}+{y}^{2}\" alt=\"{S}^{2}={{\\left(\\frac{-y\\left({y}_{1}-{y}_{0}\\right)}{\\left({x}_{1}-{x}_{0}\\right)}\\right)}_{}}^{2}+{y}^{2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38a\/e5d\/746\/38ae5d74689b9dabaa3f3968f975a2b7.svg\" width=\"236\" height=\"54\"\/><\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0451\u043c \u043a \u043d\u0443\u043b\u044e:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\left(1+{\\left(\\frac{{y}_{1}-{y}_{0}}{{x}_{1}-{x}_{0}}\\right)}^{2}\\right){y}^{2}-{S}^{2}=0\" alt=\"\\left(1+{\\left(\\frac{{y}_{1}-{y}_{0}}{{x}_{1}-{x}_{0}}\\right)}^{2}\\right){y}^{2}-{S}^{2}=0\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/61f\/b24\/b7a\/61fb24b7a43eef1d067bc6aa61bcf953.svg\" width=\"273\" height=\"61\"\/><\/p>\n<p>\u0420\u0435\u0448\u0438\u043c \u0435\u0433\u043e, \u0434\u043b\u044f <strong>x<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=\\pm S\\sqrt{\\frac{1}{1+{\\left(\\frac{{x}_{1}-{x}_{0}}{{y}_{1}-{y}_{0}}\\right)}^{2}}}\" alt=\"x=\\pm S\\sqrt{\\frac{1}{1+{\\left(\\frac{{x}_{1}-{x}_{0}}{{y}_{1}-{y}_{0}}\\right)}^{2}}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4d1\/ae1\/841\/4d1ae1841c4dbca749c823f5f6b2ae88.svg\" width=\"202\" height=\"72\"\/><\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0434\u043b\u044f <strong>y<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"y=\\pm S\\sqrt{\\frac{1}{1+{\\left(\\frac{{y}_{1}-{y}_{0}}{{x}_{1}-{x}_{0}}\\right)}^{2}}}\" alt=\"y=\\pm S\\sqrt{\\frac{1}{1+{\\left(\\frac{{y}_{1}-{y}_{0}}{{x}_{1}-{x}_{0}}\\right)}^{2}}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/563\/441\/fba\/563441fba979ca8ed013f4f192ec5378.svg\" width=\"201\" height=\"72\"\/><\/p>\n<p>\u0418\u0445 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=\\pm S\\sqrt{\\frac{{\\left({y}_{1}-{y}_{0}\\right)}^{2}}{{\\left({x}_{1}-{x}_{0}\\right)}^{2}+{\\left({y}_{1}-{y}_{0}\\right)}^{2}}}\" alt=\"x=\\pm S\\sqrt{\\frac{{\\left({y}_{1}-{y}_{0}\\right)}^{2}}{{\\left({x}_{1}-{x}_{0}\\right)}^{2}+{\\left({y}_{1}-{y}_{0}\\right)}^{2}}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b9f\/379\/692\/b9f3796927ed1a5b9416ca393a86dd0d.svg\" width=\"286\" height=\"63\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"y=\\pm S\\sqrt{\\frac{{\\left({x}_{1}-{x}_{0}\\right)}^{2}}{{\\left({x}_{1}-{x}_{0}\\right)}^{2}+{\\left({y}_{1}-{y}_{0}\\right)}^{2}}}\" alt=\"y=\\pm S\\sqrt{\\frac{{\\left({x}_{1}-{x}_{0}\\right)}^{2}}{{\\left({x}_{1}-{x}_{0}\\right)}^{2}+{\\left({y}_{1}-{y}_{0}\\right)}^{2}}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/887\/8cc\/0c7\/8878cc0c76d8aac3ddbd38c5e98c71fd.svg\" width=\"284\" height=\"63\"\/><\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u044c \u0438\u0437 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u044d\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c, \u0430 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438: <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=\\pm S\\frac{\\left\\vert {y}_{1}-{y}_{0}\\right\\vert }{L}\" alt=\"x=\\pm S\\frac{\\left\\vert {y}_{1}-{y}_{0}\\right\\vert }{L}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/443\/f34\/9e0\/443f349e0e55b2dd52e4dbad0fb1fd03.svg\" width=\"142\" height=\"45\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"y=\\pm S\\frac{\\left\\vert {x}_{1}-{x}_{0}\\right\\vert }{{L}^{}}\" alt=\"y=\\pm S\\frac{\\left\\vert {x}_{1}-{x}_{0}\\right\\vert }{{L}^{}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/56f\/572\/898\/56f572898c2b80a52c5e5c9ce0cc78f1.svg\" width=\"144\" height=\"45\"\/><\/p>\n<p>\u0412\u00a0\u0446\u0435\u043b\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0443\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u00a0\u0437\u043d\u0430\u043a\u0443,\u0430 <strong>S<\/strong> \u0438 <strong>L<\/strong> \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u0443\u0431\u0440\u0430\u0442\u044c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=\\pm S\\frac{{y}_{1}-{y}_{0}}{L}\" alt=\"x=\\pm S\\frac{{y}_{1}-{y}_{0}}{L}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/768\/e37\/b31\/768e37b3121fdc29c97dae040077b8e4.svg\" width=\"131\" height=\"42\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"y=\\pm S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}\" alt=\"y=\\pm S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/341\/dcd\/747\/341dcd747967d333a93c79319fa84a51.svg\" width=\"133\" height=\"41\"\/><\/p>\n<p>\u0412\u00a0\u0438\u0442\u043e\u0433\u0435, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u0432\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f\u00a0\u043b\u0438\u0448\u044c \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u0430\u043a\u043e\u0435 \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0441\u0434\u0432\u0438\u0433\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. <\/p>\n<p>\u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u2011\u043b\u0438\u043d\u0438\u0438 \u0432\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0446\u0435\u043d\u0442\u0440\u0430. \u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u0442\u043e\u0447\u043a\u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b, \u0447\u0442\u043e\u00a0\u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0432\u043b\u0438\u044f\u043d\u0438\u0435\u00a0\u043b\u0438\u0448\u044c \u043d\u0430\u00a0\u0442\u043e\u0447\u043a\u0443 <strong>P<sub>0<\/sub><\/strong> :<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/48a\/486\/935\/48a4869357224ec9b934b9c7c75bd145.png\" width=\"527\" height=\"491\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/48a\/486\/935\/48a4869357224ec9b934b9c7c75bd145.png\"\/><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0437\u043d\u0430\u043a, \u0432\u043b\u0438\u044f\u0435\u0442 \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0442\u043e\u00a0 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0437\u043d\u0430\u043a\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong>:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/183\/78e\/711\/18378e71181e8864683ceb01db6adc33.png\" width=\"678\" height=\"390\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/183\/78e\/711\/18378e71181e8864683ceb01db6adc33.png\"\/><\/figure>\n<p>\u041a\u0430\u043a\u00a0\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0438\u0437\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <strong>y<\/strong> \u0432\u00a0\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u0442 \u0437\u043d\u0430\u043a\u0443 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 <strong>y <\/strong>\u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong>  (\u0430 \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>1\u00a0<\/sub><\/strong>\u0432\u00a0\u0441\u0438\u043b\u0443 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a). <\/p>\n<p>\u0414\u043b\u044f <strong>x<\/strong> \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0440\u043e\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f, \u0437\u043d\u0430\u043a \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043d\u043e\u0439, \u0447\u0435\u043c \u0437\u043d\u0430\u043a \u0440\u0430\u0437\u043d\u0438\u0446\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f x \u0431\u0443\u0434\u0435\u0442 \u0441\u00a0\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong>  (\u0430 \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>1\u00a0<\/sub><\/strong>\u0432\u00a0\u0441\u0438\u043b\u0443 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a). <\/p>\n<p>\u0412\u00a0\u0438\u0442\u043e\u0433\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}x=-\\frac S {{L}}( {y}_{1}-{y}_{0})\\\\ y=\\frac S {{L}}( {x}_{1}-{x}_{0}) \\end{cases}\" alt=\"\\begin{cases}x=-\\frac S {{L}}( {y}_{1}-{y}_{0})\\\\ y=\\frac S {{L}}( {x}_{1}-{x}_{0}) \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/03f\/577\/121\/03f57712109b8837b42fcebdc0c15620.svg\" width=\"165\" height=\"61\"\/><\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043d\u0430\u0441 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443, \u043d\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0451\u043c&#8230;<\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>\u0422\u043e\u0447\u043a\u0438 \u043d\u0430\u00a0\u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u00a0\u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439 (\u0434\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430) \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0442\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0422\u043e\u0433\u0434\u0430, \u043f\u0443\u0441\u0442\u044c \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong> ,<strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>  \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>,<strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>  \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b (\u0442.\u00a0\u0435. \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0443\u0433\u043e\u043b 90\u00a0\u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432). \u0417\u043d\u0430\u0447\u0438\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0438\u0437\u00a0\u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>  \u043d\u0430 90\u00a0\u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> , \u0442\u0430\u043a\u043e\u0439\u00a0\u0436\u0435 \u0434\u043b\u0438\u043d\u044b \u043a\u0430\u043a\u00a0\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0434\u043e <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>. \u0410\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043e\u0442 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u0434\u043e <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> . \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> . \u0410\u00a0\u0443\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u043d\u0430\u0439\u0442\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0439\u0434\u0451\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0437\u043d\u0438\u0446\u044b <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>: <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4a1\/7ab\/1b5\/4a17ab1b51a99ddee67e0e5d04ed14b4.png\" width=\"414\" height=\"442\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4a1\/7ab\/1b5\/4a17ab1b51a99ddee67e0e5d04ed14b4.png\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430\u00a0\u0443\u0433\u043e\u043b \u043d\u0430\u00a0\u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438  : <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{x}^{\\text{'}}=\\left({x}_{1}-{x}_{0}\\right)\\ast \\cos \u0430-\\left({y}_{1}-{y}_{0}\\right)\\ast \\sin \u0430\\\\{y}^{\\text{'}}=\\left({x}_{1}-{x}_{0}\\right)\\ast \\sin \u0430+\\left({y}_{1}-{y}_{0}\\right)\\ast \\cos \u0430\\end{cases}\" alt=\"\\begin{cases}{x}^{\\text{'}}=\\left({x}_{1}-{x}_{0}\\right)\\ast \\cos \u0430-\\left({y}_{1}-{y}_{0}\\right)\\ast \\sin \u0430\\\\{y}^{\\text{'}}=\\left({x}_{1}-{x}_{0}\\right)\\ast \\sin \u0430+\\left({y}_{1}-{y}_{0}\\right)\\ast \\cos \u0430\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/69e\/dea\/3e7\/69edea3e7131a98ee16f9218ba4e6f36.svg\" width=\"350\" height=\"51\"\/><\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0443 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0437 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0443 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup> , \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{x}^{\\text{'}}=-\\left({y}_{1}-{y}_{0}\\right)\\\\{y}^{\\text{'}}=\\left({x}_{1}-{x}_{0}\\right)\\end{cases}\" alt=\"\\begin{cases}{x}^{\\text{'}}=-\\left({y}_{1}-{y}_{0}\\right)\\\\{y}^{\\text{'}}=\\left({x}_{1}-{x}_{0}\\right)\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1b\/7f4\/b3a\/f1b7f4b3a67c639f0399fcebcaaf3743.svg\" width=\"156\" height=\"50\"\/><\/p>\n<p>\u0412\u00a0\u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0442\u043e\u0447\u0435\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6a2\/90c\/fe8\/6a290cfe896ef8d2ea7af03dde015e6d.png\" width=\"713\" height=\"462\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6a2\/90c\/fe8\/6a290cfe896ef8d2ea7af03dde015e6d.png\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0439\u0434\u0451\u043c \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> \u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b <strong>S<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{K}^{}=\\frac{S}{L}=\\frac{S}{\\sqrt{{\\left({x}_{1}-{x}_{0}\\right)}^{2}+{\\left({y}_{1}-{y}_{0}\\right)}^{2}}}\" alt=\"{K}^{}=\\frac{S}{L}=\\frac{S}{\\sqrt{{\\left({x}_{1}-{x}_{0}\\right)}^{2}+{\\left({y}_{1}-{y}_{0}\\right)}^{2}}}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/26e\/9d1\/755\/26e9d1755a14e51953e72cc3e78d4634.svg\" width=\"309\" height=\"65\"\/><\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> , \u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u044f \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u0435\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u00a0\u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{x}^{}=-\\left({y}_{1}-{y}_{0}\\right)K\\\\{y}^{}=\\left({x}_{1}-{x}_{0}\\right)K\\end{cases}\" alt=\"\\begin{cases}{x}^{}=-\\left({y}_{1}-{y}_{0}\\right)K\\\\{y}^{}=\\left({x}_{1}-{x}_{0}\\right)K\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/826\/69f\/b13\/82669fb13a848bd5d8bd976e7b1f2b9f.svg\" width=\"171\" height=\"49\"\/><\/p>\n<p>\u041f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u043c\u0435\u0441\u0442\u043e <strong>\u041a<\/strong> \u0435\u0433\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}x=-\\frac S {{L}}( {y}_{1}-{y}_{0})\\\\ y=\\frac S {{L}}( {x}_{1}-{x}_{0}) \\end{cases}\" alt=\"\\begin{cases}x=-\\frac S {{L}}( {y}_{1}-{y}_{0})\\\\ y=\\frac S {{L}}( {x}_{1}-{x}_{0}) \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/92d\/545\/3e0\/92d5453e09f19d4ccf930c914bc8450e.svg\" width=\"165\" height=\"61\"\/><\/p>\n<p>\u041c\u044b \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0448\u043b\u0438 \u043a \u0442\u0435\u043c \u0436\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c \u0447\u0442\u043e \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437! <\/p>\n<h2>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/h2>\n<p>\u0418 \u0432\u043e\u0442 \u0443\u00a0\u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u043e, \u0437\u0430\u043e\u0434\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0432 \u0432\u0441\u0451 \u0432\u043c\u0435\u0441\u0442\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0440\u0435\u043d\u0434\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 6\u00a0\u044d\u0442\u0430\u043f\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432\u00a0\u044d\u0442\u043e\u043c \u0446\u0438\u043a\u043b\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/310790\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u0435\u0439<\/a>) \u0418\u0437\u00a0\u043d\u0438\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043b\u0438\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u00a0\u0442\u0440\u0438 \u044d\u0442\u0430\u043f\u0430 (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0441\u0438\u043d\u0438\u043c):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/680\/149\/ead\/680149ead4e8c69cc3583678410f4a11.png\" alt=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u0437\u044f\u0442 \u0438\u0437 https:\/\/learnopengl.com\/Getting-started\/Hello-Triangle\" title=\"\u0420\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u0437\u044f\u0442 \u0438\u0437 https:\/\/learnopengl.com\/Getting-started\/Hello-Triangle\" width=\"763\" height=\"465\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/680\/149\/ead\/680149ead4e8c69cc3583678410f4a11.png\"\/><\/p>\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u0437\u044f\u0442 \u0438\u0437 <a href=\"https:\/\/learnopengl.com\/Getting-started\/Hello-Triangle\" rel=\"noopener noreferrer nofollow\">https:\/\/learnopengl.com\/Getting-started\/Hello-Triangle<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044f \u0438\u0445 \u0432\u00a0\u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440. \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f\u00a0\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0439\u00a0\u043b\u0438\u043d\u0438\u0438 \u0432\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435(<a href=\"https:\/\/habr.com\/ru\/articles\/319144\/\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/a>): <\/p>\n<pre><code class=\"cpp\">#version 330 core  \/\/\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a \u043b\u0438\u043d\u0438\u0438 layout (location = 0) in float position_x; layout (location = 1) in float position_y;  \/\/\u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u043e\u0434\u0435\u043b\u0438, \u0437\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f  \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 uniform mat4 model;  void main(){    \/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0442\u043e\u0447\u0435\u043a \u0432 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u0435\u0439\u0434\u0435\u0440     gl_Position = model *vec4(position_x,position_y,0.0f,1.0f); }<\/code><\/pre>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440 \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435, \u043e\u043d \u0437\u0430\u0434\u0430\u0451\u0442 \u043e\u0434\u0438\u043d \u0446\u0432\u0435\u0442 \u0432\u0441\u0435\u0439 \u043b\u0438\u043d\u0438\u0438:<\/p>\n<pre><code class=\"cpp\">#version 330 core  out vec4 color; uniform  vec4 mat_color;  void main(){     color=mat_color;\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0446\u0432\u0435\u0442 \u0432 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0442\u043e\u0440 };<\/code><\/pre>\n<p>\u041b\u044e\u0431\u044b\u0435 2d \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u0433\u0440\u0443\u043f\u043f\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 (\u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c\u044e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0438\u0445. \u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u0435\u0439\u0434\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 (\u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043b\u0438\u043d\u0438\u0438) \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u0438\u0442 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0448\u0435\u0439\u0434\u0435\u0440\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u0438\u0434\u0435 <strong>triangle_strip<\/strong> (\u043a\u0430\u0436\u0434\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a), \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435:  <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b36\/d34\/31f\/b36d3431f0f0ceddfe7cce53b37f2afc.png\" width=\"440\" height=\"301\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b36\/d34\/31f\/b36d3431f0f0ceddfe7cce53b37f2afc.png\"\/><\/figure>\n<p>\u0421\u0430\u043c \u043a\u043e\u0434 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0448\u0435\u0439\u0434\u0435\u0440\u0430:<\/p>\n<pre><code class=\"cpp\">#version 400 core layout (lines) in;\/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 (x0;y0) \u0438 (x1;y1)  \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \/\/(\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \/\/strip \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430  \/\/\u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b \u0434\u0432\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e) layout (triangle_strip, max_vertices = 4) out;  in  float S[];\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438  \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f vec2 get_general_point_corner(vec2 P0,vec2 P1){     float L =(distance(P0,P1));      float K=S[0]\/L;      float x_=-K*(P1.y-P0.y);     float y_=K*(P1.x-P0.x);      return vec2(x_,y_); }  void bild_quard(vec2 A_0, vec2 P0, vec2 P1){     \/\/ 1:bottom-left     gl_Position =vec4((A_0.x+P0.x), (A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 2:bottom-right     gl_Position =vec4((-A_0.x+P0.x),  (-A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 3:top-left     gl_Position =vec4((A_0.x+P1.x), (A_0.y+P1.y), 0.0, 1.0);         EmitVertex();     \/\/ 4:top-right     gl_Position =vec4((-A_0.x+P1.x),  (-A_0.y+P1.y), 0.0, 1.0);       EmitVertex(); }  void main() {     \/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     vec2 p_= get_general_point_corner(gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a-\u043b\u0438\u043d\u0438\u044e     bild_quard(p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     EndPrimitive(); }   <\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043b\u043e\u0445\u043e \u0437\u043d\u0430\u0435\u0442\u0435 OpenGl, \u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0430\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/articles\/350782\/\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u0438.  (\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u043d\u0435\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f). \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u044f \u0434\u043e\u043f\u043e\u043b\u043d\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c (\u0434\u043b\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u043b\u0438\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430).<\/p>\n<\/div>\n<\/details>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/661\/ba3\/d92\/661ba3d9298a6a09e88d3a5bd018d43f.png\" alt=\"\" title=\"\" width=\"472\" height=\"211\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/661\/ba3\/d92\/661ba3d9298a6a09e88d3a5bd018d43f.png\"\/><\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f61\/fee\/833\/f61fee83307479167d39a44ae24e319d.png\" width=\"472\" height=\"212\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f61\/fee\/833\/f61fee83307479167d39a44ae24e319d.png\"\/><\/figure>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0442\u044b\u043a\u0430 \u0434\u0432\u0443\u0445 \u043b\u0438\u043d\u0438\u0439<\/h2>\n<p>\u0421\u00a0\u043e\u0434\u043d\u043e\u0439\u00a0\u043b\u0438\u043d\u0438\u0435\u0439 \u0432\u0441\u0451 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u0440\u0438\u0432\u0443\u044e \u0438\u0437\u00a0\u0440\u0430\u0437\u043d\u044b\u0445\u00a0\u043b\u0438\u043d\u0438\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0ea\/f31\/49a\/0eaf3149a597fee042966d0020e06ae7.png\" width=\"973\" height=\"218\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ea\/f31\/49a\/0eaf3149a597fee042966d0020e06ae7.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/465\/bf9\/fb9\/465bf9fb9bccf6c2d0ffc69b6e57f549.png\" width=\"974\" height=\"204\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/465\/bf9\/fb9\/465bf9fb9bccf6c2d0ffc69b6e57f549.png\"\/><\/figure>\n<p>\u041a\u0430\u043a\u00a0\u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u00a0\u0441\u0442\u044b\u043a\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u00a0\u2014 \u043e\u043d\u0438 \u043d\u0435\u00a0\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b, \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u00a0\u043b\u0438\u043d\u0438\u0439.\u0412\u00a0\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0441\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u044f\u043c\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u043e\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u043e <strong>layout (lines) in <\/strong>\u00a0\u0432 \u0448\u0435\u0439\u0434\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c layout (lines_adjacency) in, \u0447\u0442\u043e \u0434\u0430\u0451\u0442\u00a0 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0445.    <\/p>\n<h2>\u041a\u043e\u0441\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412\u00a0\u0446\u0435\u043b\u043e\u043c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>2<\/sub><\/strong>  \u0438 <strong>P<sub>4<\/sub><\/strong>  \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ba2\/91d\/05f\/ba291d05f05613dc418e45d128431de3.png\" width=\"511\" height=\"378\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ba2\/91d\/05f\/ba291d05f05613dc418e45d128431de3.png\"\/><\/figure>\n<p>\u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u00a0\u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0448\u0435\u0439\u0434\u0435\u0440\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0\u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0442\u043e\u0447\u043a\u0443 <strong>P<sub>4<\/sub><\/strong>. \u041c\u043e\u0436\u043d\u043e\u00a0\u0431\u044b\u043b\u043e\u00a0\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0447\u043d\u043e, \u0441\u00a0\u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043d\u0430\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0434\u043b\u044f\u00a0\u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0441\u0442\u044b\u043a\u0430, \u043d\u0430\u00a0\u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u0430\u043a\u043b\u043e\u043d\u0430 \u0434\u0432\u0443\u0445\u00a0\u043b\u0438\u043d\u0438\u0439, \u043d\u043e\u00a0\u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u0448\u043d\u0438\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0447\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0439\u0434\u0451\u043c \u0442\u043e\u0447\u043a\u0443 <strong>P<sub>5<\/sub><\/strong> , \u0438 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a <strong>P<sub>2<\/sub>P<sub>4<\/sub>P<sub>3<\/sub>P<sub>5<\/sub><\/strong>.<\/p>\n<p>\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0435\u0433\u043e \u0432\u0435\u0440\u0448\u0438\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c \u0436\u0435:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/25a\/ff4\/f87\/25aff4f878f03a357c800ae2cd315408.png\" width=\"468\" height=\"321\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/25a\/ff4\/f87\/25aff4f878f03a357c800ae2cd315408.png\"\/><\/figure>\n<p>\u041a\u043e\u0434 \u0448\u0435\u0439\u0434\u0435\u0440\u0430, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0448\u0435\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a:   <\/p>\n<pre><code class=\"cpp\">#version 400 core \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u043e\u0447\u043a\u0438 (x0;y0),(x1;y1),(x2;y2) \u0438 (x3;y4) layout (lines_adjacency) in;  \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \/\/(\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \/\/strip \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430  \/\/\u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b \u0434\u0432\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e) layout (triangle_strip, max_vertices = 6) out;  in  float S[];\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438  \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u044f vec2 get_general_point_corner(vec2 P0,vec2 P1){     float L =(distance(P0,P1));      float K=S[0]\/L;      float x_=-K*(P1.y-P0.y);     float y_=K*(P1.x-P0.x);      return vec2(x_,y_); }   void bild_quard(vec2 A_0, vec2 P0, vec2 P1){     \/\/ 1:bottom-left     gl_Position =vec4((A_0.x+P0.x), (A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 2:bottom-right     gl_Position =vec4((-A_0.x+P0.x),  (-A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 3:top-left     gl_Position =vec4((A_0.x+P1.x), (A_0.y+P1.y), 0.0, 1.0);         EmitVertex();     \/\/ 4:top-right     gl_Position =vec4((-A_0.x+P1.x),  (-A_0.y+P1.y), 0.0, 1.0);       EmitVertex(); }  void oblique_connection(vec2 A_1, vec2 P1){     \/\/ \u0432\u0435\u0440\u0445\u043d\u0438\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0432 \u0441\u0442\u044b\u043a\u0435     gl_Position =vec4((A_1.x+P1.x), (A_1.y+P1.y), 0.0, 1.0);            EmitVertex();     \/\/ \u043d\u0438\u0436\u043d\u0438\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0432 \u0441\u0442\u044b\u043a\u0435     gl_Position =vec4((-A_1.x+P1.x), (-A_1.y+P1.y), 0.0, 1.0);            EmitVertex(); }  void main() {     \/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     vec2 p_= get_general_point_corner(gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     vec2 p_1=get_general_point_corner(gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);      \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a-\u043b\u0438\u043d\u0438\u044e     bild_quard(p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);         \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u044b\u043a\u0430 \u043b\u0438\u043d\u0438\u0439     oblique_connection(p_1,gl_in[1].gl_Position.xy);     EndPrimitive(); } <\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0439\u0434\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/556\/f6e\/395\/556f6e3955b7bf1a6412a2cb07266fa4.png\" width=\"974\" height=\"221\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/556\/f6e\/395\/556f6e3955b7bf1a6412a2cb07266fa4.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1cf\/53a\/951\/1cf53a951cc19d8b99aaebdf34a1353d.png\" width=\"974\" height=\"213\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cf\/53a\/951\/1cf53a951cc19d8b99aaebdf34a1353d.png\"\/><\/figure>\n<p>\u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0441\u043f\u043e\u0441\u043e\u0431. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438 \u0438\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.   <\/p>\n<h2>\u041f\u0440\u044f\u043c\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u044b\u043a\u0430, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 <strong>P<sub>6 <\/sub><\/strong>:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/772\/f9d\/e0c\/772f9de0c81149db87b7a1574d41fdc2.png\" width=\"465\" height=\"351\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/772\/f9d\/e0c\/772f9de0c81149db87b7a1574d41fdc2.png\"\/><\/figure>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u043d\u0430\u0448\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b\u00a0\u043b\u0438\u043d\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043d\u0430\u00a0\u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438, \u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0447\u043a\u0443 \u043f\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043f\u0440\u044f\u043c\u044b\u0445\u00a0\u043b\u0438\u043d\u0438\u0439 \u0438\u043b\u0438\u00a0\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0442\u043e\u00a0\u043e\u043d\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b. \u0410\u00a0\u0437\u043d\u0430\u0447\u0438\u0442, \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u0443 \u0442\u043e\u0447\u043a\u0443, \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u00a0\u0442\u043e\u0447\u043a\u0430\u043c <strong>P<sub>0<\/sub><\/strong> \u0438 <strong>P<sub>2<\/sub><\/strong> \u043f\u0435\u0440\u0432\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0439\u00a0\u043b\u0438\u043d\u0438\u0438, \u0438 \u043f\u043e\u00a0\u0442\u043e\u0447\u043a\u0430\u043c <strong>P<sub>4<\/sub><\/strong> \u0438 <strong>P<sub>5<\/sub><\/strong>  \u0432\u0442\u043e\u0440\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u0430\u00a0\u043f\u043e\u0442\u043e\u043c \u0438\u0445 \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u044f\u0442\u044c.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 \u0434\u043b\u044f <strong>P<sub>0<\/sub><\/strong> \u0438 <strong>P<sub>2<\/sub><\/strong> :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{{y}_{2}-{y}_{0}}{{x}_{2}-{x}_{0}}\\ast x+\\frac{{x}_{2}\\ast {y}_{0}-{x}_{0}\\ast {y}_{2}}{{x}_{0}-{x}_{0}}=y\" alt=\"\\frac{{y}_{2}-{y}_{0}}{{x}_{2}-{x}_{0}}\\ast x+\\frac{{x}_{2}\\ast {y}_{0}-{x}_{0}\\ast {y}_{2}}{{x}_{0}-{x}_{0}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/503\/be7\/0df\/503be70df5a70f0eecdc6bbbd6cd4704.svg\" width=\"301\" height=\"45\"\/><\/p>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043b\u0438\u043d\u0438\u0438 (\u0442.\u0435. \u0446\u0435\u043d\u0442\u0440\u043e\u0432), \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{x}_{0}={x}^{\\text{'}}+{{x}_{0}}^{\\text{'}\\text{'}}\\\\  {x}_{2}={x}^{\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" alt=\"\\begin{cases}{x}_{0}={x}^{\\text{'}}+{{x}_{0}}^{\\text{'}\\text{'}}\\\\  {x}_{2}={x}^{\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/680\/072\/a76\/680072a76eeae0a311f66a49721a2478.svg\" width=\"136\" height=\"49\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{y}_{0}={y}^{\\text{'}}+{{y}_{0}}^{\\text{'}\\text{'}}\\\\  {y}_{2}={y}^{\\text{'}}+{{y}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" alt=\"\\begin{cases}{y}_{0}={y}^{\\text{'}}+{{y}_{0}}^{\\text{'}\\text{'}}\\\\  {y}_{2}={y}^{\\text{'}}+{{y}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/01f\/d96\/4db\/01fd964dbac4be0d94aa7c29d70c2e4a.svg\" width=\"131\" height=\"50\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{x}_{1}=-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}\\\\  {x}_{2}=-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" alt=\"\\begin{cases}{x}_{1}=-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}\\\\  {x}_{2}=-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f33\/2f9\/ae5\/f332f9ae5ee089754c6534226333e0a4.svg\" width=\"191\" height=\"61\"\/><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}{y}_{1}=S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{0}}^{\\text{'}\\text{'}}\\\\  {y}_{2}=S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" alt=\"\\begin{cases}{y}_{1}=S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{0}}^{\\text{'}\\text{'}}\\\\  {y}_{2}=S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{1}}^{\\text{'}\\text{'}}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c40\/179\/587\/c401795878d0056a992326928aa65ea9.svg\" width=\"175\" height=\"61\"\/><\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{1}}^{\\text{'}\\text{'}}-S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}-{{y}_{0}}^{\\text{'}\\text{'}}}{S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}-S\\frac{{y}_{1}-{y}_{0}}{L}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\\\+\\frac{\\left(-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{1}}^{\\text{'}\\text{'}}\\right)\\ast \\left(S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{0}}^{\\text{'}\\text{'}}\\right)-\\left(-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\ast \\left(S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{1}}^{\\text{'}\\text{'}}\\right)}{S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}-S\\frac{{y}_{1}-{y}_{0}}{L}-{{x}_{1}}^{\\text{'}\\text{'}}}=y \" alt=\"\\frac{S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{1}}^{\\text{'}\\text{'}}-S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}-{{y}_{0}}^{\\text{'}\\text{'}}}{S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}-S\\frac{{y}_{1}-{y}_{0}}{L}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\\\+\\frac{\\left(-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{1}}^{\\text{'}\\text{'}}\\right)\\ast \\left(S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{0}}^{\\text{'}\\text{'}}\\right)-\\left(-S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\ast \\left(S\\frac{{x}_{1}-{x}_{0}}{{L}^{}}+{{y}_{1}}^{\\text{'}\\text{'}}\\right)}{S\\frac{{y}_{1}-{y}_{0}}{L}+{{x}_{0}}^{\\text{'}\\text{'}}-S\\frac{{y}_{1}-{y}_{0}}{L}-{{x}_{1}}^{\\text{'}\\text{'}}}=y \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9dc\/6f3\/d84\/9dc6f3d843b9457236dbb44450e87039.svg\" width=\"675\" height=\"142\"\/><\/p>\n<p>\u0421\u043e\u043a\u0440\u0430\u0442\u0438\u043c\u00a0\u043b\u0438\u0448\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\frac{\\left({{x}_{}}^{\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}\\right)\\ast \\left({{y}_{}}^{\\text{'}}+{{y}_{0}}^{\\text{'}\\text{'}}\\right)+\\left({{x}_{}}^{\\text{'}}+{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\ast \\left({{y}_{}}^{\\text{'}}+{{y}_{1}}^{\\text{'}\\text{'}}\\right)}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\frac{\\left({{x}_{}}^{\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}\\right)\\ast \\left({{y}_{}}^{\\text{'}}+{{y}_{0}}^{\\text{'}\\text{'}}\\right)+\\left({{x}_{}}^{\\text{'}}+{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\ast \\left({{y}_{}}^{\\text{'}}+{{y}_{1}}^{\\text{'}\\text{'}}\\right)}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eed\/0fe\/042\/eed0fe042d6ef405051c774468c0a708.svg\" width=\"587\" height=\"53\"\/><\/p>\n<p>\u0420\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0438: <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\\\+\\frac{{{x}_{}}^{\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{}}^{\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\\\+\\frac{{{x}_{}}^{\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{}}^{\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ba2\/d4b\/c11\/ba2d4bc11cbe0ee4d0f593645d140e09.svg\" width=\"685\" height=\"108\"\/><\/p>\n<p>\u0418 \u0435\u0449\u0451 \u0440\u0430\u0437 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{}}^{\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{}}^{\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}+{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/25e\/867\/19e\/25e86719ec9f9af78a0923c251791bb0.svg\" width=\"594\" height=\"51\"\/><\/p>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u0435\u0433\u043e \u043d\u0430 \u0442\u0440\u0438 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{}}^{\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{{{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\ast x+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}+{{x}_{}}^{\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{}}^{\\text{'}}-{{x}_{}}^{\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/917\/713\/1be\/9177131beeb1272f51a89fcec550711f.svg\" width=\"601\" height=\"51\"\/><\/p>\n<p>\u0423\u043c\u043d\u043e\u0436\u0438\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0438 \u0432\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043d\u0430 <strong>S\/L<\/strong> :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{\\frac{S}{L}({{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}})}{\\frac{S}{L}({{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}})}\\ast x+\\frac{{{y}_{}}^{\\text{'}}\\left({{x}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}+{{x}_{}}^{\\text{'}}\\left(y_{0}\\text{'}\\text{'}-{{y}_{1}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}}{\\frac{S}{L}\\left({{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}\\right)}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{\\frac{S}{L}({{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}})}{\\frac{S}{L}({{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}})}\\ast x+\\frac{{{y}_{}}^{\\text{'}}\\left({{x}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}+{{x}_{}}^{\\text{'}}\\left(y_{0}\\text{'}\\text{'}-{{y}_{1}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}}{\\frac{S}{L}\\left({{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}\\right)}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ba6\/3a4\/18f\/ba63a418f91fb14271057a46e2bcbd50.svg\" width=\"682\" height=\"62\"\/><\/p>\n<p>  \u041f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u043a\u0438 \u0432\u00a0\u0441\u043a\u043e\u0431\u043a\u0430\u0445:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{\\frac{S}{L}({{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}})}{\\frac{S}{L}({{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}})}\\ast x+\\frac{{{y}_{}}^{\\text{'}}\\left({{x}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}-{{x}_{}}^{\\text{'}}\\left(y_{1}\\text{'}\\text{'}-{{y}_{0}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}}{-\\frac{S}{L}\\left({{x}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}\\right)}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{\\frac{S}{L}({{y}_{1}}^{\\text{'}\\text{'}}-{{y}_{0}}^{\\text{'}\\text{'}})}{\\frac{S}{L}({{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}})}\\ast x+\\frac{{{y}_{}}^{\\text{'}}\\left({{x}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}-{{x}_{}}^{\\text{'}}\\left(y_{1}\\text{'}\\text{'}-{{y}_{0}}^{\\text{'}\\text{'}}\\right)\\frac{S}{L}}{-\\frac{S}{L}\\left({{x}_{1}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}\\right)}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/506\/171\/c46\/506171c46f944b54ec5071b89fe2f084.svg\" width=\"682\" height=\"62\"\/><\/p>\n<p>  \u0418 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043c:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\frac{-{{x}_{}}^{\\text{'}}}{{{y}_{}}^{\\text{'}}}\\ast x-\\frac{{{{y}_{}}^{\\text{'}}}^{2}+{{{x}_{}}^{\\text{'}}}^{2}}{{{y}_{}}^{\\text{'}}}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" alt=\"\\frac{-{{x}_{}}^{\\text{'}}}{{{y}_{}}^{\\text{'}}}\\ast x-\\frac{{{{y}_{}}^{\\text{'}}}^{2}+{{{x}_{}}^{\\text{'}}}^{2}}{{{y}_{}}^{\\text{'}}}+\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f8\/693\/140\/4f8693140ff8617d2edb107634f43a25.svg\" width=\"375\" height=\"55\"\/><\/p>\n<p>\u041f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u043c \u0447\u0430\u0441\u0442\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}a=\\frac{-{{x}_{}}^{\\text{'}}}{{{y}_{}}^{\\text{'}}}\\\\  b=\\frac{{{{y}_{}}^{\\text{'}}}^{2}+{{{x}_{}}^{\\text{'}}}^{2}}{{{y}_{}}^{\\text{'}}}\\\\  c=\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\end{cases}\" alt=\"\\begin{cases}a=\\frac{-{{x}_{}}^{\\text{'}}}{{{y}_{}}^{\\text{'}}}\\\\  b=\\frac{{{{y}_{}}^{\\text{'}}}^{2}+{{{x}_{}}^{\\text{'}}}^{2}}{{{y}_{}}^{\\text{'}}}\\\\  c=\\frac{{{x}_{1}}^{\\text{'}\\text{'}}{{y}_{0}}^{\\text{'}\\text{'}}-{{x}_{0}}^{\\text{'}\\text{'}}{{y}_{1}}^{\\text{'}\\text{'}}}{{{x}_{0}}^{\\text{'}\\text{'}}-{{x}_{1}}^{\\text{'}\\text{'}}}\\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/45c\/87a\/760\/45c87a7606e4b3379a92cb33aaa86159.svg\" width=\"156\" height=\"114\"\/><\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0442 \u0432\u0438\u0434:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a\\ast x-b+c=y\" alt=\"a\\ast x-b+c=y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c4f\/b3a\/d2a\/c4fb3ad2ab09728b730b22eda305151f.svg\" width=\"138\" height=\"20\"\/><\/p>\n<p>\u0417\u0430\u0447\u0435\u043c \u043c\u044b \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438? <\/p>\n<p>\u0412\u043e\u2011\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u0432\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430. \u041f\u0435\u0440\u0432\u044b\u0439, <strong>c <\/strong>\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0434\u043e\u00a0\u0446\u0435\u043d\u0442\u0440\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439\u00a0\u043b\u0438\u043d\u0438\u0438(\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043d\u0430\u00a0\u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u00a0\u043b\u0438\u043d\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0443\u044e\u00a0\u0436\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439, \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435).<\/p>\n<p>\u0412\u043e\u2011\u0432\u0442\u043e\u0440\u044b\u0445, <strong>b <\/strong>\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u00a0\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439\u00a0\u043b\u0438\u043d\u0438\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u0434\u043e\u00a0\u0433\u0440\u0430\u043d\u0438\u0446. \u0417\u043d\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u00a0\u0442\u043e\u043c, \u0441\u00a0\u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u0430\u044f\u00a0\u043b\u0438\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c, \u0441\u043b\u0435\u0432\u0430(\u2011) \u0438\u043b\u0438\u00a0\u0441\u043f\u0440\u0430\u0432\u0430(+). <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{a}_{0}\\ast x-{b}_{0}+{c}_{0}={a}_{1}\\ast x-{b}_{1}+{c}_{1}\" alt=\"{a}_{0}\\ast x-{b}_{0}+{c}_{0}={a}_{1}\\ast x-{b}_{1}+{c}_{1}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ccd\/36c\/c0f\/ccd36cc0fe10dbd6c7aed3ad6765c3b9.svg\" width=\"285\" height=\"20\"\/><\/p>\n<p>\u0418 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 <strong>x <\/strong>(<strong>y<\/strong> \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"x=\\frac{-{b}_{1}+{c}_{1}-\\left(-{b}_{0}+{c}_{0}\\right)}{\\left({a}_{0}-{a}_{1}\\right)}\" alt=\"x=\\frac{-{b}_{1}+{c}_{1}-\\left(-{b}_{0}+{c}_{0}\\right)}{\\left({a}_{0}-{a}_{1}\\right)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1e\/5c7\/213\/f1e5c7213870f05e17dab139c8019052.svg\" width=\"228\" height=\"50\"\/><\/p>\n<p>\u041a\u0430\u043a\u00a0\u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0432\u00a0\u043c\u0435\u0442\u043e\u0434\u0435 \u043f\u0440\u043e\u00a0\u043a\u043e\u0441\u043e\u0439 \u0441\u043a\u043e\u0441, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u00a0\u0448\u0435\u0439\u0434\u0435\u0440\u0435 \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u0447\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043d\u0430\u0439\u0434\u0451\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u043e\u0447\u043a\u0443 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u044f\u043c\u044b\u0435\u00a0\u043b\u0438\u043d\u0438\u0438 \u043f\u0440\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430. \u0411\u043b\u0430\u0433\u043e, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u043a\u0430 \u0443\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <strong>b <\/strong>\u043d\u0430\u00a0\u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u0444\u0430\u043a\u0442\u0443.<\/p>\n<p>\u0420\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0441\u0442\u044b\u043a\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u00a0\u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0438\u0437\u2011\u0437\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u0442\u043e\u0440\u043e\u0439\u00a0\u2014 \u043d\u043e\u0432\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0418 \u0442\u0443\u0442, \u0432\u00a0\u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0441\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e, \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0f5\/db7\/cfd\/0f5db7cfd882b4a512e1fdcfcb145ef6.png\" alt=\"\" title=\"\" width=\"310\" height=\"376\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0f5\/db7\/cfd\/0f5db7cfd882b4a512e1fdcfcb145ef6.png\"\/><\/figure>\n<p>\u042f \u0434\u0443\u043c\u0430\u044e \u043a\u043e\u0434 \u0448\u0435\u0439\u0434\u0435\u0440\u0430 \u0443\u0436\u0435 \u043f\u043e\u044f\u0441\u043d\u044f\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0442\u0443\u0442 \u0442\u043e\u0436\u0435 \u0432\u0441\u0451 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u0418\u0437 \u043d\u043e\u0432\u043e\u0433\u043e \u043b\u0438\u0448\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>6<\/sub><\/strong> (<strong>P<sub>9<\/sub><\/strong> ) :<\/p>\n<pre><code class=\"cpp\">#version 400 core \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u043e\u0447\u043a\u0438 (x0;y0),(x1;y1),(x2;y2) \u0438 (x3;y4) layout (lines_adjacency) in;  \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \/\/(\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \/\/strip \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430  \/\/\u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b \u0434\u0432\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e) layout (triangle_strip, max_vertices = 6) out;  in  float S[];\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438  \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u044f vec2 get_general_point_corner(vec2 P0,vec2 P1){     float L =(distance(P0,P1));      float K=S[0]\/L;      float x_=-K*(P1.y-P0.y);     float y_=K*(P1.x-P0.x);      return vec2(x_,y_); }   void bild_quard(vec2 A_0, vec2 P0, vec2 P1){     \/\/ 1:bottom-left     gl_Position =vec4((A_0.x+P0.x), (A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 2:bottom-right     gl_Position =vec4((-A_0.x+P0.x),  (-A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 3:top-left     gl_Position =vec4((A_0.x+P1.x), (A_0.y+P1.y), 0.0, 1.0);         EmitVertex();     \/\/ 4:top-right     gl_Position =vec4((-A_0.x+P1.x),  (-A_0.y+P1.y), 0.0, 1.0);       EmitVertex(); }  vec2 get_point_corner(int side,                       vec2 A_0,vec2 P0,vec2 P1,                       vec2 A_1,vec2 P2,vec2 P3){      float a_0= -A_0.x\/A_0.y;     float a_1= -A_1.x\/A_1.y;      float b_0 = side*(A_0.x*A_0.x+A_0.y*A_0.y)\/A_0.y + (P1.x*P0.y-P0.x*P1.y)\/(P1.x-P0.x);     float b_1 = side*(A_1.x*A_1.x+A_1.y*A_1.y)\/A_1.y + (P3.x*P2.y-P2.x*P3.y)\/(P3.x-P2.x);      float x=-(b_0-b_1)\/(a_0-a_1);     float y=a_0*x+b_0;      return vec2(x,y); }  void direct_connection(vec2 T_0, vec2 T_1,vec2 A_1, vec2 P1){     gl_Position =vec4(T_0.xy, 0.0, 1.0);     EmitVertex();     gl_Position =vec4(T_1.xy, 0.0, 1.0);     EmitVertex();     gl_Position =vec4((A_1.x+P1.x), (A_1.y+P1.y), 0.0, 1.0);     EmitVertex();     gl_Position =vec4((-A_1.x+P1.x), (-A_1.y+P1.y), 0.0, 1.0);     EmitVertex(); }  void main() {     \/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     vec2 p_= get_general_point_corner(gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     vec2 p_1=get_general_point_corner(gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);      \/\/\u0438\u0449\u0451\u043c \u0442\u043e\u0447\u043a\u0443 \u0443\u0433\u043b\u0430     vec2 t_= get_point_corner( 1,p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy,                                                                    p_1,gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);     vec2 t_1=get_point_corner(-1,p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy,                                                           p_1,gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);       \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a-\u043b\u0438\u043d\u0438\u044e     bild_quard(p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);          \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u044b\u043a\u0430 \u043b\u0438\u043d\u0438\u0439     direct_connection(t_,t_1,p_1,gl_in[1].gl_Position.xy);     EndPrimitive(); } <\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/523\/4c2\/a70\/5234c2a70bc048afc552e2a08c4c5753.png\" width=\"974\" height=\"217\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/523\/4c2\/a70\/5234c2a70bc048afc552e2a08c4c5753.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7b5\/366\/9b8\/7b53669b8bf6f4e5f53057939e2f19b3.png\" width=\"974\" height=\"254\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7b5\/366\/9b8\/7b53669b8bf6f4e5f53057939e2f19b3.png\"\/><\/figure>\n<p>\u0423\u0436\u0435 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041d\u043e\u00a0\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u0435\u0449\u0451 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u00a0\u043b\u0438\u043d\u0438\u0438.<\/p>\n<h2>\u0417\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0441\u0442\u044b\u043a\u0430. \u0410 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 \u043a\u043e\u0441\u043e\u0433\u043e \u0441\u0442\u044b\u043a\u0430, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u044f\u0445 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u0441\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u0442\u0440\u0438 \u0442\u043e\u0447\u043a\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u0440\u0438\u0432\u043e\u0439 \u0411\u0435\u0437\u044c\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u0439 <a href=\"https:\/\/habr.com\/ru\/articles\/344814\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>). \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u043e\u0438\u043c\u0438 \u0441\u0442\u044b\u043a\u0430\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9bc\/70c\/5b6\/9bc70c5b646106e4062fa9133f6820b1.png\" width=\"586\" height=\"505\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9bc\/70c\/5b6\/9bc70c5b646106e4062fa9133f6820b1.png\"\/><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043a\u0440\u0438\u0432\u0443\u044e \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0435\u0451 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"{B\\left(t\\right)=\\left(t-1\\right)}^{2}{P}_{0}+2\\ast t\\ast \\left(t-1\\right){P}_{1}+{t}^{2}{P}_{2}\" alt=\"{B\\left(t\\right)=\\left(t-1\\right)}^{2}{P}_{0}+2\\ast t\\ast \\left(t-1\\right){P}_{1}+{t}^{2}{P}_{2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5ae\/93a\/b8f\/5ae93ab8f59e38a610cad646ab921def.svg\" width=\"367\" height=\"26\"\/><\/p>\n<p>\u0433\u0434\u0435 t \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 0 \u0434\u043e 1.<\/p>\n<p>\u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c t \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u0437\u0433\u0438\u0431\u0430 (\u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0448\u0430\u0433, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c). \u0422\u0443\u0442 \u0442\u0430\u043a \u0436\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0437\u0435\u0440\u043a\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438, \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2dc\/595\/41d\/2dc59541d437799a809e52c17de9a9c4.png\" width=\"487\" height=\"431\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2dc\/595\/41d\/2dc59541d437799a809e52c17de9a9c4.png\"\/><\/figure>\n<p>\u041a\u0430\u043a\u00a0\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0430\u0440\u043d\u044b\u0439 \u0438\u0437\u0433\u0438\u0431, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u2011\u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0438\u0437\u00a0\u043e\u0431\u043e\u0438\u0445\u00a0\u043b\u0438\u043d\u0438\u0439. \u041d\u0430\u00a0\u044d\u0442\u043e\u043c \u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u0448\u0435\u0439\u0434\u0435\u0440 \u0434\u043b\u044f\u00a0\u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f:.<\/p>\n<pre><code class=\"cpp\">#version 400 core \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u043e\u0447\u043a\u0438 (x0;y0),(x1;y1),(x2;y2) \u0438 (x3;y4) layout (lines_adjacency) in;  \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \/\/(\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \/\/strip \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430  \/\/\u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b \u0434\u0432\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e) layout (triangle_strip, max_vertices = 48) out;  in  float S[];\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438  \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u044f vec2 get_general_point_corner(vec2 P0,vec2 P1){     float L =(distance(P0,P1));      float K=S[0]\/L;      float x_=-K*(P1.y-P0.y);     float y_=K*(P1.x-P0.x);      return vec2(x_,y_); }   void bild_quard(vec2 A_0, vec2 P0, vec2 P1){     \/\/ 1:bottom-left     gl_Position =vec4((A_0.x+P0.x), (A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 2:bottom-right     gl_Position =vec4((-A_0.x+P0.x),  (-A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 3:top-left     gl_Position =vec4((A_0.x+P1.x), (A_0.y+P1.y), 0.0, 1.0);         EmitVertex();     \/\/ 4:top-right     gl_Position =vec4((-A_0.x+P1.x),  (-A_0.y+P1.y), 0.0, 1.0);       EmitVertex(); }  vec2 get_point_corner(int side,                       vec2 A_0,vec2 P0,vec2 P1,                       vec2 A_1,vec2 P2,vec2 P3){      float a_0= -A_0.x\/A_0.y;     float a_1= -A_1.x\/A_1.y;      float b_0 = side*(A_0.x*A_0.x+A_0.y*A_0.y)\/A_0.y + (P1.x*P0.y-P0.x*P1.y)\/(P1.x-P0.x);     float b_1 = side*(A_1.x*A_1.x+A_1.y*A_1.y)\/A_1.y + (P3.x*P2.y-P2.x*P3.y)\/(P3.x-P2.x);      float x=-(b_0-b_1)\/(a_0-a_1);     float y=a_0*x+b_0;      return vec2(x,y); }  void bezier_connection(vec2 T_0, vec2 T_1,vec2 A_0,vec2 A_1, vec2 P1){     vec2 H0=vec2( A_0.x+P1.x, A_0.y+P1.y);     vec2 H1=vec2(-A_0.x+P1.x,-A_0.y+P1.y);      vec2 H2=vec2( A_1.x+P1.x, A_1.y+P1.y);     vec2 H3=vec2(-A_1.x+P1.x,-A_1.y+P1.y);      float t=0.0;     int count=16;     for(int z = 0; z &lt; count+1; z++){         vec2 B_0=(1-t)*(1-t)*H0+2*t*(1-t)*T_0+t*t*H2;         vec2 B_1=(1-t)*(1-t)*H1+2*t*(1-t)*T_1+t*t*H3;          gl_Position =vec4(B_0.xy, 0.0, 1.0);         EmitVertex();         gl_Position =vec4(B_1.xy, 0.0, 1.0);         EmitVertex();          t+=1.0\/count;     } }   void main() {     \/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     vec2 p_= get_general_point_corner(gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     vec2 p_1=get_general_point_corner(gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);      \/\/\u0438\u0449\u0451\u043c \u0442\u043e\u0447\u043a\u0443 \u0443\u0433\u043b\u0430     vec2 t_= get_point_corner( 1,p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy,                                                                    p_1,gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);     vec2 t_1=get_point_corner(-1,p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy,                                                           p_1,gl_in[1].gl_Position.xy,gl_in[2].gl_Position.xy);       \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a-\u043b\u0438\u043d\u0438\u044e     bild_quard(p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);        \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 c\u0442\u044b\u043a\u0430 \u043b\u0438\u043d\u0438\u0439     bezier_connection(t_,t_1,p_,p_1,gl_in[1].gl_Position.xy);     EndPrimitive(); }<\/code><\/pre>\n<p>\u0418 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3a5\/ef6\/691\/3a5ef6691b38afda37ff1667a7767401.png\" width=\"974\" height=\"199\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3a5\/ef6\/691\/3a5ef6691b38afda37ff1667a7767401.png\"\/><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e64\/40e\/4e8\/e6440e4e80a8d6ba1cdc1b1b406c0c01.png\" width=\"974\" height=\"223\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e64\/40e\/4e8\/e6440e4e80a8d6ba1cdc1b1b406c0c01.png\"\/><\/figure>\n<p>\u041a\u0430\u043a\u00a0\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0441\u0442\u044b\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e, \u0447\u0442\u043e\u00a0\u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0447\u0435\u043c\u0443\u00a0\u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432.<\/p>\n<h2>\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0412 \u043d\u0430\u0448\u0435\u0439 \u0436\u0438\u0437\u043d\u0438 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u0438\u043d\u0438\u044f. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u0441\u044f, \u0442\u043e \u0432\u0441\u0451 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435. \u0414\u0430\u0436\u0435 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043b\u0438\u043d\u0438\u044e, \u0447\u0443\u0442\u044c \u0442\u043e\u043b\u0449\u0435, \u0447\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u044b \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438.<\/p>\n<p><span class=\"habrahidden\">\u041e\u0442\u0432\u0435\u0447\u0430\u044f \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0441\u0442\u0430\u0442\u044c\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u043e, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0442\u043e\u043d\u043a\u0438\u0435, \u0438 \u0441\u043b\u043e\u0436\u043d\u043e, \u0435\u0441\u043b\u0438 \u0433\u043b\u0430\u0437 \u0432\u0438\u0434\u0438\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f.<\/span><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/811345\/\"> https:\/\/habr.com\/ru\/articles\/811345\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u043e\u0437\u044c\u043c\u0438\u0442\u0435\u00a0\u043b\u0438\u043d\u0435\u0439\u043a\u0443, \u043a\u0430\u0440\u0430\u043d\u0434\u0430\u0448 \u0438\u043b\u0438\u00a0\u0440\u0443\u0447\u043a\u0443 \u0438 \u043d\u0430\u0447\u0435\u0440\u0442\u0438\u0442\u0435 \u043d\u0430\u00a0\u0431\u0443\u043c\u0430\u0433\u0435\u00a0\u043b\u0438\u043d\u0438\u044e. \u0423\u00a0\u0432\u0430\u0441 \u0432\u044b\u0439\u0434\u0435\u0442 \u043a\u0430\u043a\u2011\u0442\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u044b \u0441\u043a\u0430\u0436\u0435\u0442\u0435, \u0447\u0442\u043e\u00a0\u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e? \u0410\u00a0\u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u00a0\u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0433\u043e\u00a0\u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u00a0\u043b\u0438\u043d\u0438\u044e \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \u0432 5\u201310\u00a0\u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435 \u0448\u0438\u0440\u0438\u043d\u044b \u043a\u0435\u0433\u043b\u044f. \u0423\u0436\u0435 \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043d\u0435\u00a0\u0442\u0430\u043a\u00a0\u043b\u0438?:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041b\u0430\u0434\u043d\u043e, \u0441\u043a\u0430\u0436\u0435\u0442\u0435 \u0432\u044b, \u0443\u00a0\u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0442\u043e\u043b\u0449\u0435 \u0440\u0443\u0447\u043a\u0438! \u0414\u0430, \u0432\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u0435 \u0441\u0435\u0431\u0435 \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u043e\u00a0\u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e \u0442\u043e\u043b\u0449\u0435? \u0411\u0443\u0434\u0435\u0442 \u0441\u043d\u043e\u0432\u0430 \u043d\u0435\u00a0\u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0412\u044b \u043f\u0440\u0438\u0434\u0451\u0442\u0435 \u043a\u00a0\u0432\u044b\u0432\u043e\u0434\u0443, \u0447\u0442\u043e\u00a0\u0442\u043e\u043d\u043a\u0430\u044f\u00a0\u043b\u0438\u043d\u0438\u044f\u00a0\u043b\u0438\u0448\u044c \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0442\u043e\u043d\u043a\u043e\u0439, \u0435\u0441\u043b\u0438 \u0435\u0451 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0448\u0438\u0440\u0438\u043d\u0443 \u0438 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e\u00a0\u0438 \u043f\u0440\u0438\u00a0\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u043b\u0438\u043d\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0448\u0438\u0440\u0438\u043d\u044b. \u0410\u00a0\u0432\u0441\u0451 \u0434\u0435\u043b\u043e \u0432\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043b\u0438\u043d\u0438\u0438 \u044d\u0442\u043e \u043d\u0435\u00a0\u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b (\u0442. \u0435. \u043d\u0435 1d \u043e\u0431\u044a\u0435\u043a\u0442\u044b). <\/p>\n<p>\u0412\u0441\u0435\u00a0\u043b\u0438\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u044e\u0442 \u0442\u043e\u043b\u0449\u0438\u043d\u0443, \u0430\u00a0\u043b\u0438\u043d\u0438\u0438 \u0441\u00a0\u0442\u043e\u043b\u0449\u0438\u043d\u043e\u0439 \u044d\u0442\u043e \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 (\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e\u00a0\u0432\u00a0\u043d\u0430\u0448\u0435\u043c \u043c\u0438\u0440\u0435 \u0432\u0441\u0451 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u00a0\u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u0432\u043e\u00a0\u0432\u0441\u0435\u0445 \u0442\u0440\u0451\u0445 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044f\u0445). \u041d\u043e\u00a0\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u0443\u044e \u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u0443\u044e\u00a0\u043b\u0438\u043d\u0438\u044e, \u0442\u043e\u00a0\u043b\u0438\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u00a0\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. \u0410\u00a0\u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e\u00a0\u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e, \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u00a0\u0437\u0430\u0434\u0430\u0447\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a. <\/p>\n<p>\u0412\u00a0\u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenGL, \u0430\u00a0\u0438\u043c\u0435\u043d\u043d\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0448\u0435\u0439\u0434\u0435\u0440\u044b \u043d\u0430\u00a0\u044f\u0437\u044b\u043a\u0435 GLSL. \u0412\u0441\u0451 \u0447\u0442\u043e\u00a0\u043e\u043d\u0438 \u0434\u0435\u043b\u0430\u044e\u0442\u00a0\u2014 \u044d\u0442\u043e \u0431\u0435\u0440\u0443\u0442 \u043d\u0430\u00a0\u0432\u0445\u043e\u0434 \u0442\u043e\u0447\u043a\u0438 \u0444\u0438\u0433\u0443\u0440\u044b, \u0430\u00a0\u0434\u0430\u043b\u0435\u0435 \u0441\u0442\u0440\u043e\u044f\u0442 \u0438\u0437\u00a0\u043d\u0438\u0445 \u0444\u0438\u0433\u0443\u0440\u044b. \u0412\u0435\u0441\u044c \u0438\u0445 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u043d\u0438\u044f GLSL \u043d\u0435\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0434\u043b\u044f\u00a0\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0446\u0435\u043d\u0442\u0440\u043e\u0432 \u0435\u0433\u043e \u0441\u0442\u043e\u0440\u043e\u043d, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0434\u0440\u0443\u0433 \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u0434\u0440\u0443\u0433\u0430. \u0410\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u0448\u0438\u0440\u0438\u043d\u0430 \u044d\u0442\u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d. \u041d\u0430\u0439\u0442\u0438\u00a0\u0436\u0435 \u043d\u0430\u043c \u043d\u0430\u0434\u043e, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0433\u043b\u043e\u0432 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u043d, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e\u00a0\u0438\u0437\u00a0\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437\u00a0\u0443\u0433\u043b\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0433\u043b\u043e\u0432.<\/p>\n<p>\u0422\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong> \u0438 <strong>P<sub>2<\/sub><\/strong> \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438 \u043d\u0430\u00a0<strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u00a0\u043e\u0441\u044f\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a <strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b\u00a0\u0436\u0435 \u0442\u043e\u0447\u0435\u043a <strong>P<sub>1<\/sub><\/strong> \u0438 <strong>P<sub>2<\/sub><\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435\u00a0\u2014 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e <strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438\u00a0\u043b\u0438\u0448\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f <strong>x<\/strong> \u0438 <strong>y<\/strong> \u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. \u0410\u00a0\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a\u00a0\u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041f\u0435\u0440\u0432\u044b\u0439\u00a0\u2014 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0438, \u0432\u0442\u043e\u0440\u043e\u0439\u00a0\u2014 \u0437\u043d\u0430\u043d\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u0432\u0435\u043a\u0442\u043e\u0440\u0430\u043c\u0438. \u041a\u0430\u043a\u043e\u0439 \u0438\u0437\u00a0\u043d\u0438\u0445 \u043f\u0440\u043e\u0449\u0435 \u0434\u043b\u044f\u00a0\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0440\u0435\u0448\u0430\u0442\u044c \u0432\u0430\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0448\u0443 \u0438\u0445 \u043e\u0431\u0430. <\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u043b\u0438\u043d\u044b \u043b\u0438\u043d\u0438\u0439<\/h2>\n<p>\u041d\u0430\u0447\u043d\u0451\u043c \u0441\u00a0\u043c\u0435\u0442\u043e\u0434\u0430, \u0434\u043b\u044f\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u043d\u0438\u044f \u0442\u0435\u043e\u0440\u0435\u043c\u044b \u041f\u0438\u0444\u0430\u0433\u043e\u0440\u0430. \u0412\u00a0\u0447\u0451\u043c \u0441\u0443\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong> \u0434\u0432\u0443\u043c\u044f \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0430\u00a0\u0438\u0437\u00a0\u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0432\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0440\u0435\u0448\u0438\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0435\u0451 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b. \u0412\u044b\u0447\u0442\u044f \u0438\u0437\u00a0\u043d\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u043a\u0438 <strong>\u0426<sub>0<\/sub><\/strong>, \u043c\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0440\u0438\u0441\u0443\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043e\u043a:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0434\u0432\u0435 \u043f\u0440\u044f\u043c\u044b\u0435 <strong>L<\/strong> \u0438 <strong>M<\/strong>. \u0418\u0445 \u0434\u043b\u0438\u043d\u0443 \u0447\u0435\u0440\u0435\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<p>\u0418\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u044e \u043d\u0430\u0441 \u0442\u043e\u0447\u043a\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a:   <\/p>\n<p>\u0414\u0432\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0434\u0432\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0438\u0442, \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c\u00a0\u043b\u0438\u0448\u044c \u0435\u0433\u043e \u043d\u0430\u0439\u0442\u0438. \u0414\u043b\u044f\u00a0\u0441\u0442\u0440\u043e\u0433\u043e\u0441\u0442\u0438, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u043e\u043b\u043d\u043e\u0439 \u044d\u0442\u0430\u043f \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043e\u043d \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u0435\u043d. \u0420\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0438:<\/p>\n<p>\u0418 \u0435\u0449\u0451 \u043e\u0434\u043d\u0438:<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0434\u043b\u0438\u043d\u044b \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438:<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p>\u0410 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u044f\u0442\u044c \u043e\u0431\u0435 \u0447\u0430\u0441\u0442\u0438:<\/p>\n<p>\u0423\u0431\u0435\u0440\u0451\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044b, \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u0437\u043d\u0430\u043a\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c:<\/p>\n<p>\u0412\u044b\u0440\u0430\u0437\u0438\u043c <strong>x<\/strong> \u0438 <strong>y<\/strong> \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0443\u0433-\u0434\u0440\u0443\u0433\u0430:<\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0451\u043c \u043a \u043d\u0443\u043b\u044e:<\/p>\n<p>\u0420\u0435\u0448\u0438\u043c \u0435\u0433\u043e, \u0434\u043b\u044f <strong>x<\/strong>:<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0434\u043b\u044f <strong>y<\/strong>:<\/p>\n<p>\u0418\u0445 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u043a\u0440\u043e\u0435\u043c \u0441\u043a\u043e\u0431\u043a\u0438:<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u0440\u0435\u043d\u044c \u0438\u0437 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u044d\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c, \u0430 \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u044d\u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u043e\u0447\u043a\u0430\u043c\u0438: <\/p>\n<p>\u0412\u00a0\u0446\u0435\u043b\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a\u00a0\u0443\u00a0\u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u00a0\u0437\u043d\u0430\u043a\u0443,\u0430 <strong>S<\/strong> \u0438 <strong>L<\/strong> \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u043c\u043e\u0434\u0443\u043b\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u0443\u0431\u0440\u0430\u0442\u044c:<\/p>\n<p>\u0412\u00a0\u0438\u0442\u043e\u0433\u0435, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u0432\u0430 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f\u00a0\u043b\u0438\u0448\u044c \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u0430\u043a\u043e\u0435 \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0441\u0434\u0432\u0438\u0433\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a. <\/p>\n<p>\u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430\u2011\u043b\u0438\u043d\u0438\u0438 \u0432\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0446\u0435\u043d\u0442\u0440\u0430. \u0422\u0430\u043a \u043a\u0430\u043a\u00a0\u0442\u043e\u0447\u043a\u0438 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b, \u0447\u0442\u043e\u00a0\u0431\u044b\u043b\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0432\u043b\u0438\u044f\u043d\u0438\u0435\u00a0\u043b\u0438\u0448\u044c \u043d\u0430\u00a0\u0442\u043e\u0447\u043a\u0443 <strong>P<sub>0<\/sub><\/strong> :<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0437\u043d\u0430\u043a, \u0432\u043b\u0438\u044f\u0435\u0442 \u043b\u0438\u0448\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a, \u0442\u043e\u00a0 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0437\u043d\u0430\u043a\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong>:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u0430\u043a\u00a0\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0438\u0437\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <strong>y<\/strong> \u0432\u00a0\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u0442 \u0437\u043d\u0430\u043a\u0443 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0\u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 <strong>y <\/strong>\u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong>  (\u0430 \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>1\u00a0<\/sub><\/strong>\u0432\u00a0\u0441\u0438\u043b\u0443 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a). <\/p>\n<p>\u0414\u043b\u044f <strong>x<\/strong> \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0440\u043e\u0432\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f, \u0437\u043d\u0430\u043a \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u043d\u043e\u0439, \u0447\u0435\u043c \u0437\u043d\u0430\u043a \u0440\u0430\u0437\u043d\u0438\u0446\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f x \u0431\u0443\u0434\u0435\u0442 \u0441\u00a0\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong>  (\u0430 \u0434\u043b\u044f\u00a0\u0442\u043e\u0447\u043a\u0438 <strong>P<sub>1\u00a0<\/sub><\/strong>\u0432\u00a0\u0441\u0438\u043b\u0443 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u043d\u0430\u043a). <\/p>\n<p>\u0412\u00a0\u0438\u0442\u043e\u0433\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435:<\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043d\u0430\u0441 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443, \u043d\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0451\u043c&#8230;<\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p>\u0422\u043e\u0447\u043a\u0438 \u043d\u0430\u00a0\u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u00a0\u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439 (\u0434\u043b\u0438\u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430) \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0442\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442. \u0422\u043e\u0433\u0434\u0430, \u043f\u0443\u0441\u0442\u044c \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>0<\/sub><\/strong> ,<strong>\u0426<sub>0<\/sub><\/strong> \u0438 <strong>\u0426<sub>1<\/sub><\/strong>  \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>,<strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>  \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b (\u0442.\u00a0\u0435. \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0443\u0433\u043e\u043b 90\u00a0\u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432). \u0417\u043d\u0430\u0447\u0438\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0438\u0437\u00a0\u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>  \u043d\u0430 90\u00a0\u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> , \u0442\u0430\u043a\u043e\u0439\u00a0\u0436\u0435 \u0434\u043b\u0438\u043d\u044b \u043a\u0430\u043a\u00a0\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u0442 <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0434\u043e <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>. \u0410\u00a0\u0442\u0430\u043a\u00a0\u0436\u0435 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043e\u0442 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u0434\u043e <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> . \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> . \u0410\u00a0\u0443\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup>  \u043d\u0430\u0439\u0442\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435.<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0439\u0434\u0451\u043c \u0432\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0437\u043d\u0438\u0446\u044b <strong>\u0426<sub>0<\/sub><\/strong><sup>\u2011<\/sup> \u0438 <strong>\u0426<sub>1<\/sub><\/strong><sup>\u2011<\/sup>: <\/p>\n<figure class=\"\"><\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0430\u00a0\u0443\u0433\u043e\u043b \u043d\u0430\u00a0\u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438  : <\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0443 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0438\u0437 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0443 <strong>P<sub>0<\/sub><\/strong><sup>\u2011<\/sup> , \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043e\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440:<\/p>\n<p>\u0412\u00a0\u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0442\u043e\u0447\u0435\u043a:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0439\u0434\u0451\u043c \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> \u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0448\u0438\u0440\u0438\u043d\u044b <strong>S<\/strong>:<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <strong>\u0426<sub>2<\/sub><\/strong><sup>\u2011<\/sup> , \u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u044f \u0435\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u0435\u0433\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043d\u0430\u00a0\u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d:<\/p>\n<p>\u041f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u043c\u0435\u0441\u0442\u043e <strong>\u041a<\/strong> \u0435\u0433\u043e \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:<\/p>\n<p>\u041c\u044b \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0448\u043b\u0438 \u043a \u0442\u0435\u043c \u0436\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c \u0447\u0442\u043e \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437! <\/p>\n<h2>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/h2>\n<p>\u0418 \u0432\u043e\u0442 \u0443\u00a0\u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f\u00a0\u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u00a0\u043b\u0438\u043d\u0438\u044e. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u043e, \u0437\u0430\u043e\u0434\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0432 \u0432\u0441\u0451 \u0432\u043c\u0435\u0441\u0442\u0435. \u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0440\u0435\u043d\u0434\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 6\u00a0\u044d\u0442\u0430\u043f\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432\u00a0\u044d\u0442\u043e\u043c \u0446\u0438\u043a\u043b\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/310790\/\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u0435\u0439<\/a>) \u0418\u0437\u00a0\u043d\u0438\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043b\u0438\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u00a0\u0442\u0440\u0438 \u044d\u0442\u0430\u043f\u0430 (\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u0441\u0438\u043d\u0438\u043c):<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0420\u0438\u0441\u0443\u043d\u043e\u043a \u0432\u0437\u044f\u0442 \u0438\u0437 <a href=\"https:\/\/learnopengl.com\/Getting-started\/Hello-Triangle\" rel=\"noopener noreferrer nofollow\">https:\/\/learnopengl.com\/Getting-started\/Hello-Triangle<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f\u00a0\u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u044f \u0438\u0445 \u0432\u00a0\u0432\u0435\u0440\u0448\u0438\u043d\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440. \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f\u00a0\u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0439\u00a0\u043b\u0438\u043d\u0438\u0438 \u0432\u00a0\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435(<a href=\"https:\/\/habr.com\/ru\/articles\/319144\/\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/a>): <\/p>\n<pre><code class=\"cpp\">#version 330 core  \/\/\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a \u043b\u0438\u043d\u0438\u0438 layout (location = 0) in float position_x; layout (location = 1) in float position_y;  \/\/\u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043c\u043e\u0434\u0435\u043b\u0438, \u0437\u0430\u0434\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f  \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 uniform mat4 model;  void main(){    \/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0442\u043e\u0447\u0435\u043a \u0432 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u0435\u0439\u0434\u0435\u0440     gl_Position = model *vec4(position_x,position_y,0.0f,1.0f); }<\/code><\/pre>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0439 \u0448\u0435\u0439\u0434\u0435\u0440 \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435, \u043e\u043d \u0437\u0430\u0434\u0430\u0451\u0442 \u043e\u0434\u0438\u043d \u0446\u0432\u0435\u0442 \u0432\u0441\u0435\u0439 \u043b\u0438\u043d\u0438\u0438:<\/p>\n<pre><code class=\"cpp\">#version 330 core  out vec4 color; uniform  vec4 mat_color;  void main(){     color=mat_color;\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0446\u0432\u0435\u0442 \u0432 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0442\u043e\u0440 };<\/code><\/pre>\n<p>\u041b\u044e\u0431\u044b\u0435 2d \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u0433\u0440\u0443\u043f\u043f\u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 (\u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c\u044e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e). \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u043d\u0438\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0438\u0445. \u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0448\u0435\u0439\u0434\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 (\u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u043b\u0438\u043d\u0438\u0438) \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u0438\u0442 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432. \u0422\u0430\u043a \u043a\u0430\u043a \u0432\u044b\u0432\u043e\u0434 \u0438\u0437 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0448\u0435\u0439\u0434\u0435\u0440\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u0438\u0434\u0435 <strong>triangle_strip<\/strong> (\u043a\u0430\u0436\u0434\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u043f\u043e\u0441\u043b\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a), \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435:  <\/p>\n<figure class=\"\"><\/figure>\n<p>\u0421\u0430\u043c \u043a\u043e\u0434 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0448\u0435\u0439\u0434\u0435\u0440\u0430:<\/p>\n<pre><code class=\"cpp\">#version 400 core layout (lines) in;\/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0434\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 (x0;y0) \u0438 (x1;y1)  \/\/\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e\u0447\u043a\u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \/\/(\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0432\u0443\u0445 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \/\/strip \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430  \/\/\u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b \u0434\u0432\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e) layout (triangle_strip, max_vertices = 4) out;  in  float S[];\/\/\u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0438  \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f vec2 get_general_point_corner(vec2 P0,vec2 P1){     float L =(distance(P0,P1));      float K=S[0]\/L;      float x_=-K*(P1.y-P0.y);     float y_=K*(P1.x-P0.x);      return vec2(x_,y_); }  void bild_quard(vec2 A_0, vec2 P0, vec2 P1){     \/\/ 1:bottom-left     gl_Position =vec4((A_0.x+P0.x), (A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 2:bottom-right     gl_Position =vec4((-A_0.x+P0.x),  (-A_0.y+P0.y), 0.0, 1.0);         EmitVertex();     \/\/ 3:top-left     gl_Position =vec4((A_0.x+P1.x), (A_0.y+P1.y), 0.0, 1.0);         EmitVertex();     \/\/ 4:top-right     gl_Position =vec4((-A_0.x+P1.x),  (-A_0.y+P1.y), 0.0, 1.0);       EmitVertex(); }  void main() {     \/\/\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     vec2 p_= get_general_point_corner(gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     \/\/\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a-\u043b\u0438\u043d\u0438\u044e     bild_quard(p_,gl_in[0].gl_Position.xy,gl_in[1].gl_Position.xy);     EndPrimitive(); }   <\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043b\u043e\u0445\u043e \u0437\u043d\u0430\u0435\u0442\u0435 OpenGl, \u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0430\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/articles\/350782\/\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u0438.  (\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u043d\u0435\u0451 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f). \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u044f \u0434\u043e\u043f\u043e\u043b\u043d\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c (\u0434\u043b\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u043b\u0438\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430).<\/p>\n<\/div>\n<\/details>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<figure class=\"\"><\/figure>\n<figure class=\"\"><\/figure>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0442\u044b\u043a\u0430 \u0434\u0432\u0443\u0445 \u043b\u0438\u043d\u0438\u0439<\/h2>\n<p>\u0421\u00a0\u043e\u0434\u043d\u043e\u0439\u00a0\u043b\u0438\u043d\u0438\u0435\u0439 \u0432\u0441\u0451 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043a\u0440\u0438\u0432\u0443\u044e \u0438\u0437\u00a0\u0440\u0430\u0437\u043d\u044b\u0445\u00a0\u043b\u0438\u043d\u0438\u0439:<\/p>\n<figure class=\"full-width\"><\/figure>\n<figure class=\"full-width\"><\/figure>\n<p>\u041a\u0430\u043a\u00a0\u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043d\u0430\u00a0\u0441\u0442\u044b\u043a\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u00a0\u2014 \u043e\u043d\u0438 \u043d\u0435\u00a0\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b, \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u00a0\u043b\u0438\u043d\u0438\u0439.\u0412\u00a0\u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u0441\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u044f\u043c\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u043e\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u043e <strong>layout (lines) in <\/strong>\u00a0\u0432 \u0448\u0435\u0439\u0434\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c layout (lines_adjacency) in, \u0447\u0442\u043e \u0434\u0430\u0451\u0442\u00a0 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0445.    <\/p>\n<h2>\u041a\u043e\u0441\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412\u00a0\u0446\u0435\u043b\u043e\u043c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 <strong>P<sub>2<\/sub><\/strong>  \u0438 <strong>P<sub>4<\/sub><\/strong>  \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0414\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u00a0\u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0448\u0435\u0439\u0434\u0435\u0440\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0\u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0442\u043e\u0447\u043a\u0443 <strong>P<sub>4<\/sub><\/strong>. \u041c\u043e\u0436\u043d\u043e\u00a0\u0431\u044b\u043b\u043e\u00a0\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0447\u043d\u043e, \u0441\u00a0\u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043d\u0430\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-375048","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/375048","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=375048"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/375048\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=375048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=375048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=375048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}