# Appendix

```{julia}
#| hold: true
#| echo: false
gr()
## For **some reason** having this in the natural place messes up the plots.
## {{{approximate_surface_area}}}

xs,ys = range(-1, stop=1, length=50), range(-1, stop=1, length=50)
f(x,y)= 2 - (x^2 + y^2)

dr = [1/2, 3/4]
df = [f(dr[1],0), f(dr[2],0)]

function sa_approx_graph(i)
    p = plot(xs, ys, f, st=[:surface], legend=false)
    for theta in range(0, stop=i/10*2pi, length=10*i )
        path3d!(p,sin(theta)*dr, cos(theta)*dr, df)
    end
    p
end
n = 10

anim = @animate for i=1:n
    sa_approx_graph(i)
end

imgfile = tempname() * ".gif"
gif(anim, imgfile, fps = 1)


caption = L"""

Surface of revolution of $f(x) = 2 - x^2$ about the $y$ axis. The lines segments are the images of rotating the secant line connecting $(1/2, f(1/2))$ and $(3/4, f(3/4))$. These trace out the frustum of a cone which approximates the corresponding surface area of the surface of revolution. In the limit, this approximation becomes exact and a formula for the surface area of surfaces of revolution can be used to compute the value.

"""

plotly()
ImageFile(imgfile, caption)
```
