问题
I'd like to make a lookup table for unit vectors. Each unit vector would map to a bin in this table, and the bin would contain some information for a small set of vectors with similar directions.
I could easily represent a vector using ($\theta$, $\phi$, 1), and then chop the angle ranges into bins to make a 2D lookup table (so the first bin is theta in the range of 0 to $2*\pi / N$, where N is the number of bins I want for the theta direction). The trouble with this is that I think that some bins are going to represent larger areas on the surface of the unit sphere than others, and I would like to get regions of roughly the same size.
Am I wrong in thinking that evenly dividing the angle range would make some bins larger than others? If not, does anyone know a better way of making this lookup table?
I found some papers and presentations like this one, but I'm not going to lie, I don't understand it (I've heard of Lebesgue measure, but I'll be damned if I know what it means), and it doesn't look particularly promising anyway.
回答1:
If you split the longitude into N
equal size segments, then, to get equal area domains on the unit sphere, you will have to have "uneven" segments along the latitude dimension.
The area of the spherical segment between two lines of constant latitude (parallels) only depends on the "height", i.e., the length of the projection of the segment to the vertical axis.
This means that if you split the vertical axis into equal length parts, then you will be splitting the sphere in to equal area domains.
The bottom line is: the following N*M
domains have equal areas:
2*k*pi/N < longitute < 2*(k+1)pi/N
,k=0...N-1
-1 + 2*j/M < sin(latitude) < -1 + 2*(j+1)/M
,j=0...M-1
来源:https://stackoverflow.com/questions/24458267/partition-the-unit-sphere