boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Physics版 - 请问如何在球体表面均匀分布N个点(赠送包子) (转载)
相关主题
急问:有没有球坐标系下的转动矩阵
问个数学问题
紧急求助一个物理相关的平面几何的问题
问:笛卡尔坐标系中的z方向单位矢量
考考大家的数学
弱问,已知一点的温度和材料的导热参数,能估计出热源的温度吗?
老子与科学宇宙论比较
dvi -> pdf 转一篇对发paper的兄弟们有帮助的帖子
请教球体电阻的公式
[合集] 国内的一个同学
相关话题的讨论汇总
话题: 均匀分布话题: phi话题: theta话题: 个点话题: sin
进入Physics版参与讨论
1 (共1页)
h****a
发帖数: 580
1
【 以下文字转载自 Mathematics 讨论区 】
发信人: hpanda (panda), 信区: Mathematics
标 题: 请问如何在球体表面均匀分布N个点(赠送包子)
发信站: BBS 未名空间站 (Thu Oct 30 11:47:20 2008)
诚心诚意向各位请教一个问题:假设有一个半径为R的球,如何在球面均匀分布N个点?
这里的“均匀”并不要求数学上的严格,只要最近的点点距离对所有的点都大致相等就
可以。关键是要容易通过一段程序来实现,也就是说,假设球心位于XYZ坐标系的原点
,向程序输入两个参数:半径R,点数N,程序运算后能给出N个坐标。
多谢!若哪位大侠能给出解决方案,有包子赠送。
a**d
发帖数: 97
2
第一象限取1/8球面, 坐标 : (x, y, z) 满足关系 x^2+y^2+z^2 = R^2
在[0,R]范围内,随机生成 [x,y], 求出z. 如果z小于零,放弃该点。
直到生成N/8个点为止
不知道怎么样,能否解决你的问题?

【在 h****a 的大作中提到】
: 【 以下文字转载自 Mathematics 讨论区 】
: 发信人: hpanda (panda), 信区: Mathematics
: 标 题: 请问如何在球体表面均匀分布N个点(赠送包子)
: 发信站: BBS 未名空间站 (Thu Oct 30 11:47:20 2008)
: 诚心诚意向各位请教一个问题:假设有一个半径为R的球,如何在球面均匀分布N个点?
: 这里的“均匀”并不要求数学上的严格,只要最近的点点距离对所有的点都大致相等就
: 可以。关键是要容易通过一段程序来实现,也就是说,假设球心位于XYZ坐标系的原点
: ,向程序输入两个参数:半径R,点数N,程序运算后能给出N个坐标。
: 多谢!若哪位大侠能给出解决方案,有包子赠送。

S*********g
发帖数: 5298
3
球坐标?
p(theta) = sin theta
p(phi) = 1/2pi

【在 a**d 的大作中提到】
: 第一象限取1/8球面, 坐标 : (x, y, z) 满足关系 x^2+y^2+z^2 = R^2
: 在[0,R]范围内,随机生成 [x,y], 求出z. 如果z小于零,放弃该点。
: 直到生成N/8个点为止
: 不知道怎么样,能否解决你的问题?

m*****r
发帖数: 3822
4
你这个大至是多大至?

【在 h****a 的大作中提到】
: 【 以下文字转载自 Mathematics 讨论区 】
: 发信人: hpanda (panda), 信区: Mathematics
: 标 题: 请问如何在球体表面均匀分布N个点(赠送包子)
: 发信站: BBS 未名空间站 (Thu Oct 30 11:47:20 2008)
: 诚心诚意向各位请教一个问题:假设有一个半径为R的球,如何在球面均匀分布N个点?
: 这里的“均匀”并不要求数学上的严格,只要最近的点点距离对所有的点都大致相等就
: 可以。关键是要容易通过一段程序来实现,也就是说,假设球心位于XYZ坐标系的原点
: ,向程序输入两个参数:半径R,点数N,程序运算后能给出N个坐标。
: 多谢!若哪位大侠能给出解决方案,有包子赠送。

o****g
发帖数: 314
5
[-R, R]之间取均匀分布,得 x
[0, 2\pi]之间取均匀分布,得 \phi
y = \sin\phi
z = \sin\phi
注意不能通过均匀分布得到 \theta 和 \phi,然后 用 x = \sin\theta, y = \cos\
theta * \sin\phi 等得到一个球面的均匀分布

【在 h****a 的大作中提到】
: 【 以下文字转载自 Mathematics 讨论区 】
: 发信人: hpanda (panda), 信区: Mathematics
: 标 题: 请问如何在球体表面均匀分布N个点(赠送包子)
: 发信站: BBS 未名空间站 (Thu Oct 30 11:47:20 2008)
: 诚心诚意向各位请教一个问题:假设有一个半径为R的球,如何在球面均匀分布N个点?
: 这里的“均匀”并不要求数学上的严格,只要最近的点点距离对所有的点都大致相等就
: 可以。关键是要容易通过一段程序来实现,也就是说,假设球心位于XYZ坐标系的原点
: ,向程序输入两个参数:半径R,点数N,程序运算后能给出N个坐标。
: 多谢!若哪位大侠能给出解决方案,有包子赠送。

N***m
发帖数: 4460
6
随机的东西很难保证距离差不多

【在 a**d 的大作中提到】
: 第一象限取1/8球面, 坐标 : (x, y, z) 满足关系 x^2+y^2+z^2 = R^2
: 在[0,R]范围内,随机生成 [x,y], 求出z. 如果z小于零,放弃该点。
: 直到生成N/8个点为止
: 不知道怎么样,能否解决你的问题?

g***e
发帖数: 4074
7
首先,N必须很大,否则不能用随机生成来取点。
其次,ated的方法实际是在赤道面内随机取点,反映到球面上,并不是随机均匀分布。
SuperString的方法是对的。
总之,N比较小的时候这个方法不一定很好。因为增加一个点对原来的点根本没有影响
N***m
发帖数: 4460
8
随机的办法根本不行,信噪比和N没关

【在 g***e 的大作中提到】
: 首先,N必须很大,否则不能用随机生成来取点。
: 其次,ated的方法实际是在赤道面内随机取点,反映到球面上,并不是随机均匀分布。
: SuperString的方法是对的。
: 总之,N比较小的时候这个方法不一定很好。因为增加一个点对原来的点根本没有影响
: 。

g***e
发帖数: 4074
9
还有一个办法:
首先按照N个点,计算一个的每个点平均应该占有的面积,求出
一个半径r,然后取一个大概0.5r到0.7r的值,把每个点放大为
一个球面上的圆圈(当然用球面坐标更容易计算,不过这些占
有面积将会是准方块形状)。
从第一个点开始,每次生成一个随机点,确保不落入先前点所占
的圆圈内,否则重新生成。越往后,越难找到合适的点,但由于
我们取得占有面积比平均占有面积小,最后总能找到直到第N个
点。
这样会减小误差,但不可避免地同时增加运算。
h****a
发帖数: 580
10
I've found the following web page which is focusing on this problem:
http://www.ogre.nu/sphere.htm
Thank all of you for replying.
1 (共1页)
进入Physics版参与讨论
相关主题
[合集] 国内的一个同学
[合集] 当代中国最著名的民间物理学家
需要一些高质量的帖子。
大家快去看月亮,正在月全食
几何问题求助(转贴)
选offer求建议
请问一个计算散射振幅的问题
匪夷所思:狭义相对论怎么会造成这么大的混乱
请推荐超导方面的Review文章
问一个肤浅的相对论问题
相关话题的讨论汇总
话题: 均匀分布话题: phi话题: theta话题: 个点话题: sin