2012-02-13 83 views
-1

可能重复:
Generating random point in a cylinder在圆柱体内部生成随机点?

如果半径r和高度h给出如何生成一个圆形圆柱体内的随机点?

特别是在汽缸内没有对气缸

+0

只是要清楚......“内部”在圆柱体的体积,或随机点意思是任何地方点在表面上? – 2012-02-13 19:32:02

+0

@ Adam S:圆柱体积的任何位置 – user1198477 2012-02-13 19:52:57

+0

@ user1198477这个问题很快就会像6天前提出的问题那样完全重复。这次有什么不同吗?如果是这样,你应该编辑你的问题说什么。 – AakashM 2012-02-14 09:04:24

回答

3

喜欢的东西:

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

@PeterdeRivaz,你为什么有sqrt?难道你只是想要一个0到r之间的随机半径吗? – TJD 2012-02-13 19:35:23

+0

[编辑澄清:]您需要取r * sqrt的随机数,而不是sqrt(r * random())。说r是5 - 那么sqrt(5 * random())永远不会大于sqrt(5)。 – DSM 2012-02-13 19:35:31

+0

@DSM:你的意思是r1 = r * sqrt(Random(0,1))在上面提到的代码中 – user1198477 2012-02-13 20:01:26