chap0 随机
Perlin噪声算法:perlin噪声又称柏林噪声,噪声鼻祖。给定一个输入变量,生成一个值在0-1范围内的伪随机变量的函数。在图形学中一般是输入一个坐标得到一个范围在0-1之间的变量,在利用各种颜色计算得到一些比较酷炫的效果,像火焰、云彩、地形等。
结果:
主要代码:
void setup(){
size(600,600,P3D);
background(0);
fill(0);
//noStroke();
//lights();
noiseSeed(1);
}
float t=0;
float a = 0.0;
void draw(){
t++;
clear();
pushMatrix();
rotateX(PI/2);
rotateZ(a);
draw1();
popMatrix();
a += 0.01;
}
void draw1(){
for(int x=-width;x<width;x=x+40){
for(int y=-height;y<height;y=y+70){
float n=noise(0.04*x,0.02*y,0.02*(t));
translate(x,y,0);
fill(137,207,n*240);
box(n*100); //size of box
translate(-x,-y,0);
}
}
}
chap1 向量
单位化向量:计算向量的长度只是一个开始。长度计算函数引入了更多的向量运算,第一个就是单 位化。单位化也称为正规化,正规化就是把某种事物变成“标准”或“常规”状态。一 个“标准”的向量就是长度为1的向量。因此,将一个向量单位化,就是使它的方向保 持不变,但长度变为1,这样的向量称为单位向量。
向量的加法 小球即时的位置=(原来的位置.x+速度,原来的位置.y+速度)
结果:
主要代码:
class Mover {
PVector location;
PVector velocity;
PVector acceleration;
float topspeed;
Mover() {
location = new PVector(width/4,0);
velocity = new PVector(random(-2,2),random(-2,2));
acceleration = new PVector(-0.001,0.1);
topspeed = 1