1.森林火灾模型的2-D元胞自动机的构建,同样模型也可适用于其他模型,比如传染病的传播等。
2.规则:
(1)在一个空场地(灰色),一棵树以pGrowth的机率成长。
(2)如果其相邻树中有至少有一棵树正在燃烧,那么这颗树也会成为一棵燃烧树(红色)。
(3)一棵燃烧树(红色)成为一个空场地(灰色)。
(4)如果周围没有任何燃烧树,那么这个树成为燃烧树的可能性为pBurn。比如由雷击导致的燃烧,就是其中的一种可能。
3.项目实现:
int[][][] pix = new int[2][400][400];
int toDraw = 0;
int tree = 0;
int burningTree = 1;
int emptySite = 2;
int x_limit = 400;
int y_limit = 400;
color brown = color(80, 50, 10); // brown
color red = color(255, 0, 0); // red;
color green = color(0, 255, 0); // green
float pGrowth = 0.01;
float pBurn = 0.00006;
boolean prob( float p )
{
if (random(0, 1) < p) return true;
else return false;
}
void setup()
{
size(400, 400);
frameRate(60);