主题:创作一组编程习作,体现随机行为及牛顿运动学
要求:编程语言与工具:编程工具不限;作品:参考《代码本色》的第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.
核心代码


本文分享了一组编程习作,通过五个章节深入探讨了随机行为及牛顿运动学在编程中的应用。从随机数的生成到向量、力的概念,再到震荡现象和粒子系统的实现,每章节包含至少两个案例,详细介绍了背后的数学和物理原理,并提供了核心代码片段。
1万+

被折叠的 条评论
为什么被折叠?



