Как создать точечную карту, используя JS - PullRequest
0 голосов
/ 25 февраля 2020

Как мне создать точечную карту высокой плотности? Я возился с некоторыми базовыми c алгоритмами распределения точек вокруг прямоугольника, например:

 var createOrangeDots = function () {  
  for (var i = 0; i <=orangeNum; i++) {
    context.beginPath();
    var rand_x = Math.random(i) * horz_max;
    var rand_y = Math.random(i) * vertical_max;
    context.arc(rand_x, rand_y, radius, 1, 2*Math.PI);
    context.fillStyle ="orange";
    context.fill();
    context.closePath();
    }
  }

... что создает ... enter image description here У меня есть Также была помощь в поиске кода, который создает точки вокруг «цели»:

var createOrangeDotsCircle = function () {
  for (var i = 0; i <= orangeCircleNum; i++) {
    context.beginPath();
    const dist = (Math.random() ** centripetal) * distFromCenter;
    const angle = Math.random() * Math.PI * 2;
    var rand_x = dist * Math.cos(angle) + centerOrange.x;
    var rand_y = dist * Math.sin(angle) + centerOrange.y;
    context.arc(rand_x, rand_y, radius, 1, 2 * Math.PI);
    context.fillStyle ="orange";
    context.fill();
    context.closePath();
  }  
}
createOrangeDotsCircle();

... который производит ...

enter image description here

Но мне интересно, есть ли какой-нибудь код JS, который создает случайные формы точек с различной плотностью до такой степени, что он может фактически напоминать реальную карту сегрегации города? Примерно так:

enter image description here

... но с использованием только двух цветов и без фона карты (т.е. только точек).

Я знаю, что это сложно, так что просто ищите идеи / советы / указания здесь у более опытных программистов. Заранее благодарю за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...