Ogni nuovo punto p viene spostato dalla sua posizione lungo la retta cm-p di una quantita casuale dipendente dalle posizioni di p1 e p2
Point3f
mp=(p0+p1)/2.0;
float
r=(Distance(p0,BC)+Distance(p1,BC))/2.0;
float
l=Distance(p0,p1); // Edge
Lenght
l=l*strenght;
srand48(seed
+ p0.Hash() + p1.Hash());
//
Displacement depends only on the two vertexes p0,p1
float
d=drand48()-0.5f;
mp=BC+Normalize(mp-BC)*(r+d*l/2.0);