{"id":722,"date":"2020-05-21T06:57:00","date_gmt":"2020-05-21T06:57:00","guid":{"rendered":"https:\/\/zhengfangs.com\/?p=722"},"modified":"2022-01-13T21:37:19","modified_gmt":"2022-01-13T21:37:19","slug":"perlin-noise-clouds-and-sea","status":"publish","type":"post","link":"https:\/\/zhengfangs.com\/?p=722","title":{"rendered":"\u67cf\u6797\u566a\u6ce2\uff1a\u4e91\u4e0e\u6d77 Perlin Noise: Clouds and Sea"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<figure class=\"wp-block-video aligncenter\"><video height=\"704\" style=\"aspect-ratio: 704 \/ 704;\" width=\"704\" controls loop muted src=\"https:\/\/zhengfangs.com\/wp-content\/uploads\/2022\/01\/moonRiver-2022-01-10-22-59-21_Trim.mp4\"><\/video><\/figure>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>float nx = 0;\nfloat ny = 0;\nfloat nz = 0;\nint am = 3;\n\nint range = 250;\n\nfloat angle = 0;\nfloat x = 0;\nfloat y = 0;\n\nfloat c = 0;\n\nvoid setup () {\n  size (700, 700);\n  strokeCap(PROJECT);\n  strokeWeight(am);\n  background(27, 32, 24, 30);\n}\n\nvoid draw () {\n  noStroke();\n\n  for (int i = 0; i &lt;= width; i++) {\n    for (int j = 0; j &lt;= range; j++) {\n      float d = dist(width\/2,0.65*range,i,j);\n      d = map(d,0,width\/4,150,90);\n      color k = color(0.4*d,0.48*d,0.5*d);\n      set(i,j,k);\n    }\n  }\n\n  fill(27, 32, 24, 80);\n  rect(0, range, width, height);\n\n  nx = nz;\n\n  \/\/water\n  for (int i=0; i&lt;width; i += am) {\n    ny = 0;\n    for (int j=range; j&lt;height; j += am) {\n      angle = map (noise (nx, ny, nz), 0, 1.0, 0, 4*PI);\n      x = am * cos (angle);\n      y = am * sin (angle);\n      c = dist(i, j, width\/2, range\/2);\n      c = map(c, 0, width\/2, 100, 0);\n      stroke(10*angle-j\/40+0.9*c, 11*angle+0.9*c, 13*angle+0.9*c, 4*angle+j\/30);\n      line (i, j, i+x, j+y);\n\n      \/\/flash\n      float xMax = width\/2 + randomGaussian()*range\/6;\n      float xMin = width\/2 - randomGaussian()*range\/6;\n      if (i &gt; xMax &amp;&amp; i &lt; xMin &amp;&amp; j &lt; random(height)) {\n        if (random(angle) &gt; 1.6*PI) {\n          pushMatrix();\n          translate(i, j);\n          rotate(PI\/4);\n          stroke(255, 248, 219, 10+c\/4);\n          fill(255, 248, 219, 40+c);\n          rect(0, 0, 2*am, 2*am);\n          popMatrix();\n        }\n      }\n      ny += 0.1;\n    }\n    nx += 0.01;\n  }\n  nz +=0.02;\n\n  \/\/moon\n  for (int i = 0; i &lt; 30; i++) {\n    noStroke();\n    fill(255, 248, 219, 100-i);\n    circle(width\/2, 0.65*range, 3*i);\n  }\n\n  \/\/cloud\n  for (int i=0; i&lt;width; i += am) {\n    ny = 0;\n    for (int j=0; j&lt;range; j += am) {\n      angle = map (noise (nx, ny, nz), 0, 1.0, 0, 4*PI);\n      x = am * cos (angle);\n      y = am * sin (angle);\n      noStroke();\n      c = dist(i, j, width\/2, range\/2);\n      c = map(c, 0, width\/2, 100, -10);\n      fill(4*angle+1.2*c, 5*angle+1.1*c, 5*angle+0.9*c, 30*angle-1.3*j);\n      rect (i, j, 4*am, am);\n      ny += 0.1;\n    }\n    nx += 0.05;\n  }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Processing<\/p>\n","protected":false},"author":1,"featured_media":724,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[7],"class_list":["post-722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-research","tag-digital"],"_links":{"self":[{"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/posts\/722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=722"}],"version-history":[{"count":4,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/posts\/722\/revisions"}],"predecessor-version":[{"id":854,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/posts\/722\/revisions\/854"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=\/wp\/v2\/media\/724"}],"wp:attachment":[{"href":"https:\/\/zhengfangs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zhengfangs.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}