Step 0

n = number of vertices

 

for(i = 0; i<n; i++) {

 

d = degree of vertex i

 

if(d<5)  r[i] = .5; else r[i] = d/10

 

r2 = r[i] * r[i]

 

x2 = 1/(8*(1-cos(2¹/d)))

 

R[i] = sqrt(x2*r2/(r2 Ð x2))

 

totalR += R[i]    //store for AvgR

 

}

 

AvgR = totalR / n

 

Step i

for(i=0; i < # of vertices; i++) {

 

r[i] += .1*(R[i] Ð AvgR)

 

d = degree of vertex

 

r2 = r[i] * r[i]

 

x2 = 1/(8*(1-cos(2¹/d)))

 

R[i] = sqrt(x2*r2/(r2 Ð x2))

 

totalR += R[i] //store for AvgR

 

}

 

AvgR = totalR / n

 

 

For getting coordinates

            Step 0

send every pt to (0, 0, di), where

di = sqrt(R2 + ri2)

 

            Step 1

keep pt 0 @

 

send all others to (xi, 0, zi) where

zi = (R2 Ð r0 * r1)/d0

xi = sqrt( di2 Ð zi2), and d is from Step 0

 

            Step 2

keep pt 0 @ (0, 0, d0), pt 1 @ (x1, 0, z1)

 

for others:

 

  Given pt(i-1) @ (xi-1, yi-1 , zi-1), w/ qi-1

 

  put pt(i) @ (xicosqi, xisinqi, zi) where

  xi, zi are from Step 1, and

qi = arccos(((zi - zi-1)2+xi2+xi-12ÐriÐri-1)/

                         (2xi* xi-1))