Я работал над программой, использующей класс Java Robot
для перемещения мыши в случайное место, ограниченное областью пикселей. Как некоторые из вас знают, метод moveMouse
работает как moveMove(x,y)
, где x — количество пикселей по горизонтали, а y — количество пикселей по вертикали. Затем я бы вычислил генератор случайных чисел, используя math.random, чтобы программа щелкнула случайный пиксель в прямоугольной части моего экрана. эта строка будет выглядеть так (числа являются произвольными значениями)
robot.mouseMove(randomNum(350,400),randomNum(350,400)
Где он будет выбирать между пикселями 350-400 по оси x. и 350-400 в направлении y. Хотя проблема, с которой я сталкиваюсь, заключается в том, что в конечном итоге после нескольких сотен-1000 итераций точечная карта кликов выглядит... не такой уж случайной:
Поэтому я подумал, что решу эту проблему, добавив 2 массива, которые содержат значения пикселей для соответствующих значений x и y, которые я хочу, и добавлю взвешенный ГСЧ, повторяя номера пикселей, чтобы у него было больше шансов попасть в эти пиксели. Но я все равно получаю неестественно выглядящую точечную диаграмму. Вот мой код:
private static int[] items = new int[]
{/*insert x coord pixels*/ };
private static Random rand = new
Random();
public static int getRandArrayElement()
{
return
items[rand.nextInt(items.length)];
}
private static int[] items2 = new int[]
{/*insery y coord pixels*/};
private static Random rand2 = new
Random();
public static int
getRandArrayElement2(){
return
items2[rand2.nextInt(items2.length)];
}
robot.mouseMove(getRandArrayElement(),getRandArrayElement2());
robot.mousePress(button);
robot.delay(randomNum(11,32));
robot.mouseRelease(button);
robot.delay(randomNum(11,32));
Этот код по-прежнему имеет то же ограничение, что и последний, несмотря ни на что, моя точечная диаграмма по-прежнему будет напоминать какой-то прямоугольник. Есть ли способ составить список, в котором каждое значение имеет читаемое значение x AND y, чтобы я мог жестко кодировать взвешенный RNG, опуская определенные пиксели, чтобы я мог выбрать, на какую форму будет похожа диаграмма рассеяния? Я хотел бы, чтобы это выглядело примерно так:
Так что, если у кого-то есть полезная информация, которой он хотел бы поделиться, я внимательно слушаю. ваше здоровье. :)
createSampleData()
заполняетXYSeries
данными, имеющими распределение Гаусса в обоих измерениях; остальные примеры аналогичны. - person trashgod   schedule 11.12.2018