Совет Java moveMouse RNG с моей программой

Я работал над программой, использующей класс 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, опуская определенные пиксели, чтобы я мог выбрать, на какую форму будет похожа диаграмма рассеяния? Я хотел бы, чтобы это выглядело примерно так:

Более случайный график кликов

Так что, если у кого-то есть полезная информация, которой он хотел бы поделиться, я внимательно слушаю. ваше здоровье. :)


person old school    schedule 09.12.2018    source источник
comment
Некоторые примеры использования случайных данных с jfreechart видны здесь.   -  person trashgod    schedule 09.12.2018
comment
Что такое jfreechart? как вы думаете, это будет применимо к этому?   -  person old school    schedule 09.12.2018
comment
Я не знаю о вашем варианте использования; это удобный способ поэкспериментировать с различными дистрибутивами.   -  person trashgod    schedule 09.12.2018
comment
Оба эти предложения хороши, но я хотел бы составить один список, содержащий числа, из которых может браться функция mouseMove(x,y). например, если бы у меня был блок пикселей 4x4 и я заполнил массив [1,2,3,4....16], функция mouseMove может взять одну из этих точек и знать, что нужно перейти к этому единственному пикселю. .   -  person old school    schedule 10.12.2018
comment
В этом примере createSampleData() заполняет XYSeries данными, имеющими распределение Гаусса в обоих измерениях; остальные примеры аналогичны.   -  person trashgod    schedule 11.12.2018
comment
Спасибо за это, но есть ли способ, которым я могу это сделать, но чтобы он действительно щелкал мой экран таким образом, а не заполнял диаграмму?   -  person old school    schedule 11.12.2018
comment
Вы можете заполнить свой массив(ы) аналогичным образом.   -  person trashgod    schedule 11.12.2018