幻灯片 1 - Zhejiang University

Download Report

Transcript 幻灯片 1 - Zhejiang University

Voronoi diagram of 3D
spheres
Deok-Soo Kim
Reporter: 韩敬利
About author
Deok-Soo Kim
Department of Industrial
Engineering
Hanyang University
Voronoi diagram in 2D
Voronoi diagram of points
P  { p1 , p2 ,..., pn }
p1,

VR( pi )  { p | d ( p, pi )  d ( p, p j ), i  j}
VD( p)  {VR( p1 ), VR( p2 ),..., VR( pn )}
 Voronoi diagram of a circle set
C  {ci | i  1, 2,..., n}
ci  ( pi , ri )
VR (ci )  { p  R 2 | d ( p, pi )  ri  d ( p, p j )  rj , i  j}
Voronoi diagram in 3D

Voronoi diagram of points
P  { p1 , p2 ,..., pn }
VR( pi )  { p | d ( p, pi )  d ( p, p j ), i  j}

VD( p)  {VR( p1 ), VR( p2 ),..., VR( pn )}
Voronoi diagram of spheres
S  {si | i  1,2,..., n}
si  ( pi , ri )
VR( si )  { p  R | d ( p, pi )  ri  d ( p, p j )  rj , i  j}
3
Motivation
Have significant applications in various fields
For example
 The structural analysis of proteins or RNA
 Design of new materials
Previous Work



Luchnikov VA, Medvedev NN, Oger L,Troadec J-P.
Voronoi-Delaunay analyzis of voids in systems of
nonspherical particles. Phys Rev E
1999;59(6):7205–12.
Kim D-S, Cho Y, Kim D. Edge-tracing algorithm
for Euclidean Voronoi diagram of 3D spheres. In:
Proceedings of the 16th Canadian Conference on
Computational Geometry; 2004. p. 176–9.
Kim D-S, Cho Y, Kim D, Cho C-H. Protein
structure analysis using Euclidean Voronoi
diagram of atoms. In: Proceedings of the
International Workshop on Biometric
Technologies (BT2004); 2004. p. 125–9.
Some definitions
B  {b1 , b2 ,..., bn }


Empty sphere
No five balls are cotangent to an empty
sphere, so degree of a Voronoi vertex is
four
Euclidean Voronoi diagram of 3D balls
and its computation via tracing edges
CAD 37(2005)



Input
a set of ball, no ball is completely
contained inside another ball even though
intersections are allowed between balls
Output
Voronoi diagram
Purpose and strongpoint
an improved algorithm based on edgetracing algorithm
content
G=(V,E)
Voronoi vertices


The balls b1 , b2 , b3 , b4 denote a vertice
Transforming the four-ball so that b4
coincides with the origin
( x  x1 ) 2  ( y  y1 ) 2  ( z  z1 ) 2  (r  r1 ) 2
( x  x2 ) 2  ( y  y2 ) 2  ( z  z2 ) 2  (r  r2 ) 2
( x  x3 ) 2  ( y  y3 ) 2  ( z  z3 ) 2  ( r  r3 ) 2
x2  y 2  z 2  r 2
x1
x2
x3
y1
y2
y3
z1
z2
z3
r1
r2
r3
Voronoi edges
( x  x1 )  ( y  y1 )  ( z  z1 )  (r  r1 )
2
2
2
2
( x  x2 )  ( y  y2 )  ( z  z2 )  (r  r2 )
2
2
x y z r
2
2
2
2
2
2
x1 x  y1 y  z1 z  ( x  y  z  r ) / 2  r1r  0
2
1
2
1
2
1
2
1
x2 x  y2 y  z2 z  ( x2  y2  z2  r2 ) / 2  r2 r  0
2
x y z r
2
2
2
2
2
2
2
Voronoi edges
So a Voronoi edge is a planar conic
curve and can be exactly represented
in a form of a rational quadratic
Bezier curve
w0 (1  t ) p0  2w1 (1  t )tp1  w2t p2
 (t ) 
2
2
w0 (1  t )  2w1 (1  t )t  w2t
2
2
Topology construction by tracing
edges





A true Voronoi vertex v0
Push the four edges e0 , e1 , e2 and e3 into a
stack called an Edge-stack
Pop an edge from the stack, and
compute the end vertex of the edge
Push the three new edges emanating from
the compute point into stack
Iterated the process until the stack is empty
Previous algorithm
an edge e, three corresponding balls bg1 , bg 2 , bg 3
(gate balls), K  B \{bg1, bg 2 , bg 3} (candidate ball set)
s
Step 1. for bk  K
k
Step 1.1. compute
a tangent sphere
s
k
sk
from bk
and three gate balls
Step 1.2. for bl  K \{bk } ,
Step 1.2.1. if
End-for
sk
intersects
bl then GOTO Step1.
Previous algorithm
Step 1.3.queue s k into Q
End-for
Step 2. if Q if empty, the end vertex is infinity.
Step 3. else, find S in Q closest to the start
vertex, and use the center of S an the end
vertex of the current edge.
Improved algorithm
Before definition
bg1 , bg 2 , bg 3 are the
gate balls of edge e,
let bg1 be the smallest, v s
is an end point of e
  vs cg1 p
cg1 is the center of bg1
Improved algorithm
i   j
si intersect ball
bj , so considered vej as
a candidate for the end vertex of the edge
Improved algorithm
i   j
So we can simply ignore bj from
further consideration
Improved algorithm
i   j
Consider
of vei
vej
for candidate end vertex instead
Improved algorithm
So we just find the smallest
The smallest is the closet

Improved algorithm
Step 1.Compute a tangent sphere s1 from three
gate balls and b1 in the candidate ball set K.
s1 .
Step 2. s
Step 3.for bk  K \{b1} ,
step 3.1Compute a tangent sphere s k from
three gate balls and bk
step 3.2 if s k is closer to the start vertex then s,
sk
then s
Step 4. Use the center of s as the end vertex of
current edge
Compare


Previous algorithm
2
takes O(n ) time in the worst-case
Improves algorithm
takes O ( n) time in the worst-case
Region-expansion for the voronoi
diagram of 3D spheres
CAD 38(2006)



Input
a set of ball, no ball is completely contained
inside another ball even though intersections
are allowed between balls
Output
Voronoi diagram
Purpose and strongpoint
an excellent algorithm takes O(n3 ) time
Basic method



Compute the Voronoi diagram for the
centers of spheres
Expanding the spheres one by one, and
adjust the Voronoi diagram
simultaneously
Get the complete Voronoi diagram
Basic method
Problem
Event : topology change
When a region is expanding, the upcoming
event occurs at vertices or edges on the
radiating-faces
the key: solve the event
Definition
Voronoi vertex
 Von : the Voronoi vertices on the boundary of an
expanding region
 Voff : the other Voronoi vertices
Voronoi edge
 Eon : the Voronoi edges on the expanding region
 Eoff : the edges which have no on-vertex
 Erad : the other Voronoi edges radiating-edges
Definition
Voronoi face

Fon

Foff

Frad
Event
Three edge state
 An Von meets an V
off
 An Von meets another V
on
 An Eon meets an Eoff
For event
end-out state
mid-out state
One-end-event Mid-event
Two-end-event
end-out state
mid-out state
split state
split state
Split-event
Three-end event ?
Such a situation is impossible.
The voronoi region corresponding to three
edges disappears when the edges
disappear, but this cannot be realized.
One-end-event
Two-end-event
Mid-event
Split-event
Detection of event
Event
Edge state
How to identify the states of edges
How to detect the corresponding events
from states
Identify the states of edges
Edge state
vertex state
Identify the states of edges
Vertex state
 the edge starts to shrink from the vertex, We
assign a ‘+’ state to the vertex .
 the edge disappears at the vertex, We assign a ‘−’
state to the vertex
Vertex state
edge e
three gate balls sl , s j , sk
sl , s j , sk , sl defining v incident to e
a vertex sphere S (v) corresponds to v
fixed tangent points
reference tangent point
touch point
H (e, v)
H  (e, v)
Vertex state
Expanding
generator
Expanding
generator
Identify the states of edges





end-out state : e has both ‘+’and ‘-’ vertex
state
mid-out state : e has two ‘+’ vertex state
split state
e has both ‘+’ and ‘-’ vertex state
e has no vertex
Exceptional case
The edge e has no vertex
Event time
When the event takes place during the regionexpanding process ?
Event time
the radius of an expanding
generator when an event occurs.
In the algorithm, events are ordered and handled
according to their event time.
Algorithm
1. Find all the edges bounding radiating-faces and
insert them into a set E.
2. For each edge er  E \ Eon ,determine its event
time t and state. If t< ri, insert er into the event
queue Q Which implements a priority queue.
3. Pop an edge eq from Q and determine the
Corresponding event. If eq has end-out state,
check if eq causes one-end-event or two-endevent by watching the next edges in Q with the
same event time.
algorithm
4. Perform an appropriate action for the
detected event. After treatment, find new
edges bounding new radiating-faces and
insert them into a set Enew . Perform Step 2
for all edges in the edge set Enew .
5. Repeat Steps 3 and 4 until Q is empty.
Experiment
Voronoi diagram for a protein data
consisting of 63 atoms
Compare
Conclusion
In this paper, we present a region-expansion
algorithm for constructing a Voronoi diagram for
spheres by handling events from the ordinary
Voronoi diagram for the centers of the spheres.
The algorithm can compute the whole Voronoi
diagram in O(n3) time in the worst-case where n is
the number of spheres.
Future work


The order of expanding spheres in the
region-expansion process may influence
the amount of computation.
Acceleration and robustness.