Math 在圆柱体内生成随机点?

Math 在圆柱体内生成随机点?,math,geometry,Math,Geometry,可能重复: 如果给定半径r和高度h,如何在圆柱体内生成随机点 尤其是在气缸内部,而不是气缸上类似于: angle = Random(0, 2*Pi) r1 = r * sqrt( Random(0,1) ) X = r1*sin(angle) Y = r1*cos(angle) Z = Random(0,h) 我只是想说清楚。。。“内部”是指圆柱体体积中的任意点,还是表面上的任意点?@Adam S:圆柱体体积中的任意点cylinder@user1198477这个问题很快就要结束了,就像你6天

可能重复:

如果给定半径r和高度h,如何在圆柱体内生成随机点

尤其是在气缸内部,而不是气缸上

类似于:

angle = Random(0, 2*Pi)
r1 = r * sqrt( Random(0,1) )
X = r1*sin(angle)
Y = r1*cos(angle)
Z = Random(0,h)

我只是想说清楚。。。“内部”是指圆柱体体积中的任意点,还是表面上的任意点?@Adam S:圆柱体体积中的任意点cylinder@user1198477这个问题很快就要结束了,就像你6天前问的问题一样。这次有什么不同吗?如果是的话,你应该编辑你的问题说什么。@Peterderivez,你为什么有sqrt?你不想要一个介于0和r之间的随机半径吗?[编辑以澄清:]你需要取r*随机数的sqrt,而不是sqrtr*随机数。假设r为5,那么sqrt5*random将永远不会大于sqrt5。@DSM:你的意思是在上述情况下r1=r*sqrtRandom0,1code@DSM同意,在这个答案中需要r1=r*sqrt Random0,1。TJD您需要sqrt以避免在中心附近获得更大的点集中。这里有一个很好的介绍需要平方根的重要性的简介: