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)) |
|