{"id":2584,"date":"2022-01-13T00:00:00","date_gmt":"2022-01-13T00:00:00","guid":{"rendered":"https:\/\/appvinio.runbyit.com\/https-appvinio-com-pl-aktualnosci-liczby-losowe-a-perlin-noise\/"},"modified":"2023-11-07T12:51:44","modified_gmt":"2023-11-07T12:51:44","slug":"liczby-losowe-a-perlin-noise","status":"publish","type":"post","link":"https:\/\/appvinio.com\/pl\/liczby-losowe-a-perlin-noise\/","title":{"rendered":"Liczby losowe, a Perlin Noise"},"content":{"rendered":"<h2 id=\"Czym-s\u0105-liczby-losowe?\" data-renderer-start-pos=\"8\">Czym s\u0105 liczby losowe?<\/h2>\n<p data-renderer-start-pos=\"32\">W programowaniu nie ma tak naprawd\u0119 liczb w pe\u0142ni losowych, s\u0105 liczby pseudolosowe, kt\u00f3re s\u0105 trudne do odr\u00f3\u017cnienia od prawdziwych liczb losowych (ale dla uproszczenia nazywa si\u0119 je losowymi). Takie liczby s\u0105 najcz\u0119\u015bciej generowane na podstawie jakiego\u015b ci\u0105gu znak\u00f3w tzw. <em>seed<\/em>.<\/p>\n<p>Spr\u00f3bujemy sobie zobrazowa\u0107 jak wygl\u0105daj\u0105 liczby losowe i ich zale\u017cno\u015b\u0107 mi\u0119dzy poprzedni\u0105, a nast\u0119pn\u0105. Wylosujemy sobie 10 liczb z zakresu 1 do 100 w\u0142\u0105cznie:<\/p>\n<div class=\"code-block sc-kUaPvJ knitUr\">\n<div role=\"presentation\">\n<div><\/div>\n<\/div>\n<p><span class=\"prismjs css-10fl9lg\" data-code-lang=\"text\" data-ds--code--code-block=\"\"><code class=\"language-text\"><span class=\"comment linenumber react-syntax-highlighter-line-number\">1. <\/span><span class=\"\">14<br \/>\n<\/span><span class=\"comment linenumber react-syntax-highlighter-line-number\">2. <\/span>72<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">3. <\/span>94<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">4. <\/span>28<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">5. <\/span>100<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">6. <\/span>81<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">7. <\/span>35<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">8. <\/span>21<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">9. <\/span>89<br \/>\n<span class=\"comment linenumber react-syntax-highlighter-line-number\">10. <\/span>51<br \/>\n<\/code><\/span><\/p>\n<\/div>\n<p data-renderer-start-pos=\"501\">\u017beby lepiej zrozumie\u0107 jak bardzo rozrzucone one s\u0105 po ca\u0142ym zakresie proponuje przedstawi\u0107 je za pomoc\u0105 wykresu, <span id=\"c5107157-f2ca-41c8-8707-48cf30f6cd85\" class=\"inline-highlight\" data-renderer-mark=\"true\" data-mark-type=\"annotation\" data-mark-annotation-type=\"inlineComment\" data-id=\"c5107157-f2ca-41c8-8707-48cf30f6cd85\">gdzie o\u015b X to kolejne losowania, a o\u015b Y to warto\u015b<\/span>ci tych losowa\u0144. Losowane by\u0142o 200 liczb z zakresu od 0 do 400:<\/p>\n<div class=\"rich-media-item mediaSingleView-content-wrap image-center sc-iAyFgw kXEeDN sc-kkGfuU kVPPiO\" data-layout=\"center\" data-width=\"100\" data-node-type=\"mediaSingle\">\n<div class=\"sc-kEYyzF cqmXHk\">\n<div class=\"sc-qrIAp fEFubV\" data-context-id=\"1698234369\" data-type=\"file\" data-node-type=\"media\" data-width=\"799\" data-height=\"797\" data-id=\"c1d4398e-a7b2-4968-8327-72b5f999d50e\" data-collection=\"contentId-1698234369\" data-file-name=\"random_1_dim.png\" data-file-size=\"77039\" data-file-mime-type=\"image\/png\" data-alt=\"\">\n<div class=\"new-file-experience-wrapper sc-eTyWNx kqJYwW sc-cLxPOX kokQUY\" data-testid=\"media-card-view\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-medium wp-image-908\" src=\"https:\/\/appvinio.com\/wp-content\/uploads\/1743eee5-2e63-4b77-9ddc-e3833bc69eee-1200x1197.png\" alt=\"\" width=\"1200\" height=\"1197\" \/><\/div>\n<div data-testid=\"media-card-view\">\n<p data-renderer-start-pos=\"731\">Jak wida\u0107, warto\u015bci s\u0105 chaotycznie porozrzucane po ca\u0142ym zakresie liczbowym i ka\u017cda poprzednia warto\u015b\u0107 nie jest powi\u0105zana w \u017caden spos\u00f3b z kolejn\u0105.<\/p>\n<h3 id=\"Liczby-losowe-nie-zawsze-wystarczaj\u0105\" data-renderer-start-pos=\"880\">Liczby losowe nie zawsze wystarczaj\u0105<\/h3>\n<p data-renderer-start-pos=\"918\">Czasami zdarza si\u0119 sytuacja w kt\u00f3rej chcemy mie\u0107 zjawisko losowo\u015bci, ale bardziej pouk\u0142adanej, p\u0142ynnej. Dobry przyk\u0142adem jest algorytm do tworzenia terenu w Minecraft\u2019cie. Ka\u017cdy nowy \u015bwiat jest tworzony losowo (za pomoc\u0105 seedu), ale w spos\u00f3b, w kt\u00f3rym mo\u017cna \u0142atwo wyr\u00f3\u017cni\u0107 \u0142\u0105ki, g\u00f3ry, oceany, itp. W takim przypadku zwyk\u0142e liczby losowe nie dadz\u0105 rady i potrzebujemy pomocy szumu Perlina.<\/p>\n<h3 id=\"Perlin-Noise---co-to?\" data-renderer-start-pos=\"1308\">Perlin Noise &#8211; co to?<\/h3>\n<p data-renderer-start-pos=\"1331\">Szum Perlina (eng. Perlin Noise), to algorytm, kt\u00f3ry na podstawie seedu tworzy nam losowy ci\u0105g liczb, kt\u00f3ry jest \u201cp\u0142ynny\u201d. Co to oznacza? Ka\u017cda poprzednia liczba jest w bliskim zakresie kolejnej liczby. Dzi\u0119ki czemu znikam chaos. Najlepiej zobrazuje wam to poni\u017csza grafika:<\/p>\n<p data-renderer-start-pos=\"1331\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-910\" src=\"https:\/\/appvinio.com\/wp-content\/uploads\/bc341142-5e77-41ff-a840-b194d3830a7c-1200x1200.png\" alt=\"\" width=\"1200\" height=\"1200\" \/><\/p>\n<p data-renderer-start-pos=\"1610\">Ka\u017cda kropka jest losowo tworzona i podaj\u0105c inny seed b\u0119dziemy widzieli inny wykres za ka\u017cdym razem. Co wi\u0119cej, algorytm pozwala nam na r\u00f3\u017cne operacje na tych pseudo losowych liczbach. Mo\u017cemy wyp\u0142aszczy\u0107 lub wyostrzy\u0107, zw\u0119zi\u0107 lub rozszerzy\u0107 ten wykres, dzi\u0119ki czemu mo\u017cemy otrzyma\u0107 bardziej g\u00f3rzysty lub p\u0142aski wynik. Dodatkowo Perlin Noise pozwala nam na tworzenie multiwymiarowych wykres\u00f3w. Poni\u017cej wida\u0107 r\u00f3\u017cnic\u0119 pomi\u0119dzy zwyk\u0142ymi liczbami losowymi, a liczbami wygenerowanymi przez Perlin Noise. Ka\u017cdy piksel mia\u0142 losow\u0105 warto\u015b\u0107 pomi\u0119dzy 0, a 255, kt\u00f3ra wyznacza\u0142a jego kolor.<\/p>\n<div class=\"rich-media-item mediaSingleView-content-wrap image-center sc-iAyFgw kXEeDN sc-kkGfuU iONmFl\" data-layout=\"center\" data-node-type=\"mediaSingle\">\n<div class=\"sc-kEYyzF lPZVY\">\n<div class=\"sc-qrIAp fEFubV\" data-context-id=\"1698234369\" data-type=\"file\" data-node-type=\"media\" data-width=\"801\" data-height=\"800\" data-id=\"b6978c92-e013-477c-ac4e-0d808fcf1d99\" data-collection=\"contentId-1698234369\" data-file-name=\"random_2_dim.png\" data-file-size=\"1459606\" data-file-mime-type=\"image\/png\" data-alt=\"\">\n<div class=\"new-file-experience-wrapper sc-eTyWNx kqJYwW sc-cLxPOX hVprZK\" data-testid=\"media-card-view\">\n<figure id=\"attachment_912\" aria-describedby=\"caption-attachment-912\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-912 size-medium\" src=\"https:\/\/appvinio.com\/wp-content\/uploads\/d874f6c4-49c7-4257-9fd1-8be90e3c8c97-1200x1200.png\" alt=\"Losowe liczby\" width=\"1200\" height=\"1200\" \/><figcaption id=\"caption-attachment-912\" class=\"wp-caption-text\">Losowe liczby<\/figcaption><\/figure>\n<\/div>\n<div data-testid=\"media-card-view\">\n<div class=\"rich-media-item mediaSingleView-content-wrap image-center sc-iAyFgw kXEeDN sc-kkGfuU iONmFl\" data-layout=\"center\" data-node-type=\"mediaSingle\">\n<div data-media-caption=\"true\" data-testid=\"media-caption\" data-renderer-start-pos=\"2192\"><\/div>\n<div data-media-caption=\"true\" data-testid=\"media-caption\" data-renderer-start-pos=\"2192\"><\/div>\n<div data-media-caption=\"true\" data-testid=\"media-caption\" data-renderer-start-pos=\"2192\"><\/div>\n<div data-media-caption=\"true\" data-testid=\"media-caption\" data-renderer-start-pos=\"2192\"><\/div>\n<\/div>\n<div class=\"rich-media-item mediaSingleView-content-wrap image-center sc-iAyFgw kXEeDN sc-kkGfuU iONmFl\" data-layout=\"center\" data-node-type=\"mediaSingle\">\n<div class=\"sc-kEYyzF hQhYDy\">\n<div class=\"sc-qrIAp fEFubV\" data-context-id=\"1698234369\" data-type=\"file\" data-node-type=\"media\" data-width=\"798\" data-height=\"800\" data-id=\"54558336-dd1a-429c-8a9d-03b442b90146\" data-collection=\"contentId-1698234369\" data-file-name=\"noise_2_dim.png\" data-file-size=\"546544\" data-file-mime-type=\"image\/png\" data-alt=\"\">\n<div class=\"new-file-experience-wrapper sc-eTyWNx kqJYwW sc-cLxPOX hcRGvp\" data-testid=\"media-card-view\">\n<figure id=\"attachment_914\" aria-describedby=\"caption-attachment-914\" style=\"width: 1197px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-914 size-medium\" src=\"https:\/\/appvinio.com\/wp-content\/uploads\/6659c41d-dc8d-4985-8661-9216d6850d56-1197x1200.png\" alt=\"Perlin Noise\" width=\"1197\" height=\"1200\" \/><figcaption id=\"caption-attachment-914\" class=\"wp-caption-text\">Perlin Noise<\/figcaption><\/figure>\n<\/div>\n<div data-testid=\"media-card-view\">\n<p data-renderer-start-pos=\"2225\">W algorytmie tworzenia terenu mogliby\u015bmy przyj\u0105\u0107 ciemniejsze piksele za g\u00f3rzysty teren, a bielsze za r\u00f3wniny lub oceany.<\/p>\n<h3 id=\"W-jaki-spos\u00f3b-mo\u017cna-wykorzysta\u0107-to-w-aplikacji-mobilnej?\" data-renderer-start-pos=\"2347\">W jaki spos\u00f3b mo\u017cna wykorzysta\u0107 to w aplikacji mobilnej?<\/h3>\n<p data-renderer-start-pos=\"2405\">Jedna z prostszych rzeczy, to splash screen lub jakie\u015b t\u0142o, kt\u00f3re b\u0119dzie si\u0119 porusza\u0142o, a chcemy, \u017ceby nie by\u0142a to powtarzalna animacja. Poni\u017cszy przyk\u0142ad po paru modyfikacjach i zmianie koloru m\u00f3g\u0142by za takie t\u0142o pos\u0142u\u017cy\u0107:<\/p>\n<p><iframe title=\"Perlin noise - BW perlin animation\" width=\"800\" height=\"600\" src=\"https:\/\/www.youtube.com\/embed\/oSZ0-Uf4bJE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p data-renderer-start-pos=\"2405\">Po dodaniu odpowiednich kolor\u00f3w:<\/p>\n<p><iframe title=\"Perlin noise - Color perlin animation\" width=\"800\" height=\"600\" src=\"https:\/\/www.youtube.com\/embed\/PQ-s2FZs90s?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"new-file-experience-wrapper sc-eTyWNx lpgCRm sc-cLxPOX ietFOD\" data-testid=\"media-card-view\"><\/div>\n<div data-testid=\"media-card-view\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div data-testid=\"media-card-view\">\n<h3 id=\"Przyk\u0142ady-u\u017cycia\" data-renderer-start-pos=\"2671\">Przyk\u0142ady u\u017cycia<\/h3>\n<p data-renderer-start-pos=\"2689\">Poni\u017cej przedstawiam wam list\u0119 \u015bwietnych przyk\u0142ad\u00f3w wykorzystania szumu Perlina.<\/p>\n<ol class=\"ak-ol\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"2773\">Generowanie terenu\/\u015bwiat\u00f3w:<\/p>\n<ul class=\"ak-ul\" data-indent-level=\"2\">\n<li>\n<p data-renderer-start-pos=\"2804\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=wbpMiKiSKm8&amp;list=PLFt_AvWsXl0eBW2EiBtl_sxmDtSgZBxB3\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Procedural Landmass Generation (E01: Introduction)<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2810\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=M3iI2l0ltbE\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Coding Adventure: Marching Cubes<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2816\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=QN39W020LqU&amp;list=PLFt_AvWsXl0cONs3T0By4puYy6GM22ko8\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">[Unity] Procedural Planets (E01 the sphere)<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2822\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=IKB1hWWedMk&amp;list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH&amp;index=15\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Coding Challenge #11: 3D Terrain Generation with Perlin Noise in Processing<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2830\">R\u00f3\u017cne:<\/p>\n<ul class=\"ak-ul\" data-indent-level=\"2\">\n<li>\n<p data-renderer-start-pos=\"2840\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=BjoM9oKOAKY&amp;list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH&amp;index=27\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Coding Challenge #24: Perlin Noise Flow Field<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2846\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=rX5p-QRP6R4&amp;list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH&amp;index=44\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Coding Challenge #36: Blobby!<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2852\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=alhpH6ECFvQ&amp;list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH&amp;index=189\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Coding Challenge #132: Fluid Simulation<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2858\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=ZI1dmHv3MeM&amp;t=772s\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">Coding Challenge #136.1: Polar Perlin Noise Loops<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2864\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=amQ0UdCKZyk\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">\u3010Processing\u3011Generative Art using Perlin Noise Part 1 | Nekodigi<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2872\">Troch\u0119 teorii:<\/p>\n<ul class=\"ak-ul\" data-indent-level=\"2\">\n<li>\n<p data-renderer-start-pos=\"2890\"><span style=\"text-decoration: underline;\"><span class=\"loader-wrapper\"><a class=\"sc-jbKcbu fDoyoB\" tabindex=\"0\" role=\"button\" href=\"https:\/\/www.youtube.com\/watch?v=Qf4dIN99e2w&amp;list=PLRqwX-V7Uu6bgPNQAdxQZpJuJCjeOr7VD\" data-testid=\"inline-card-resolved-view\"><span class=\"sc-kgAjT lfywKS\"><span class=\"sc-hqyNC keRCOE\">I.2: Introduction &#8211; Perlin Noise and p5.js Tutorial<\/span><\/span><\/a><\/span><\/span><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Czym s\u0105 liczby losowe? W programowaniu nie ma tak naprawd\u0119 liczb w pe\u0142ni losowych, s\u0105 liczby pseudolosowe, kt\u00f3re s\u0105 trudne do odr\u00f3\u017cnienia od prawdziwych liczb losowych (ale dla uproszczenia nazywa si\u0119 je losowymi). Takie liczby s\u0105 najcz\u0119\u015bciej generowane na podstawie jakiego\u015b ci\u0105gu znak\u00f3w tzw. seed. Spr\u00f3bujemy sobie zobrazowa\u0107 jak wygl\u0105daj\u0105 liczby losowe i ich zale\u017cno\u015b\u0107 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":2656,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[60],"tags":[],"class_list":["post-2584","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aktualnosci"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts\/2584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/comments?post=2584"}],"version-history":[{"count":1,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts\/2584\/revisions"}],"predecessor-version":[{"id":2604,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/posts\/2584\/revisions\/2604"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/media\/2656"}],"wp:attachment":[{"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/media?parent=2584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/categories?post=2584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appvinio.com\/pl\/wp-json\/wp\/v2\/tags?post=2584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}