如何计算距离另一个点固定距离的随机点?

时间:2012-07-16 16:04:01

标签: c#

我认为距离我的意思是半径,所以另一种方法是“我如何在给定半径的圆周上得到随机点,同样给出圆心”。

我不明白降价促销。这是一个简单的C#问题,需要一个简单的C#答案,正如Daniel DiPaolo在下面提供的那样。

通过改进问题或提供答案,降价促销和相关评论都无济于事。

4 个答案:

答案 0 :(得分:7)

计算随机角度,然后使用角度和距离作为距第一点的极坐标偏移。

答案 1 :(得分:7)

如果您的中心和半径是固定的,那么唯一不同的是角度。因此,只需计算0到360度(或0和2π弧度)之间的一些随机角度,并使用它来获得使用极坐标转换的x-y坐标。

x = r × cos( θ )
y = r x sin( θ )

添加中心的x,y坐标作为偏移,你就有了坐标。

答案 2 :(得分:0)

看一下Circle Point Tracking,有一些选择点的方法。

答案 3 :(得分:0)

算法代码

给定{[0,0],1} - {center,radius}

的圆圈
  1. x =>从[-1,1]
  2. 获取随机数x
  3. y + y - =>随机选择正y或负y四分之一(例如0或1)
  4. y =>得到垂直线x = X1(从步骤1)到圆的交点,选择正或负四分之一(从步骤2开始)
  5. NB 使用角度可以更简单,更快速,更均匀地分布,请参阅其他答案。

    我的算法的问题,如果有人试图使用它,是因为圆的弯曲形状,接近X=r+X=r-的点将比接近X=0的那个。请参阅@Servy的评论。