xxxxxxxxxx
96
//catagories
let S = 100;
let Z = 0;
let P = 0;
let R = 0;
let I = 0;
let t = 0;
//birth
let Pi = 10;
//removed death
let delta = 0.01;
//potential death
let gamma = 0.04;
//resuraction rate
let zeta = 0.02;
//stun rate
let alph = 0.04;
//kill rate
let nu = 0.03;
//infection rate
let beta = 0.01;
//move on
let p = 0.5;
function nonZero(a,b){
if(a + b >= 0){
return a
}else{
return -b;
}
}
function zombies(){
t ++;
console.log("--------------"+t+"--------------");
//der
let S_ = 0;
let P_ = 0;
let R_ = 0;
let Z_ = 0;
let I_ = 0;
//calc der
S_ = Pi - delta*S - gamma*S;
P_ = gamma*S - zeta*P + alph*S*Z;
R_ = delta*S + nu*S*Z;
Z_ = zeta*P - alph*S*Z - nu*S*Z + p*I;
I_ = beta*S*Z - p*I - delta*I;
//add der
let roundedS_ = floor(S_);
let roundedP_ = floor(P_);
let roundedR_ = floor(R_);
let roundedZ_ = floor(Z_);
let roundedI_ = floor(I_)
let nonZeroS_ = nonZero(roundedS_,S);
let nonZeroP_ = nonZero(roundedP_,P);
let nonZeroR_ = nonZero(roundedR_,R);
let nonZeroZ_ = nonZero(roundedZ_,Z);
let nonZeroI_ = nonZero(roundedI_,I);
//display rate of change
console.log("dS: ",nonZeroS_," dP: ",nonZeroP_," dR: ",nonZeroR_," dZ: ",nonZeroZ_, " dI: ",nonZeroI_);
S += nonZeroS_;
P += nonZeroP_;
R += nonZeroR_;
Z += nonZeroZ_;
I += nonZeroI_;
//dislay change
console.log("S: ",S," P: ",P," R: ",R," Z: ",Z," I: ", I);
}
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
}
function mouseClicked(){
zombies();
}