{"id":208094,"date":"2014-01-04T04:00:02","date_gmt":"2014-01-04T00:00:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=208094"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=208094","title":{"rendered":"<span class=\"post_title\">\u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043a Inkscape<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<b>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/b><br \/>  \u0414\u0443\u043c\u0430\u044e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438, \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0438\u0433\u0440\u0443. \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430, \u0438 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0438, \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u044b, \u0438 \u0442.\u0434. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Unity, \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442. \u041d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u2014 \u043c\u043e\u0436\u0435\u0442 \u043a\u0442\u043e-\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434 Linux \/ Mac, \u0433\u0434\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0443\u0436\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u0414\u0430 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0438\u0433\u0440\u043e\u0434\u0435\u043b\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0451, \u043b\u0451\u0433\u043a\u043e\u0435 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0434 \u0441\u0435\u0431\u044f. \u0414\u043b\u044f \u0441\u0435\u0431\u044f \u044f \u043d\u0430\u0448\u0451\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043a Inkscape.<a name=\"habracut\"><\/a><br \/>  \u0412 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u043a\u043e\u0432\u044b\u0440\u044f\u0442\u044c\u0441\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u0436\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 AS3 \u2014 \u0434\u0430, \u0434\u0430, \u0444\u043b\u0435\u0448 :D. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Box2D, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u0443\u0447\u0443 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e state-machine, \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u043d\u0430 \u0442\u0432\u0438\u043d\u043d\u0435\u0440\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0447\u0430\u0441\u0442\u0438\u0446. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u0447\u0442\u043e-\u0442\u043e \u0438\u0433\u0440\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0435, \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0432\u043a\u0443\u0441 \u0441\u0442\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e. \u0422\u0430\u043a \u043a\u0430\u043a \u044f \u043b\u044e\u0431\u043b\u044e OpenSource \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e, \u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u044e \u0432\u043e FlashDevelop. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0442\u0430\u043c \u043d\u0435\u0442. \u0414\u0430 \u0438 \u043e\u043d \u0432\u0440\u044f\u0434 \u043b\u0438 \u0431\u044b \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433 \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438. \u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043b \u0437\u0430 Inkscape, \u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u0438 \u0437\u0430 \u0441\u0430\u043c SVG \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e XML, \u043b\u0451\u0433\u043e\u043a \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430. \u0420\u0435\u0448\u0438\u043b \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f Inkscape.<\/p>\n<p>  <b>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b<\/b><br \/>  \u041d\u0430\u0447\u0430\u0432 \u0438\u0441\u043a\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u00ab\u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443\u00bb, \u043d\u0430\u0448\u0451\u043b \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e, \u043e\u0434\u0438\u043d \u0446\u0435\u043b\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u00abHello World plugin\u00bb, \u0430 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043b\u043e\u0445\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e, \u0438 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c. \u0418 python \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043a\u0440\u0438\u043f\u0442-\u044f\u0437\u044b\u043a\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432. \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043d\u0435 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439, \u0443\u0436\u0430\u0441. \u041c\u043e\u0436\u043d\u043e \u0432\u0440\u043e\u0434\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u043d\u0430 \u0440\u0443\u0431\u0438, \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b. \u041d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0432 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Inkscape, \u043f\u043e\u043d\u044f\u043b \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u043b\u043e\u0445\u043e. \u041d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u043b\u043e\u044f\u043c\u0438 \u0438 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0445\u043e\u0447\u0435\u0448\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0438 \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0414\u0430\u043b\u0435\u0435 \u0443\u0436\u0435 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u0441\u0438\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 SVG \/ XML \u2014 \u0431\u043b\u0430\u0433\u043e \u0432\u0441\u0435 \u044f\u0437\u044b\u043a\u0438 \u0438\u043c\u0435\u044e\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u043f\u043e\u0434\u0430\u0451\u043c \u043a\u0443\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u2014 \u0443 \u043c\u0435\u043d\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440, \u0438 \u0433\u043e\u0442\u043e\u0432\u043e.<\/p>\n<p>  <b>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e SVG<\/b><br \/>  \u042f \u0440\u0435\u0448\u0438\u043b \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u0432 SVG, \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0444\u0438\u0437. \u043c\u0438\u0440\u0430 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0444\u043e\u0440\u043c\u0443 \u043a\u0440\u0443\u0433\u043b\u0443\u044e, \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u0443\u044e \u0438 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0443\u044e (\u0432\u044b\u043f\u0443\u043a\u043b\u044b\u0439 \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0438\u043b\u0438 \u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u044e\u0431\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0448\u0435\u0439\u043f\u043e\u0432) \u2014 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f Box2D. \u0418 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0443\u0447\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u2014 \u043a\u0430\u043a \u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445, \u0442\u0430\u043a \u0438 \u0441\u0432\u043e\u0438\u0445. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0434\u0443\u0442 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0434\u043b\u044f SVG, \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438 \u0438\u043c\u0435\u044e\u0442 \u043a\u0443\u0447\u0443 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0442\u0435\u0433\u043e\u0432 \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0423\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0442\u0435\u043b \u2014 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445, \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445, \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c. \u041f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043a\u0440\u0443\u0433\u043b\u044b\u0445 \u0442\u0435\u043b \u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445.<br \/>  <u>\u0412\u0430\u0436\u043d\u043e<\/u>: \u043f\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0432 Inkscape \u043f\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0438 \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c SVG \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0442\u0435\u043b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u0412\u0441\u0451 \u0438\u0434\u0451\u0442 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043c\u0430\u0442\u0440\u0438\u0446 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0439 <i>matrix<\/i> \u0434\u043b\u044f \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 <i>translate<\/i> \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0442\u0435\u043b\u0430. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u0436\u0435 \u043f\u0440\u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435 \u0442\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438.<\/p>\n<p>  <b>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/b><br \/>  \u041f\u043b\u0430\u0433\u0438\u043d \u0432 Inkscape \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439, \u0434\u0432\u0443\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <i>my_super_plugin.py<\/i> \u0438 <i>my_super_plugin.inx<\/i>. \u0424\u0430\u0439\u043b <i> my_super_plugin.inx<\/i> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 XML \u2014 \u0442\u0435\u0433\u043e\u0432, \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 \u0431\u0438\u043d\u044b \u0432 Java. \u041e\u043d \u0437\u0430\u0434\u0430\u0451\u0442 GUI \u043e\u043a\u043e\u0448\u0435\u0447\u043a\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u0430, \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0438\u043f\u044b \u043a\u043d\u043e\u043f\u043e\u043a, \u0438 \u0442.\u0434. \u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u043d\u0438\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u00ab\u043c\u043e\u0451 \u0434\u0435\u0442\u0438\u0449\u0435\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/e1d\/942\/357\/e1d94235709eba3fbfbab640218a7e5c.jpg\"\/><\/p>\n<p>  \u0424\u0430\u0439\u043b <i>my_super_plugin.py<\/i> \u0437\u0430\u0434\u0430\u0451\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 SVG \u2014 \u0444\u0430\u0439\u043b\u043e\u043c. \u0421\u043a\u0440\u0438\u043f\u0442 \u0431\u0435\u0440\u0451\u0442 \u0435\u0433\u043e \u043d\u0430 \u0432\u0445\u043e\u0434, \u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438 \u043f\u043e\u0434\u0430\u0451\u0442 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434, Inkscape \u0432\u0441\u0451 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442. \u0411\u044b\u0441\u0442\u0440\u043e \u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043f\u043e\u043d\u044f\u043b, \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u043a\u043e\u0434 \u0438 Inkscape \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0447\u0435\u0440\u0435\u0437 \u043c\u043e\u0434\u0443\u043b\u044c inkex.py. \u041d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043a \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u044b \u043d\u0443\u0436\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f <i>my_super_plugin.py<\/i> \u0438 <i>my_super_plugin.inx<\/i> (\u0441\u0441\u044b\u043b\u043a\u0438 \u0432\u043d\u0438\u0437\u0443).<\/p>\n<p>  <b>INX<\/b><br \/>  \u0412\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u043a\u043e\u0434 \u043c\u043e\u0435\u0433\u043e .inx \u0444\u0430\u0439\u043b\u0430:   <\/p>\n<pre><code class=\"xml\">&lt;inkscape-extension&gt; \t&lt;_name&gt;PF Editor&lt;\/_name&gt; \t&lt;id&gt;org.pf.inkscape.plugins.pf_plugin&lt;\/id&gt; \t&lt;dependency type=&quot;executable&quot; location=&quot;extensions&quot;&gt;pf_plugin.py&lt;\/dependency&gt; \t&lt;dependency type=&quot;executable&quot; location=&quot;extensions&quot;&gt;inkex.py&lt;\/dependency&gt; \t&lt;param name=&quot;layer_name&quot; type=&quot;string&quot; _gui_text=&quot;Layer name&quot;&gt;Game objects&lt;\/param&gt; \t&lt;param name=&quot;obj_name&quot; type=&quot;string&quot; _gui_text=&quot;Object name&quot;&gt;Object1&lt;\/param&gt; \t&lt;param name=&quot;obj_width&quot; type=&quot;int&quot; _gui-text=&quot;Width&quot; min=&quot;10&quot; max=&quot;12000&quot;&gt;30&lt;\/param&gt; \t&lt;param name=&quot;obj_height&quot; type=&quot;int&quot; _gui-text=&quot;Height&quot; min=&quot;10&quot; max=&quot;12000&quot;&gt;30&lt;\/param&gt; \t&lt;param name=&quot;obj_radius&quot; type=&quot;int&quot; _gui-text=&quot;Radius&quot; min=&quot;10&quot; max=&quot;12000&quot;&gt;30&lt;\/param&gt; \t&lt;param name=&quot;obj_posX&quot; type=&quot;int&quot; _gui-text=&quot;PosX&quot; min=&quot;0&quot; max=&quot;12000&quot;&gt;30&lt;\/param&gt; \t&lt;param name=&quot;obj_posY&quot; type=&quot;int&quot; _gui-text=&quot;PosY&quot; min=&quot;0&quot; max=&quot;12000&quot;&gt;30&lt;\/param&gt; \t&lt;param name=&quot;obj_density&quot; type=&quot;float&quot; _gui-text=&quot;Density&quot; min=&quot;0&quot; max=&quot;1&quot;&gt;0.5&lt;\/param&gt; \t&lt;param name=&quot;obj_friction&quot; type=&quot;float&quot; _gui-text=&quot;Friction&quot; min=&quot;0&quot; max=&quot;1&quot;&gt;0.5&lt;\/param&gt; \t&lt;param name=&quot;obj_restitution&quot; type=&quot;float&quot; _gui-text=&quot;Restitution&quot; min=&quot;0&quot; max=&quot;1&quot;&gt;0.5&lt;\/param&gt; \t&lt;param name=&quot;obj_isSensor&quot; type=&quot;boolean&quot; _gui-text=&quot;Sensor body&quot;&gt;false&lt;\/param&gt; \t&lt;param name=&quot;obj_isRotable&quot; type=&quot;boolean&quot; _gui-text=&quot;Rotable body&quot;&gt;false&lt;\/param&gt; \t&lt;param name=&quot;obj_type&quot; type=&quot;enum&quot; _gui-text=&quot;Object type&quot;&gt; \t\t&lt;_item value=&quot;SQUARE&quot;&gt;Square&lt;\/_item&gt; \t\t&lt;_item value=&quot;CIRCLE&quot;&gt;Circle&lt;\/_item&gt; \t&lt;\/param&gt; \t&lt;param name=&quot;obj_d_type&quot; type=&quot;enum&quot; _gui-text=&quot;Static\/Dynamic&quot;&gt; \t\t&lt;_item value=&quot;STATIC&quot;&gt;Static&lt;\/_item&gt; \t\t&lt;_item value=&quot;DYNAMIC&quot;&gt;Dynamic&lt;\/_item&gt; \t&lt;\/param&gt; \t&lt;param name=&quot;obj_hasImage&quot; type=&quot;boolean&quot; _gui-text=&quot;Has image&quot;&gt;false&lt;\/param&gt; \t&lt;effect&gt; \t\t&lt;object-type&gt;all&lt;\/object-type&gt; \t\t&lt;effects-menu&gt; \t\t\t&lt;submenu _name=&quot;PF Plugins&quot;\/&gt; \t\t&lt;\/effects-menu&gt; \t&lt;\/effect&gt; \t&lt;script&gt; \t\t&lt;command reldir=&quot;extensions&quot; interpreter=&quot;python&quot;&gt;pf_plugin.py&lt;\/command&gt; \t&lt;\/script&gt; &lt;\/inkscape-extension&gt; <\/code><\/pre>\n<p>  \u0414\u0443\u043c\u0430\u044e \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u0421\u0442\u0440\u043e\u043a\u0438 <code>&lt;dependency type=&quot;executable&quot; location=&quot;extensions&quot;&gt;pf_plugin.py&lt;\/dependency&gt;, &lt;dependency type=&quot;executable&quot; location=&quot;extensions&quot;&gt;inkex.py&lt;\/dependency&gt;<\/code> \u0437\u0430\u0434\u0430\u044e\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044f \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f. \u0422\u0435\u0433 <code>&lt;param name=&quot;obj_d_type&quot; type=&quot;enum&quot; _gui-text=&quot;Static\/Dynamic&quot;&gt;<\/code> \u0438\u043c\u0435\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <i>enum<\/i> \u2014 \u0432\u043d\u0435\u0448\u043d\u0435 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u041e\u041a \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0434\u0443\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043a \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u043c\u0443 \u0441\u043a\u0440\u0438\u043f\u0442\u0443, \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <i>param name<\/i> \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043a\u0430\u043a \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435. \u0410\u0445 \u0434\u0430, \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0432 \u043f\u043b\u0430\u0433\u0438\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u2014 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b, \u043c\u043d\u0435 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u043e.<\/p>\n<p>  <b>PY<\/b><br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u0441\u0432\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0442\u0435\u0433\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438:  <\/p>\n<pre><code class=\"python\">import sys sys.path.append('\/usr\/share\/inkscape\/extensions') import inkex  class PFEditor(inkex.Effect):     def __init__(self):         inkex.Effect.__init__(self)          self.OptionParser.add_option('--layer_name', action='store',           type='string', dest='layer_name', default='Game objects',           help='Layer name which objects append to')                  self.OptionParser.add_option('--obj_name', action='store',           type='string', dest='obj_name', default='Object',           help='Object name')                  self.OptionParser.add_option('--obj_width', action='store',           type='int', dest='obj_width', default=30,           help='Object width')          self.OptionParser.add_option('--obj_height', action='store',           type='int', dest='obj_height', default=30,           help='Object height')                  self.OptionParser.add_option('--obj_radius', action='store',           type='int', dest='obj_radius', default=30,           help='Object radius')                  self.OptionParser.add_option('--obj_posX', action='store',           type='int', dest='obj_posX', default=30,           help='PosX')          self.OptionParser.add_option('--obj_posY', action='store',           type='int', dest='obj_posY', default=30,           help='PosY')                  self.OptionParser.add_option('--obj_type', action='store',           type='string', dest='obj_type', default='SQUARE',           help='Object type')                  self.OptionParser.add_option('--obj_d_type', action='store',           type='string', dest='obj_d_type', default='STATIC',           help='Static\/Dynamic')                  self.OptionParser.add_option('--obj_density', action='store',           type='float', dest='obj_density', default=0.5,           help='Density')                  self.OptionParser.add_option('--obj_friction', action='store',           type='float', dest='obj_friction', default=0.5,           help='Friction')                  self.OptionParser.add_option('--obj_restitution', action='store',           type='float', dest='obj_restitution', default=0.5,           help='Restitution')                  self.OptionParser.add_option('--obj_isSensor', action='store',           type='inkbool', dest='obj_isSensor', default=False,           help='Sensor body')                  self.OptionParser.add_option('--obj_isRotable', action='store',           type='inkbool', dest='obj_isRotable', default=True,           help='Rotable body')                  self.OptionParser.add_option('--obj_hasImage', action='store',           type='inkbool', dest='obj_hasImage', default=False,           help='Body has image')      def pfbTypes(self, x):         return {             'STATIC'   : '#00ff00',             'DYNAMIC'  : '#ff0000',             'SQUARE'   : 'SQUARE',             'CIRCLE'   : 'CIRCLE' }.get(x, 0)                  def pfbType_SVG(self, x):         return {             'SQUARE'   : 'rect',             'CIRCLE'   : 'circle' }.get(x, 'rect')          def concat_style(self, style):  # @NoSelf         style_str = ''                  for stl in style:             style_str += stl + ':' + style[stl] + ';'         style_str = style_str[:-1]                  return style_str      def generate_object(self, w, h, r, x, y, density, friction, restitution, isSensor, isRotable, parent, type, d_type, name, hasImage):  # @NoSelf                  style = {                 'fill'            : self.pfbTypes(d_type),         'fill-rule'       :'evenodd',         'stroke'          :'000000',         'stroke-width'    :'0px',         'stroke-linecap'  :'butt',         'stroke-linejoin' :'miter',         'stroke-opacity'  :'0'         }                  attribs = {         'type'            : type,         'd_type'          : d_type,         'height'          : str(h),         'width'           : str(w),         'density'         : str(density),         'friction'        : str(friction),         'restitution'     : str(restitution),         'isSensor'        : str(isSensor).lower(),         'isRotable'       : str(isRotable).lower(),         'hasImage'        : str(hasImage).lower(),         'name'            : name,         'style'           : self.concat_style(style),         }                  if d_type == 'DYNAMIC':             attribs['isDynamic'] = 'true'         else:            attribs['isDynamic'] = 'false'                  if type == 'SQUARE' :             attribs['x'] = str(x);             attribs['y'] = str(y);                      if type == 'CIRCLE' :             attribs['cx'] = str(x);             attribs['cy'] = str(y);             attribs['r'] = str(r);                      obj = inkex.etree.SubElement(parent, inkex.addNS(self.pfbType_SVG(type), 'svg'), attribs)          def effect(self) :                  layer_name = self.options.layer_name         obj_name = self.options.obj_name         obj_width = self.options.obj_width         obj_height = self.options.obj_height         obj_radius = self.options.obj_radius         obj_posX = self.options.obj_posX         obj_posY = self.options.obj_posY         obj_type = self.options.obj_type         obj_d_type = self.options.obj_d_type         obj_density = self.options.obj_density         obj_friction = self.options.obj_friction         obj_restitution = self.options.obj_restitution         obj_isSensor = self.options.obj_isSensor         obj_isRotable = self.options.obj_isRotable         obj_hasImage = self.options.obj_hasImage                  svg = self.document.getroot()                d_root = self.document.getroot()         layer = None         iter = 0         for item in d_root:             if (item.attrib.get('id') == 'pf_go_id' and item.attrib.get('level_name') == layer_name):                 layer = item                 iter += 1                 break                  if(iter == 0):             layer = inkex.etree.SubElement(svg, 'g')             layer.set(inkex.addNS('id'), 'pf_go_id')             layer.set(inkex.addNS('level_name'), layer_name)             layer.set(inkex.addNS('label', 'inkscape'), layer_name)             layer.set(inkex.addNS('groupmode', 'inkscape'), 'layer')                  self.generate_object(obj_width, obj_height, obj_radius, obj_posX, obj_posY, obj_density, obj_friction, obj_restitution, obj_isSensor, obj_isRotable, layer, obj_type, obj_d_type, obj_name, obj_hasImage)             effect = PFEditor() effect.affect() <\/code><\/pre>\n<p>  \u0421\u0442\u0440\u043e\u043a\u0438 \u0432\u0438\u0434\u0430 <code>self.OptionParser.add_option('--layer_name', action='store',           type='string', dest='layer_name', default='Game objects',           help='Layer name which objects append to')<\/code> \u0437\u0430\u0434\u0430\u044e\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0438\u0445 \u0442\u0438\u043f (\u0438\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u0438\u0437 .inx \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442). \u0414\u0430\u043b\u0435\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <i>effect<\/i> \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u0437\u0430\u043f\u0438\u0445\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435. \u041f\u043e\u0442\u043e\u043c \u044f \u0438\u0449\u0443 \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 <code>for item in d_root:             if (item.attrib.get('id') == 'pf_go_id' and item.attrib.get('level_name') == layer_name)<\/code>: \u0432 SVG \u0441\u043b\u043e\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e <i>id<\/i>, \u0438 \u0442\u0443\u0434\u0430 \u044f \u0437\u0430\u043f\u0438\u0445\u0438\u0432\u0430\u044e \u0438\u043c\u0435\u043d\u043d\u043e <code>'pf_go_id'<\/code>, \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u00ab\u0441\u0432\u043e\u0438\u0445 \u0441\u043b\u043e\u0451\u0432\u00bb \u0441 \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438. \u0415\u0441\u043b\u0438 \u0441\u043b\u043e\u0439 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 \u043d\u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439, \u00ab\u0443\u0440\u043e\u0432\u0435\u043d\u044c\u00bb, \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0438\u043c. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0441\u043b\u043e\u0439, \u0438 \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <i>generate_object<\/i> \u044f \u0441\u043e\u0437\u0434\u0430\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0414\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u0441\u0451 \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/p>\n<p>  <b>SVG<\/b><br \/>  \u0418, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e SVG \u0444\u0430\u0439\u043b\u0430:  <\/p>\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt; &lt;!-- Created with Inkscape (http:\/\/www.inkscape.org\/) --&gt;  &lt;svg    xmlns:dc=&quot;http:\/\/purl.org\/dc\/elements\/1.1\/&quot;    xmlns:cc=&quot;http:\/\/creativecommons.org\/ns#&quot;    xmlns:rdf=&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#&quot;    xmlns:svg=&quot;http:\/\/www.w3.org\/2000\/svg&quot;    xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;    xmlns:sodipodi=&quot;http:\/\/sodipodi.sourceforge.net\/DTD\/sodipodi-0.dtd&quot;    xmlns:inkscape=&quot;http:\/\/www.inkscape.org\/namespaces\/inkscape&quot;    width=&quot;630&quot;    height=&quot;480&quot;    id=&quot;svg2&quot;    version=&quot;1.1&quot;    inkscape:version=&quot;0.48.4 r9939&quot;    sodipodi:docname=&quot;levels_tmp.svg&quot;&gt;   &lt;sodipodi:namedview      id=&quot;base&quot;      pagecolor=&quot;#ffffff&quot;      bordercolor=&quot;#666666&quot;      borderopacity=&quot;1.0&quot;      inkscape:pageopacity=&quot;0.0&quot;      inkscape:pageshadow=&quot;2&quot;      inkscape:zoom=&quot;0.98994949&quot;      inkscape:cx=&quot;60.920287&quot;      inkscape:cy=&quot;223.06442&quot;      inkscape:document-units=&quot;px&quot;      inkscape:current-layer=&quot;pf_go_id&quot;      showgrid=&quot;false&quot;      inkscape:window-width=&quot;1366&quot;      inkscape:window-height=&quot;716&quot;      inkscape:window-x=&quot;-8&quot;      inkscape:window-y=&quot;-8&quot;      inkscape:window-maximized=&quot;1&quot; \/&gt;   &lt;defs      id=&quot;defs4&quot; \/&gt;   &lt;metadata      id=&quot;metadata7&quot;&gt;     &lt;rdf:RDF&gt;       &lt;cc:Work          rdf:about=&quot;&quot;&gt;         &lt;dc:format&gt;image\/svg+xml&lt;\/dc:format&gt;         &lt;dc:type            rdf:resource=&quot;http:\/\/purl.org\/dc\/dcmitype\/StillImage&quot; \/&gt;         &lt;dc:title \/&gt;       &lt;\/cc:Work&gt;     &lt;\/rdf:RDF&gt;   &lt;\/metadata&gt;   &lt;g      id=&quot;pf_go_id&quot;      level_name=&quot;Menu&quot;      inkscape:label=&quot;Menu&quot;      inkscape:groupmode=&quot;layer&quot;      style=&quot;display:inline&quot;&gt;     &lt;circle        transform=&quot;translate(194.95944,151.52288)&quot;        sodipodi:ry=&quot;40&quot;        sodipodi:rx=&quot;40&quot;        sodipodi:cy=&quot;40&quot;        sodipodi:cx=&quot;40&quot;        isSensor=&quot;false&quot;        isRotable=&quot;true&quot;        height=&quot;10&quot;        cy=&quot;40&quot;        cx=&quot;40&quot;        friction=&quot;0.5&quot;        restitution=&quot;0.5&quot;        style=&quot;fill:#00ff00;fill-rule:evenodd;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0&quot;        name=&quot;Object1&quot;        density=&quot;0.5&quot;        isDynamic=&quot;false&quot;        width=&quot;100&quot;        r=&quot;40&quot;        type=&quot;CIRCLE&quot;        d_type=&quot;STATIC&quot;        hasImage=&quot;false&quot;        id=&quot;circle3294&quot; \/&gt;     &lt;rect        id=&quot;rect2997&quot;        hasImage=&quot;false&quot;        d_type=&quot;DYNAMIC&quot;        type=&quot;SQUARE&quot;        x=&quot;4.7976952&quot;        y=&quot;405.67188&quot;        width=&quot;100&quot;        isDynamic=&quot;true&quot;        density=&quot;0.5&quot;        name=&quot;Object2&quot;        style=&quot;fill:#ff0000;fill-rule:evenodd;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0&quot;        restitution=&quot;0.5&quot;        friction=&quot;0.5&quot;        height=&quot;10&quot;        isRotable=&quot;true&quot;        isSensor=&quot;false&quot;        transform=&quot;matrix(0.88912747,-0.45765964,0.45765964,0.88912747,0,0)&quot; \/&gt;     &lt;rect        isSensor=&quot;false&quot;        isRotable=&quot;true&quot;        height=&quot;10&quot;        friction=&quot;0.5&quot;        restitution=&quot;0.5&quot;        style=&quot;fill:#00ff00;fill-rule:evenodd;stroke-width:0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0&quot;        name=&quot;Object2&quot;        density=&quot;0.5&quot;        isDynamic=&quot;false&quot;        width=&quot;300&quot;        y=&quot;391.62952&quot;        x=&quot;173.53809&quot;        type=&quot;SQUARE&quot;        d_type=&quot;STATIC&quot;        hasImage=&quot;false&quot;        id=&quot;rect3011&quot; \/&gt;   &lt;\/g&gt;   &lt;g      inkscape:groupmode=&quot;layer&quot;      inkscape:label=&quot;Level_1&quot;      level_name=&quot;Level_1&quot;      id=&quot;g3027&quot;&gt;     &lt;circle        id=&quot;circle3029&quot;        hasImage=&quot;false&quot;        d_type=&quot;DYNAMIC&quot;        type=&quot;CIRCLE&quot;        r=&quot;30&quot;        width=&quot;300&quot;        isDynamic=&quot;true&quot;        density=&quot;0.5&quot;        name=&quot;Object1&quot;        style=&quot;stroke-linejoin:miter;stroke-opacity:0;fill-rule:evenodd;stroke:000000;stroke-linecap:butt;stroke-width:0px;fill:#ff0000&quot;        restitution=&quot;0.5&quot;        friction=&quot;0.5&quot;        cx=&quot;120&quot;        cy=&quot;130&quot;        height=&quot;10&quot;        isRotable=&quot;true&quot;        isSensor=&quot;false&quot; \/&gt;   &lt;\/g&gt; &lt;\/svg&gt; <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u2014 \u0443\u0440\u043e\u0432\u043d\u0438 Menu \u0438 Level_1. \u0417\u0435\u043b\u0451\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u043f\u043e\u0434\u0432\u0438\u0436\u043d\u044b\u043c\u0438, \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u043f\u043e\u0434\u0432\u0438\u0436\u043d\u044b\u043c\u0438. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0442\u0435\u043b<i> isSensor<\/i>, \u044f \u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u043b \u0446\u0432\u0435\u0442\u043e\u043c, \u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c. \u041d\u0430 \u0441\u043b\u043e\u0435 Menu \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u043f\u043e\u0432\u0451\u0440\u043d\u0443\u0442\u044b \u0438 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u043d\u0443\u0442\u044b \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430<i> matrix<\/i> \u0438 <i>translate<\/i> \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0435\u0433\u043e\u0432 <i>rect<\/i>. \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043e\u043d\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0437\u0430 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e), \u0438 \u0437\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0423\u0436\u0435 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0451 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c. \u041f\u0438\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u0438 \u0440\u0435\u0448\u0430\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0430 Ax=B (:D). \u041e\u0442\u0442\u0443\u0434\u0430 \u0434\u043e\u0441\u0442\u0430\u0451\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u0435\u043b \u0438 \u0443\u0433\u043e\u043b \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430. \u0415\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2014 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 AS3, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0441\u0442 \u0432\u044b\u0448\u0435\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c.<\/p>\n<p>  <b>\u0421\u0441\u044b\u043b\u043a\u0438<\/b><br \/>  \u041f\u043e\u0438\u0441\u043a\u0430\u0432 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0430\u043c\u043e\u043c\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0447\u0442\u043e \u0438 \u043a\u0443\u0434\u0430. \u0415\u0449\u0451 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0438\u0448\u0435\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0438 Inkscape \u2014 \u043e\u0441\u0438, \u0446\u0435\u043d\u0442\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0443\u0433\u043b\u044b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438:<br \/>  <a href=\"http:\/\/wiki.inkscape.org\/wiki\/index.php\/Script_extensions\">wiki.inkscape.org\/wiki\/index.php\/Script_extensions<\/a><br \/>  <a href=\"http:\/\/wiki.inkscape.org\/wiki\/index.php\/PythonEffectTutorial\">wiki.inkscape.org\/wiki\/index.php\/PythonEffectTutorial<\/a><br \/>  <a href=\"http:\/\/wiki.inkscape.org\/wiki\/index.php\/Generating_objects_from_extensions\">wiki.inkscape.org\/wiki\/index.php\/Generating_objects_from_extensions<\/a><br \/>  <a href=\"http:\/\/wiki.inkscape.org\/wiki\/index.php\/INX_extension_descriptor_format\">wiki.inkscape.org\/wiki\/index.php\/INX_extension_descriptor_format<\/a><br \/>  <a href=\"http:\/\/docs.python.org\/2\/library\/xml.etree.elementtree.html\">docs.python.org\/2\/library\/xml.etree.elementtree.html<\/a><br \/>  <a href=\"http:\/\/wiki.inkscape.org\/wiki\/index.php\/INX_Parameters\">wiki.inkscape.org\/wiki\/index.php\/INX_Parameters<\/a><br \/>  <a href=\"http:\/\/www.w3schools.com\/svg\/svg_rect.asp\">www.w3schools.com\/svg\/svg_rect.asp<\/a><br \/>  <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/SVG\/Attribute\/transform\">developer.mozilla.org\/en-US\/docs\/Web\/SVG\/Attribute\/transform<\/a>    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/208094\/\"> http:\/\/habrahabr.ru\/post\/208094\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<b>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/b><br \/>  \u0414\u0443\u043c\u0430\u044e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438, \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0438\u0433\u0440\u0443. \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430, \u0438 \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u0438, \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u0441\u0446\u0435\u043d\u044b, \u0438 \u0442.\u0434. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Unity, \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442. \u041d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u2014 \u043c\u043e\u0436\u0435\u0442 \u043a\u0442\u043e-\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434 Linux \/ Mac, \u0433\u0434\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0443\u0436\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u0414\u0430 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0438\u0433\u0440\u043e\u0434\u0435\u043b\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441\u0432\u043e\u0451, \u043b\u0451\u0433\u043a\u043e\u0435 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0434 \u0441\u0435\u0431\u044f. \u0414\u043b\u044f \u0441\u0435\u0431\u044f \u044f \u043d\u0430\u0448\u0451\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043a Inkscape.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-208094","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/208094","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=208094"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/208094\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=208094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=208094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=208094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}