互动编程习作1——《代码本色》前五章拓展

这篇博客是《代码本色》前五章的互动编程习作,涵盖向量、力、震荡和粒子系统。通过实例介绍了面向对象方法在模拟物理现象中的应用,如单位化向量、力的概念、简谐运动和动态系统的构建。文章引用了Processing代码示例,帮助读者理解并实践相关概念。
摘要由CSDN通过智能技术生成

互动编程习作1——《代码本色》前五章拓展

1.第0章 引言

1.借以回顾本书的中心编程思想——面向对象编程。我们要用面向对象方法来模拟物体在 Processing窗口的运动,随机游走模型就是这个例子的模板。
2.随机游走模型引入了贯穿本书的两个关键问题:如何定义对象的行为规则,以及如何用 Processing模拟这些行为规则。
3.在本书中,我们需要对随机性、概率和Perlin噪声有基本的了解,随机游走模型展示了 其中的关键点,这在我们以后的学习中会很有用。
Perlin噪声
Perlin噪声算法表现出了一定的自然性,因为它能生成符合自然排序(“平滑”)的伪随机 数序列。图I-5展示了Perlin噪声的效果,x轴代表时间;请注意曲线的平滑性。图I-6展示 了纯随机数的效果。(生成图形的代码可以在本书的下载资料中找到。
在这里插入图片描述
参考例子:0-2、0-5

float t = 0;

void setup() {
size(640,240);
}

void draw() {
float n = noise(t);
float x = map(n,0,1,0,width);
ellipse(x,180,16,16);

t += 0.01;
}

在这里插入图片描述

2.第1章 向量

向量通常用粗体或者顶上带箭头的字母表示。在本书中,为了能区分向量和标量(标量 指单个值,就像整数或浮点数),我们用带箭头的方式表示一个向量:
在这里插入图片描述
单位化向量
计算向量的长度只是一个开始。长度计算函数引入了更多的向量运算,第一个就是单 位化。单位化也称为正规化,正规化就是把某种事物变成“标准”或“常规”状态。一 个“标准”的向量就是长度为1的向量。因此,将一个向量单位化,就是使它的方向保 持不变,但长度变为1,这样的向量称为单位向量。
在这里插入图片描述
参考例子:1-1、1-7

PVector location;
PVector velocity;

void setup() {
size(200,200);
}

void draw() {
//background(255);

PVector mouse = new PVector(mouseX,mouseY);
PVector center = new PVector(width / 2,height / 2);

mouse.sub(center);
mouse.normalize();

mouse.mult(50);

translate(width / 2,height / 2);
line(0,0,mouse.x,mouse.y);
}

class PVector {
float x;
float y;

PVector(float x_,float y_) {
x = x_;
y = y_;
}

void add(PVector v) {
x = x + v.x;
y = y

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值