颜色不适用于具有噪声功能的 p5.js 示例

pom421

我想实现代码本质的 p5.js 示例。

目的是用像素填充画布,其亮度由柏林噪声函数随机选择。我受到 Processing 的 Java 等价物的启发,但我得到的不是我所期望的,它几乎是黑色的画布。

这是我的代码:

var increment = 0.02

function setup() {
  createCanvas(100, 100)
  noLoop()
}

function draw() {
  background(0)

  loadPixels();

  var xoff = 0

  for (var x = 0; x < width; x++) {
    xoff += increment
    var yoff = 0

    for (var y = 0; y < height; y++) {
      yoff += increment
      var bright = floor(noise(xoff, yoff) * 255)

      console.log('bright', bright, '(', x, ', ', y, ')')

      pixels[x+y*width] = color(bright);
    }
  }
  updatePixels();
}

我的 console.log 显示了一个看起来连贯的明亮值。你看我的代码有什么问题吗?

奇比

像素阵列是扁平的,每 4 个元素创建一个像素。

第一个像素实际上是:

pixels[0] // red value of pixel,   between 0-255
pixels[1] // green value of pixel, between 0-255
pixels[2] // blue value of pixel,  between 0-255
pixels[3] // alpha value of pixel, between 0-255

但是,在查看 p5.js 文档时,我注意到有一个辅助方法set可以抽象像素颜色的设置。要使用该set方法,我们只需要一个像素的坐标以及一个color实例更改颜色模式还允许我们轻松创建具有给定亮度的颜色对象。

注意:我已经包含了一个指向 p5.js 的 CDN 链接,因此您可以运行该示例。

const increment = 0.02;

function setup() {
  createCanvas(200, 200);
  noLoop();
}

function draw() {
  background(0);
  
  colorMode(HSB, 255);
  
  let xOff = 0;
  
  for (let x = 0; x < width; x++) {
    let yOff = 0;
    
    xOff += increment;
    
    for (let y = 0; y < height; y++) {
      yOff += increment
      
      const n = noise(xOff, yOff);    //  noise
      const h = 255;                  //  hue
      const s = 126;                  //  saturation
      const b = map(n, 0, 1, 0, 255); //  brightness
      const c = color(h, s, b);       //  color instance
      
      set(x, y, c);                   //  set pixel
    }
  }
  
  updatePixels();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.8/p5.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.env process.env不适用于使用Node.js示例的DocuSign docusignAPI

来自分类Dev

JS最大调用堆栈超过P5

来自分类Dev

在WEBGL canvas,p5 js中使用可变字体

来自分类Dev

将ShaderToy Chromakey示例移植到P5.js

来自分类Dev

p5中有多个画布

来自分类Dev

将遥测数据发布到本地 Thingsboard 服务器适用于 mqtt.js 但不适用于 ESP arduino 示例

来自分类Dev

JS元素属性设置不适用于HTML 5

来自分类Dev

在for循环中创建按钮,每个按钮具有不同的mousePress p5中的功能

来自分类Dev

带有Backbone.js路由器的HTML5 pushState不适用于特定服务器,但适用于其他服务器

来自分类Dev

一个p5 / .js自定义旋转行为问题

来自分类Dev

p5 js“无法读取未定义的属性‘show()’”

来自分类Dev

Frida,钩OKHttp库不适用于示例

来自分类Dev

Codepen CSS动画示例不适用于本地

来自分类Dev

ng-grid示例不适用于IE

来自分类Dev

pykcharts分散示例不适用于本地文件

来自分类Dev

Mapbox示例地图不适用于Android Studio / Genymotion

来自分类Dev

Memoize 不适用于斐波那契示例

来自分类Dev

Bootstrap Select2不适用于JS功能

来自分类Dev

For循环不适用于js地图功能

来自分类Dev

在不使用设置/绘制格式的情况下使用p5的功能

来自分类Dev

控制台 p5 中出现了我没有创建的变量

来自分类Dev

ext js网格示例

来自分类Dev

三.js 示例

来自分类Dev

p5 js in react:期望分配或函数调用,而是看到一个表达式no-unused-expressions

来自分类Dev

如何将多个 p5 JS 项目链接到同一个 index.html?

来自分类Dev

Audio5js播放器不适用于Mac上的Chrome

来自分类Dev

适用于Linux的GPIO示例代码

来自分类Dev

mailgun的域名示例适用于nodejs?

来自分类Dev

是否有cubism.js + WebSocket的任何教程或示例?

Related 相关文章

  1. 1

    .env process.env不适用于使用Node.js示例的DocuSign docusignAPI

  2. 2

    JS最大调用堆栈超过P5

  3. 3

    在WEBGL canvas,p5 js中使用可变字体

  4. 4

    将ShaderToy Chromakey示例移植到P5.js

  5. 5

    p5中有多个画布

  6. 6

    将遥测数据发布到本地 Thingsboard 服务器适用于 mqtt.js 但不适用于 ESP arduino 示例

  7. 7

    JS元素属性设置不适用于HTML 5

  8. 8

    在for循环中创建按钮,每个按钮具有不同的mousePress p5中的功能

  9. 9

    带有Backbone.js路由器的HTML5 pushState不适用于特定服务器,但适用于其他服务器

  10. 10

    一个p5 / .js自定义旋转行为问题

  11. 11

    p5 js“无法读取未定义的属性‘show()’”

  12. 12

    Frida,钩OKHttp库不适用于示例

  13. 13

    Codepen CSS动画示例不适用于本地

  14. 14

    ng-grid示例不适用于IE

  15. 15

    pykcharts分散示例不适用于本地文件

  16. 16

    Mapbox示例地图不适用于Android Studio / Genymotion

  17. 17

    Memoize 不适用于斐波那契示例

  18. 18

    Bootstrap Select2不适用于JS功能

  19. 19

    For循环不适用于js地图功能

  20. 20

    在不使用设置/绘制格式的情况下使用p5的功能

  21. 21

    控制台 p5 中出现了我没有创建的变量

  22. 22

    ext js网格示例

  23. 23

    三.js 示例

  24. 24

    p5 js in react:期望分配或函数调用,而是看到一个表达式no-unused-expressions

  25. 25

    如何将多个 p5 JS 项目链接到同一个 index.html?

  26. 26

    Audio5js播放器不适用于Mac上的Chrome

  27. 27

    适用于Linux的GPIO示例代码

  28. 28

    mailgun的域名示例适用于nodejs?

  29. 29

    是否有cubism.js + WebSocket的任何教程或示例?

热门标签

归档