БлогNot. Javascript: выводим центр масс точек на канве

Javascript: выводим центр масс точек на канве

В принципе, тут всё как в диаграмме Вороного, только выводятся текущие (округлённые до целых) координаты пикселей под курсором, клики накапливаются в массиве и текстовом поле ввода, а красная точка всегда означает "центр масс" текущего множества точек на плоскости (при условии, что веса всех точек одинаковы и равны единице :)

Документ опубликован как файл .html в кодировке Юникода UTF-8, исходник легко увидеть и поменять, открыв исходник страницы в браузере. Сляпан на скорую руку для иллюстрации конкретного вопроса, но зачем же стирать...

Если новая точка ближе к любой из существующих, чем пиксельное расстояние tooFit, она не добавляется в массив и выводится соответствующее сообщение. Сами точки чёрные, центр масс красный.

 Открыть центр тяжести точек на канве онлайн в новом окне/вкладке

1. Стоит напомнить, что для более стандартизованной работы с геоданными и координатами есть библиотека turf.js

2. Если у точек разные массы, центр масс считается в простейшем случае вот так:

totalmass = totalx = totaly = 0
for each point n {
    totalmass += n.mass
    totalx += n.x*n.mass
    totaly += n.y*n.mass
}
center = (totalx/totalmass,totaly/totalmass)


теги: javascript графика математика

14.04.2019, 14:10; рейтинг: 222