主题:创作一组编程习作,体现随机行为及牛顿运动学
要求:编程语言与工具:编程工具不限;作品:参考《代码本色》的第0~4章内容及其实例程序(自行在processing内下载),针对这5章分别编写1个习作(一共5个),每个习作都有不少于2个案例参考,且必须有一定的拓展;报告:写一篇文章(也可以多篇文章,但最好有一个总的导航文章),发表为博文/推文等形式,描述运用的规律,若用到了数学/物理/化学等学科中的知识,要用平实易懂的语言介绍原理,尝试运用凝练的数学语言表达(公式、方程、推导等),特别要描述出这些原理如何在作品中呈现的。
文章目录
第0章,随机数
实现效果截图:
利用知识及原理:
1.不停闪烁和改变大小的颜色的圆形是利用random函数产生随机数进行颜色和位置的变化
位置变化:
void update() {
float m=random(0,1);
if(m<0.8){
position.x=random(0,640);
position.y=random(0,640);
}
else{
position.x=random(0,300);
position.y=random(0,300);
}
}
2.黄色椭圆形图像是在做具有右移趋势的运动。参考原理如下:
3.中间的蓝色圆形运动参考perlin噪声游走模型;
核心代码:
随机位置的定义:
void update() {
float m=random(0,1);
if(m<0.8){
position.x=random(0,640);
position.y=random(0,640);
}
else{
position.x=random(0,300);
position.y=random(0,300);
}
}
void step(){
float stepx = random(-5, 5);
float stepy = random(-5, 5);
position.x += stepx;
position.y += stepy;
}
右移趋势的运动:
perlin噪声游走:
第1章,向量
实现效果截图:
实际运行起来背景颜色不会出现变化,可能是录屏软件的原因。
利用知识及原理
1.向量的加法,参考弹球程序:
2.加速度的交互,存在有向鼠标位置的加速度
核心代码
碰撞后改变运动方向+指向鼠标位置的加速度
第2章 力
实现效果截图:
利用知识及原理
1.
2.
3.
核心代码:
1.画星星
2.引力的计算和添加
第3章,震荡
实验效果截图
利用知识及原理
1.
2.
核心代码
第4章,粒子系统
实现效果截图
利用知识及原理
1.
2.
核心代码