嘿所有, 我正在研究有关表面积的算法。我使用perl作为编码语言。
我在球体中添加随机点时遇到问题。给定点的x,y,z坐标。我想围绕给定半径r的那些点构造一个球体。我的动机是用oder中的随机点填充这些球体以占据3d中的那个空间。
请指导我完成这一个。我不知道如何去做这个。
答案 0 :(得分:4)
我建议您使用蒙特卡罗方法
假设你的球体居中于( X 0 , Y 0 , Z < sub> 0 ),半径 R
要用随机点填充该球体,在立方体中生成一个精确包含球体的随机坐标流,并拒绝任何落在球体外的点
rand(v)
是一个函数,它返回0到 v 之间的适当随机浮点值
dx = rand(2 R ) - R
dy = rand(2 R ) - R
dz = rand(2 R ) - R
dx 2 + dy 2 + dz 2 < /强> ≤ R 2
保存 [ X 0 + dx , Y 0 + dy , Z 0 + dz ]
我希望这会有所帮助