Arrows on hemisphere



using AbstractPlotting

scene = mesh(Sphere(Point3f0(0), 0.9f0), transparency=true, alpha=0.05)

function cosine_weighted_sample_hemisphere()
    θ = acos(sqrt(rand()))
    ϕ = 2π * rand()

    Point3f0(sin(θ)cos(ϕ), cos(θ), sin(θ)sin(ϕ))
end

N = 100

dirs = [cosine_weighted_sample_hemisphere() for i in 1:N]

arrows!(
    scene,
    fill(Point3f0(0), N),
    dirs,
    arrowcolor=:red,
    arrowsize=0.1,
    linecolor=:red
)