时间的流逝,事物更迭、生命轮回...
从统计学的诞生开始,直观化一直是个非常重要的过程,只有将数据直观的表现出来,人们才会更容易更充分的发现规律。直到今天,掌握数据可视化也成为了程序员必备的素质。而数据可视化作为一种视觉的形式,也具有一般视觉作品的艺术和美感。我们可以利用多种技术,结合自己的创造力,利用数据完成具有特殊意义的作品,同时传达一些重要的信息。同时,我们也要多多进行数据可视化,因为总有些规律是出乎意料的,甚至目前科学是解释不了的,这样会使我们有许多新的发现。
二,时间可视化作业说明
我的作品名叫《时之落红》,内容是依据时间来掉落花瓣,每过一分钟,会增加一朵花瓣,每过一秒钟,花瓣的速度会增加,每小时清空一次,并改变背景的颜色。
该作品可以表示时间的流逝,同时能表现事物更迭、生命轮回的意境。
int numFlakes = 1; // 初始的花瓣数量 int maxFlakes = 60; // 60 分钟一循环 int bgColor = color(50, 50,50); // 背景颜色 class SnowFlake { // SnowFlake 类包含花瓣的所有信息 float x, y; // 花瓣的位置 float speed; // 花瓣的速度 float size; // 花瓣的大小 float alpha; // 花瓣的透明度 SnowFlake() { // 构造函数初始化花瓣 x = random(width); // 随机位置 y = random(height); speed = 0; // 初始速度为 0 size = random(5, 20); // 随机大小 alpha = random(0.1, 0.5); // 随机透明度 } void update() { // 更新花瓣的状态 speed += 0.1; // 速度增加 0.1 y += speed; // 按照速度移动花瓣 // 如果花瓣超出画布,重新回到顶部 if (y > height) { y = 0; x = random(width); speed = 0; } } void display() { // 绘制花瓣 fill(255, 0, 255, alpha * 255); // 粉红色,透明度根据 alpha 值计算 ellipse(x, y, size, size); // 用椭圆形绘制花瓣 } } SnowFlake[] flakes = new SnowFlake[maxFlakes]; // 创建花瓣数组 void setup() { size(1000, 1000); // 设置画布大小 frameRate(60); // 设置帧率为 60 fps // 初始化花瓣 for (int i = 0; i < maxFlakes; i++) { flakes[i] = new SnowFlake(); } } void draw() { //// 绘制背景和花瓣 background(bgColor); for (int i = 0; i < numFlakes; i++) { flakes[i].update(); flakes[i].display(); } // 每过一分钟增加一片花瓣 noStroke(); if (frameCount % 3600 == 0) { numFlakes++; if (numFlakes > maxFlakes) { numFlakes = 1; // 循环 } } // 每过一小时改变背景颜色 if (frameCount % 216000 == 0) { bgColor = color(random(20,255), random(255), random(255)); } }