1.基础版本:

float[] x = new float[100];
float[] y = new float[100];
float[] speed = new float[100];void setup() {size(500, 400);background(0);stroke(255);strokeWeight(5);int i = 0;while(i < 100) {  x[i] = random(0, width);y[i] = random(0, height);speed[i] = random(1, 5);i = i + 1;}
}void draw() {background(0);int i = 0;while(i < 100) {point(x[i], y[i]);y[i] = y[i] + speed[i];if(y[i] >height) {y[i] = 0;}i = i + 1;}
}

效果图如下:

2. 优化一下:


int densityNum = 10; // 雪花的密度
float[] x= new  float[densityNum];
float[] y= new  float[densityNum];
// 雪花随机速度数组
float[] speed = new float[densityNum];
float[] pointZ = new float[densityNum];
// 雪花大小数组
float[] size = new float[densityNum];
float colorNumR = 0f;
float colorNumG = 0f;
float colorNumB = 0f;
void setup() {fullScreen(P3D);//size(400,400,P3D);background(0);stroke(255);strokeWeight(5);//colorMode(HSB,255);int i = 0;while (i < densityNum) {  x[i] = random(0, width);y[i] = random(0, height);speed[i] = random(1, 5);pointZ[i] = random(-50, 50);size[i] = random(4,7);i = i + 1;}
}
void draw() {colorNumR += 0.1;colorNumG += 0.1;colorNumB += 0.1;// println(noise(colorNum));background(0);int i = 0;while (i < densityNum) {println(255-10*noise(colorNumR*100));stroke(255-10*noise(colorNumR)*20,255-10*noise(colorNumG)*20,255-10*noise(colorNumB)*20);strokeWeight(size[i]);point(x[i], y[i], pointZ[i]);y[i] = y[i] + speed[i];if (y[i] > height) {y[i] = 0;}i = i + 1;}
}

效果图如下:

3.七彩雪:


int densityNum = 100; // 雪花的密度
float[] x= new  float[densityNum];
float[] y= new  float[densityNum];
// 雪花随机速度数组
float[] speed = new float[densityNum];
float[] pointZ = new float[densityNum];
// 雪花大小数组
float[] size = new float[densityNum];
float colorNumR = 0f;
float colorNumG = 0f;
float colorNumB = 0f;
void setup() {//fullScreen(P3D);size(400, 400, P3D);background(0);stroke(255);strokeWeight(5);int i = 0;while (i < densityNum) {  x[i] = random(0, width);y[i] = random(0, height);speed[i] = random(1, 5);pointZ[i] = random(-50, 50);size[i] = random(4, 7);i = i + 1;}
}
void draw() {background(0);int i = 0;while (i < densityNum) {colorMode(HSB,255,255,255);float r = map(speed[i],1,5,0,255);float g = map(speed[i],1,5,0,255);float b = map(speed[i],1,5,0,255);println(60,60,60);stroke(r, g, b);strokeWeight(size[i]);point(x[i], y[i], pointZ[i]);y[i] = y[i] + speed[i];if (y[i] > height) {y[i] = 0;}i = i + 1;}
}

效果图如下:

Processing 入门教程(二十一) 利用数组产生雪花坠落效果相关推荐

  1. php入门时间,php入门教程(二十一) php日期与时间函数

    本节内容: php日期与时间函数 PHP提供了很多的处理日期和时间的函数,包括time().date().mktime().checkdate().microtime().strtotime()等,详 ...

  2. Processing 入门教程(十一) 彩虹桥

    刚好写到这,有一个需要注意的地方,在这个 draw()如果有background()这个方法的 话,意味着每次都会刷新面板:做动画必不可少的,不然会一直叠加叠加叠加颜色 void setup() {s ...

  3. 【OpenCV入门教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/23184547 作者:毛星云(浅墨) ...

  4. 群晖NAS教程(二十一)、利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、华为云)

    群晖NAS教程(二十一).利用Docker安装DDNS动态域名解析,自动更新域名解析到公网IP(支持阿里云.腾讯云dnspod.Cloudflare.华为云) 为了更好的浏览体验,欢迎光顾勤奋的凯尔森 ...

  5. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计 公告板 Billboard 技术

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  6. 【Visual C++】游戏开发五十四 浅墨DirectX教程二十一 视觉的诡计:公告板(Billboard)技术...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)   微博:@浅墨_毛星云邮箱: happylifemxy@163.com I'm back~,这段时间大家久等了~ ...

  7. 运动控制器编程_快速入门 | 篇二十一:运动控制器ZHMI组态编程简介一

    点击上方"正运动小助手",随时关注新动态! 运动控制器ZHMI组态编程简介一  今天我们来学习一下,运动控制器的ZHMI组态编程简介.本文主要从产品概述.控制器连接触摸屏使用.HM ...

  8. C++入门教程(十一、宏)

    目录 前面教程汇总 第一讲 第二讲 第三讲 第四讲 第五讲 第六讲 第七讲 第八讲 第九讲 第十讲 宏 什么是预处理? 宏定义 宏常量 宏语句 宏函数 `#undef` 指令 `ifndef` 指令 ...

  9. c语言类似于 n的标识符,C语言快速入门教程(二)

    C语言快速入门教程(二) C语言的基本语法 本节学习路线图: 引言: C语言,顾名思义就是一门语言,可以类比一下英语; 你要说出一个英语的句子需要: 单词 + 语法! 将单词按照一定的语法拼凑起来就成 ...

  10. python爬虫入门教程(二):开始一个简单的爬虫

    2019/10/28更新 使用Python3,而不再是Python2 转载请注明出处:https://blog.csdn.net/aaronjny/article/details/77945329 爬 ...

最新文章

  1. 学习UI设计的一些小技巧你会了吗
  2. 使用LeakCanary遇到的问题 就是不弹出来
  3. 数据类型,运算符和表达式02 - 零基础入门学习C语言03
  4. JAVA BIO与NIO、AIO的区别
  5. python如何运用到财务工作中存在的问题_财务工作存在问题及整改措施
  6. oracle 触发器 select :new,帮忙看下这个oracle触发器,在select后面的where语句有有关问题,但不知道什么有关问题...
  7. 2014/09/30 Learning Note
  8. ChartControl控件
  9. 转:IV值和WOE值的理解
  10. matlab从无到有系列(二):矩阵运算基础
  11. asp.net知识共享平台
  12. TCP/IP(三):ARP报文格式详解
  13. DIY:利用单片机自制的RGB拖尾流水灯,含电路图、源代码、演示视频、效果图
  14. net use的用法
  15. 月嫂类地域性网站SEO挣钱案例
  16. 【13】变分自编码器(VAE)的原理介绍与pytorch实现
  17. 华为mate30如何开启USB网络共享
  18. 计算机科学与技术大学博士后,清华大学博士后
  19. python--根据星座测试性格特点-列表/模拟12306火车订票下单 --字典
  20. DNS服务器是如何工作的?

热门文章

  1. 仰望星空,脚踏实地 2016
  2. 关于英文论文写作的初步总结和资料推荐
  3. 9N90-ASEMI大功率场效应管9A 900V
  4. php生成appid,uniapp运营中项目转移一定要注意把DCloud appid转移过来
  5. 推荐王森的关于j2me开发的2本书!
  6. java就业感言_JAVA就业班感言
  7. 吃土豆_nyoj_234(动态规划).java
  8. 3D MAX2014 安装教程(个人亲自示例)
  9. 700 boost yeezy_公司级Adidas Yeezy Boost 700上脚测评
  10. 一枚前端UI组件库 KUI for React