2009/7/5 Ian Mallett <geometr...@gmail.com>: > I'm trying to get a cloud particle system working. As part of determining > the depth of every point (to get the light that can pass through), it makes > sense that the volume should be of even density. The volume is a sphere. > Currently, I'm using: > > vecs = numpy.random.standard_normal(size=(size,size,3)) > magnitudes = numpy.sqrt((vecs*vecs).sum(axis=-1)) > uvecs = vecs / magnitudes[...,numpy.newaxis] > randlen = numpy.random.random((size,size)) > randpoints = uvecs*randlen[...,numpy.newaxis] > > The particles' positions are set to randpoints. However, this creates only > an even distribution of directions on the sphere. The particles are too > closely centered around the center. What I want is a certain number of > particles arranged evenly throughout the sphere. How do I do that?
I can think of two ways: Uniformly generate points in a cube, and throw away all those outside the sphere or, if you want to generate them directly, draw from a uniformly distribution and transform the coordinates appropriately. If you want more info on the latter approach, let me know. Regards Stéfan _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion