Skip to content

Commit 80b4155

Browse files
committed
draw individual wedges
1 parent 488a521 commit 80b4155

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

sequences/Phonebook.jl

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,44 @@ include("AngleDoubling.jl")
33

44
#for each internal address, calculate a screen which shows the future options
55

6+
function wedge!(ax,start,finish,innerrad,outerrad)
7+
distance = finish - start
8+
vertex_per_deg = 1
9+
nvertices = max(2, ceil(Int, rad2deg(distance) * vertex_per_deg))
10+
11+
outerpoints = map(LinRange(start, finish, nvertices)) do rad
12+
Point2(cos(rad) * outerrad, sin(rad) * outerrad)
13+
end
14+
innerpoints = map(LinRange(finish, start, nvertices)) do rad
15+
Point2(cos(rad) * innerrad, sin(rad) * innerrad)
16+
end
17+
18+
points = append!(innerpoints,outerpoints)
19+
20+
poly!(ax,points)
21+
end
22+
623
function drawwedges!(ax,AIA)
724
N = AIA.addr[end]
8-
n = 5
25+
n = 20
926
for ii in N+1:N+n
1027
k = denominator(AIA,ii)
1128
angles = []
29+
wedges = []
30+
angletext = []
1231
for jj in 1:k-1
1332
if gcd(jj,k) == 1
1433
push!(angles,(jj-0.5)*2*pi/(k-1))
34+
push!(angletext, "$jj/$k $ii")
35+
push!(wedges,((jj-1)*2*pi/(k-1),(jj)*2*pi/(k-1),2^(ii-1),2^ii))
1536
end
1637
end
1738
r = (2^ii+2^(ii-1))/2
1839
centers = [(r*cos(theta),r*sin(theta)) for theta in angles]
19-
pie!(ax,ones(k-1),radius = 2^ii, inner_radius = 2^(ii-1))
20-
text!(ax,centers,text = fill("$ii",length(centers)), align = (:center,:center))
40+
for wedge in wedges
41+
wedge!(ax,wedge...)
42+
end
43+
text!(ax,centers,text = angletext, align = (:center,:center))
2144
end
2245
end
2346

0 commit comments

Comments
 (0)