Hi all,
I want to try this, but do not want to use Pluto, is there any nice advice for me?
Hi all,
I want to try this, but do not want to use Pluto, is there any nice advice for me?
More advice: don’t use Luxor for interactivity- unless you use, er, PlutoUI.
I’ve never understood why 3.14 was chosen as “pi day” when the 22nd of July, 22/7, is a better fit.
Apologies for veering off topic.
It is okay, it is a good logic to choose July 22nd
Maybe the code does not work, thus I do not want to use Pluto, rather use REPL instead
look at this warning and error I get for using the codes from the web above:
that is by using Pluto…
Anyway great news I manage to plot it manually without interactivity, which is all I need currently. Interactivity can wait later on. After I get 128 GB of RAM in the future haha…
this is the working code if anyone wants to learn:
using Plots
gr()
function circumference_polygon(sides, radius=1.0)
# inner angle
α = 2π / sides
# angle between side and vertex-center line
β = (π - α) / 2
# using law of sines
side_length = radius * sin(α) / sin(β)
return side_length * sides
end
function estimate_pi(sides)
circumference = circumference_polygon(sides, 1.0)
# as the circumference of the circle is 2rπ
return circumference / 2
end
function rotate_vector(v, α)
x, y = v
x2 = x * cos(α) - y * sin(α)
y2 = x * sin(α) + y * cos(α)
return (x2, y2)
end
function polygon_points(n)
start_point = (0.0, 1.0)
points = [start_point]
internal_degree = 2Ď€/n
for i in 2:n
last_point = points[end]
new_point = rotate_vector(last_point, internal_degree)
push!(points, new_point)
end
return points
end
#change the n_sides to any number you desire
n_sides = 3
pi_estimate = round(estimate_pi(n_sides), digits=5)
# plot a unit circle
plot(x -> sqrt(1 - x^2); color=:blue, aspect_ratio=1.0, legend=false)
plot!(x -> -sqrt(1 - x^2), color=:blue)
# plot the polygon
plot!(Shape(polygon_points(n_sides)), fillcolor=:green)
# annotate with sides and pi estimate
annotate!([(0, 0, ("n=$n_sides \n π̂=$pi_estimate", 20, :white, :center))])
This is not a warning but an error, and imho it is pretty clearly stated plus there are even links you can click to automatically fix things for you - just click on either “Split this cell into 2 cells” or “Wrap all code in a begin … end block”
You’ve wrapped most of your code in begin ... end
, but have another line of code (using Plots
) in the same cell outside begin ... end