我需要生成随机多边形作为我游戏的小行星。我一直在试验,试图弄清楚如何做到这一点,但我一直在寻找x和y位置。
首先,我为多边形的每个点创建一个角度和一个长度。长度取决于小行星随机生成的大小。
asteroidData = new double[10][2];
for (int i = 0; i < asteroidData.length; i++) {
//angle
asteroidData[i][0] = Math.random()*2*Math.PI;
//length
asteroidData[i][1] = sze + Math.random()*sze/2;
}
然后因为g.fillPolygon要求根据角度对点进行排序我做了这个..
Arrays.sort(asteroidData, new Comparator<double[]>() {
@Override
public int compare(final double[] entry1, final double[] entry2) {
if (entry1[0] == entry2[0])
return 0;
if (entry1[0] > entry2[0])
return 1;
return -1;
}
});
我只是在创造最终点本身的数学上有点损失/找出点的坐标。任何帮助将不胜感激。
编辑:好的我已经想了一点,使用trig我可以使用比率找到点的长度和宽度。但有谁知道我应该使用哪些比率?同样,如何区分该点的哪个象限?