[x,y,z] = sphere, except uniform or random distributed points
Show older comments
Hi,
I like the [x,y,z] = sphere; function, except would like the points returned to be more of a random or uniform sampling of the surface. It seems to have tighter spacing at the "poles", and sparse at the "equator".
Thanks a lot. Dave
Accepted Answer
More Answers (3)
Image Analyst
on 11 Jun 2016
0 votes
Calculate phi and theta for each of the points. Then bin them and take a specified number of points from each bin.
John D'Errico
on 11 Jun 2016
0 votes
You say that you want it "random" in some sense. But then your comment indicates that you don't want areas where there are no points. The problem is that at SOME fine-ness, a random sampling will always have holes in it. That is the nature of randomnity (I may have just coined that word.)
If you choose to bin things so that there are some points in one bin, and others in an adjacent bin, then there is a decent chance that the points in both bins 1 and 2, by random chance, may all lie away from the common edge. If you have enough bins, the chance of this happening in SOME bin are actually very good. In that case, you will perceive a hole in the sampling.
This will happen not matter how you do any random sampling. So really, you don't want a random sampling, even though you say you do.
In fact, you probably want some variation of sampling that has all points in some way uniformly distant from their neighbors. I'd suggest the idea of looking for a uniform tiling of a sphere, so maybe this as a starting point.
1 Comment
David Pesetsky
on 11 Jun 2016
Image Analyst
on 11 Jun 2016
0 votes
Use the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_create_a_set_of_random_locations_within_a_circle.3F It should be a simple matter to add a "z" vector and additional angle. One other change you need to make is to make the radius a constant instead of a list of random numbers.
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!