我在球体表面有很多点。
如何计算具有最大点密度的球体的面积/点?
我需要非常快地完成这件事。例如,如果这是一个正方形,我想我可以创建一个网格,然后让点投票网格的哪一部分是最好的。
我尝试将这些点转换为球面坐标,然后制作网格,这两种方法都效果不佳,因为北极周围的点在球体上很近,但在变换后却很远。
Thanks
事实上,没有真正的理由将球体划分为常规的不重叠网格,请尝试以下操作:
数学实现
分析 5000 个点需要 12 秒。 (写了大约10分钟)
testcircles = { RandomReal[ {0, 1}, {3}] // Normalize};
Do[While[ (test = RandomReal[ {-1, 1}, {3}] // Normalize ;
Select[testcircles , #.test > .9 & , 1] ) == {} ];
AppendTo[testcircles, test];, {2000}];
vmax = testcircles[[First@
Ordering[-Table[
Count[ (testcircles[[i]].#) & /@ points , x_ /; x > .98 ] ,
{i, Length[testcircles]}], 1]]];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)