我正在使用Java多边形对象,它存储定义形状的线段点数组。我该如何在这些线段上选择一个随机点?Polygon类中是否有任何方法可以更轻松地完成此操作?需要澄清的是,我想从多边形边缘的任意位置选择一个随机点,不一定是定义顶点集合中的点。
y = mx + b
方程,用于连接顶点的 n
条边中随机选择的一条边。顶点在 Polygon.xpoints
和 Polygon.ypoints
中定义。Polygon
中,而我们想要一条边,因此我们需要两个顶点来形成一条线,所以我们随机选择介于 0
和 5
之间的数。假设我们随机生成的数字为 r=0
。xpoints[r]=1
,ypoints[r]=1
,xpoints[r+1]=2
和 ypoints[r+1]=4
。m
,我们有:m = (4-1)/(2-1) = 3
(y - 1) = m(x - 1)
(y - 1) = 3(x - 1) --> y = 3x - 2
r = 5
时会发生什么,我们有一个数组索引为6,超出了边界。对于r = 5
,我们不是使用r + 1
来获取下一个顶点,而是使用0
。 - Travis Webbjava.util.Random r = new java.util.Random();
int num = r.nextInt(n); // n is the highest random number generated, also the size of the array
fuctionThatUsesPoint(myPolygon.xpoints[num], myPolygon.ypoints[num]);