Reload
Voronoi
diagrams
(Automatic
version)
OrdinaryMultiplicatively Weighted
/Area
Additively W
/Area
PW(additively Weighted Power)Compoundly WLW(L_{weight} norm)
Higher-order HMWHAWHPWHCWHLW
EllipticManhattanSupremumKarlsruheFarthest-point
HEllipticHManhattan
Farthest-Point Manhattan
HSupremumHKarlsruheHigher-order Farthest-point
line-segmentline-segments sometimes cross each otherline-segments need to cross each otherlargest empty circle in a polygon
Higher order line-segmentHigher order line-segment
(segnebts sometimes cross each other)
Higher order line-segment
(segments need to cross each other)
Area of Voronoi Region
/MW Area
/AW Area
Delaunay Tessellationorder-2 DelaunayOrder-3 DelaunayFarthest Delaunay
Delaunay
some edges deleted
--Extended Voronoi Edges--
Voronoi area game
for two
for threefor fourfor fivefor six-
Voronoi
diagrams
(Click
version)
Ordinary-Largest Empty circle in a polygon
Higher-order
-ManhattanSupremumKarlsruheFarthest-point
HManhattan
Farthest-Point Manhattan
HSupremumHKarlsruhe
Area of Voronoi RegionDelaunay Tessellationorder-2 DelaunayOrder-3 DelaunayFarthest Delaunay
Voronoi area game
for two
for threefor fourfor fivefor six-
CW, LW and Karlsruhe are very heavy.
Screensaver for Win 95,98

Multiplicatively weighted Voronoi diagram(Open 5/Sep/2000 : The 4th Revision Wednesday, 30-Jun-2010 23:04:07 JST)


Multiplicatively weighted Voronoi diagram is drawn by using distance function d(p,p(i))
d(p,p(i))=dis(p,p(i))/w(i)
where dis is Euclidean distance and w(i) is the weight of p(i).
An edge are generally circular arc.

Algorithm
Multiplicatively weighted Voronoi diagram
Sort generators such that w[1]<w[2]<...<w{N]
i=1,...,N-1
    j=i+1,...,N
        Consider a bisector of p(i) and p(j) Apporonius' circle; they mean that points are the rate of distance from i and distance from j is same.
        for x=left edge of circle to right edge of circle
            compute y for x, upper arc of the circle
            compute d from (x,y) to i
            set cnt=0
            k=1,...,N except for i and j
                compute d_k from (x,y) to k
                if d_k<d then cnt=1 and break
            next k
            if cnt=0 then plot (x,y)
            compute y for x, lower arc of the circle
            compute d from (x,y) to i
            set cnt=0
            k=1,...,N except for i and j
                compute d_k from (x,y) to k
                if d_k<d then cnt=1 and break
            next k
            if cnt=0 then plot (x,y)
        next x
        for y=bottom of circle to top of circle
            same logic of x
        next y
    next j
next i



Ordinary Voronoi diagram
i=1,...,N-1
    j=i+1,...,N
        Consider a bisector of p(i) and p(j)
        k=1,...,N except for i and j
            Consider a bisector of p(i) and p(k)
            Calculate the points of intersection of bisector(i,j) and bisector(i,k)
        next k
        Add the points x=0 and x=(the width of screen) of the bisector (i,j) into the points of intersections
        Sort the points of intersections in terms of x coordinates
        k=1,...,the number of intervals of the points of intersections
            Let c be a midpoint of the interval of the points of intersection.
            Let d be d(c,p(i))
            h=1,...,N except for i and j
                Let d' be d(c,p(h))
                If d'<d then shout (Out!)
            next h
            If we did not shout, then draw the interval of the points of intersection
         next k
    next j
next i

Java(mwvoro.java)
VB code(voromwexe.lzh)

If you have a message, don't hesitate to send it by using
E-mail:Mail Form
or
BBS

Use of Takashi Ohyama's website
English Home of Takashi Ohyama
Japanese Home of Takashi Ohyama