代码本色--前五章编程习作(一)(processing)

本文是基于《代码本色》前五章的编程习作,探讨了如何使用processing的noise()函数生成Perlin噪声,创建平滑随机图案,并通过向量知识模拟小球在力的作用下的运动,包括浮力效应。文中详细展示了代码及运行效果。
摘要由CSDN通过智能技术生成

代码本色–前五章编程习作(processing)

本文章主要是基于《代码本色》这本书的内容编写的拓展程序,使用语言为processing。

随机行为编程(曲面)

提到随机,大家可能先想到的就是random了,日常编程需要随机数时,基本都是使用random去生成随机数,实际上random产生的随机数是服从均匀分布的,他也不是真正意义上的‘随机’数。在processing中,我们还可以产生服从正态分布的随机数,使用nextGaussian()函数即可产生服从正态分布的随机数,但是这些方法产生的随机数不是很自然,我们可以使用Perlin噪声产生符合自然排序的伪随机数,processing也有现成的函数noise()实现Perlin噪声算法,noise()函数具体使用详见noise()函数解析,下面我就基于Perlin噪声生成美丽的图案。

图案展示

下为示例图案(因行为随机,每次运行曲面走向不同,产生图案不同),动图所占内存太大,所以只能录其中一部分1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码展示

public void update(float nx, float ny)
  {
   
    this.pre_x=this.noise_x;
    this.pre_y=this.noise_y;
    this.noise_x=nx;
    this.noise_y=ny;
    line(pre_x, pre_y, noise_x, noise_y);
  }
void draw() {
   
  if (t%3==0)
  {
   
    time=time+0.005f;
  } 
  if (t<=1440)
  {
   
    initH=t/4;
    initS=t/1440*20+80;
    initB=t/1440*20+80;
  } else
  {
   
    t=1;
    initH=t/4;
    initS=t/1440*20+80;
    initB=t/1440*20+80;
  }
  t++;
  float alpha=map(noise(time), 0,1,1,5);
  stroke(initH, initS, initB, alpha);
  // stroke(130);
  //stroke(100, 200,10,3);
  strokeWeight(1);
   if (time<20f)
  {
   
    for (int i=0;
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值