我认为距离我的意思是半径,所以另一种方法是“我如何在给定半径的圆周上得到随机点,同样给出圆心”。
我不明白降价促销。这是一个简单的C#问题,需要一个简单的C#答案,正如Daniel DiPaolo在下面提供的那样。
通过改进问题或提供答案,降价促销和相关评论都无济于事。
答案 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}
的圆圈NB 使用角度可以更简单,更快速,更均匀地分布,请参阅其他答案。
我的算法的问题,如果有人试图使用它,是因为圆的弯曲形状,接近X=r+
和X=r-
的点将比接近X=0
的那个。请参阅@Servy的评论。