Javascript Вороной указывает из полигонов - PullRequest
0 голосов
/ 20 октября 2018

Я использую R.Реализация Hill's Voronoi для создания полигонов с использованием массива точек:

sites=[{x:23, y:33},  {...}] 

, а также с использованием массива с размером холста:

box = {xl: 0, xr: 800, yt: 0, yb: 600}

Сгенерировано Vornoi с:

var diagram = voronoi.compute(sites, bbox);

Возвращаемая переменная Diagram - это объект Javascript со следующими свойствами:

diagram.edges, diagram.cells, diagram.vertices

Объект figure.cells содержит несколько ячеек, каждая из которых имеет 4 половинных ребра.Каждая половина имеет объекты lSite, rSite, va и vb, содержащие значения x и y.

Однако меня интересует получение массива точек (x, y), которые образуют каждый многоугольник на диаграмме Вороного иЯ понятия не имею, как это сделать.

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 20 октября 2018

Найдено: метод getStartpoint() можно применить ко всем объектам halfedges из объекта cell, чтобы получить массив точек, образующих многоугольник: например, для ячейки 0:

var cellpoints=[];
for(e=0; e<diagram.cells[0].halfedges.length; e++){
    cellpoints.push([diagram.cells[0].halfedges[e].getStartpoint().x, diagram.cells[0].halfedges[e].getStartpoint().y])
} 
...