You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将自定义JS噪声/偏移函数转为p5.js原生函数实现波浪线效果

p5.js波浪线场代码简化适配问题

我已经将Processing Java版本的示例草图移植到p5.js中,实现了效果美观的波浪线场。

目前我正在学习p5.js,希望进一步简化代码,通过noise()、lerp()等p5内置函数获取噪声值与偏移值。

我做了诸多尝试,希望借助p5自带的辅助函数实现periodicFunction()、offset()两个自定义函数,以及时间参数t的计算,但始终没有取得进展。

我反复观看了Daniel Shiffman制作的关于极坐标Perlin噪声循环的优质教学视频,但仍无法推进开发:该教程将噪声值绑定到圆形图形上,而我需要将相关逻辑适配到当前的网格波浪线草图中。

恳请各位开发者提供相关思路与帮助,非常感谢。

现有实现代码

核心逻辑代码

function setup()
{
  createCanvas(500,500);
}

let numFrames = 80;

function periodicFunction(p)
{
  return 1.0*sin(TWO_PI*p);
}

function offset( x, y)
{
  return 0.005*(x - 2 * y);
}

function draw()
{
  background(255);
  
  let t = 1.0*frameCount/numFrames;
  
  let m = 50;
  
  stroke(0);
  
  for(let i=0;i<m;i++)
  {
    for(let j=0;j<m;j++)
    {
      let x = map(i,0,m-1,0,width);
      let y = map(j,0,m-1,0,height);
      
      push();
      translate(x,y);
      
      let rot = periodicFunction(t-offset(x,y));
      rotate(rot);
      
      line(-5,0,5,0);
      pop();
    }
  }
}

依赖引入代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.1/p5.min.js"></script>

内容的提问来源于stack exchange,提问作者Tornado_code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:30:45