1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-02-12 03:14:23 +01:00

add rand_pts_sphere

This commit is contained in:
Justin Lin 2021-07-30 18:05:02 +08:00
parent 4cd74cb0bf
commit a213a797a0

View File

@ -0,0 +1,39 @@
use <util/degrees.scad>;
function rand_pts_sphere(radius, value_count, seed = undef) =
let(r_nums = is_undef(seed) ? rands(0, 1, value_count * 2) : rands(0, 1, value_count * 2, seed))
[
for(i = [0:value_count - 1])
let(
theta = degrees(2 * PI * r_nums[i]),
phi = acos(r_nums[i + value_count] * 2 - 1),
sin_phi = sin(phi),
x = sin_phi * cos(theta),
y = sin_phi * sin(theta),
z = cos(phi)
)
[x, y, z]
] * radius;
/*
use <experimental/rand_pts_sphere.scad>;
use <polyhedron_hull.scad>;
number = 20;
u = rands(0, 1, number);
v = rands(0, 1, number);
radius = 2;
points = rand_pts_sphere(radius, number);
polyhedron_hull(points);
for(p = points) {
translate(p)
sphere(.05);
}
%sphere(radius, $fn = 48);
*/