【发布时间】:2015-04-29 18:22:27
【问题描述】:
我需要生成随机多边形以用作我的游戏的小行星。我一直在尝试,试图弄清楚如何做到这一点,但我一直卡在寻找 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 我可以使用比率找到点的长度和宽度。但是有谁知道我应该使用哪些比率?还有,如何区分点在哪个象限?
【问题讨论】: