Closed
Description
Follow up of #76:
assuming voronoi(x0,xs)
as the function call, with x0
being the existing (measured) points and xs
being the query point:
- compute convex hull in 3D for
x0
resulting in a set of N trianglessimplices_old
, Nx3 - compute convex hull in 3D for
[x0;xs]
resulting in a set of N+1 trianglessimplices_new
, (N+1)x3 - extract all neighboring
x0
sharing a triangle withxs
insimplices_new
, denoted asx0'
- extract all triangles from
simplices_old
andsimplices_new
which have at least one ofx0'
as a
vertex, results are denoted assimplices_old'
andsimplices_new'
- compute spherical Voronoi regions for
x0'
usingsimplices_old'
and afterwards usingsimplices_new'
(taken from here)- add center of sphere to each triangle to create tetrahedrons
- calculate circumcentre of each tetrahedron, Nx3
- project circumcentre onto sphere to create the vertices of Voronoi-diagram (
xv
), Nx3 - build Voronoi regions for each
x0'
(all points inxv
which originate from a triangle/tetrahedron wherex0'
is a vertex belong to the Voronoi region ofx0'
)
- compute area of Voronoi regions for both diagrams (see here)
- compute weights for each
x0'
(stolen area/sum of stolen of area)