SlideShare a Scribd company logo
1 of 44
Download to read offline
Convex hull algorithms in 3D
Slides by: Roger Hernando
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Outline
1 Introduction
2 Complexity
3 Gift wrapping
4 Divide and conquer
5 Incremental algorithm
6 References
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Problem statement
Given P: set of n points in 3D.
Convex hull of P: CH(P), the
smallest polyhedron s.t. all
elements of P on or in the interior
of CH(P).
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Visibility test
A point is visible from a face?
The point is above or below the supporting plane of the face.
The volume of the tetrahedron is positive or negative.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Complexity of the 3D Convex Hull
Euler’s theorem:
V − E + F = 2
Triangle mesh 3F = 2E:
V − E +
2E
3
= 2 ⇒ E = 3V − 6
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Complexity of the Convex Hull
Given a set S of n points in Rn what is maximum #edges on
CH(S)?
Bernard Chazelle [1990]: CH of n points in Rd in optimal
worst-case is O n log n + n
d
2 . Bound by Seidel[1981].
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Direct extension of the 2D
algorithm.
Algorithm complexity
O(nF).
F = #convexhullfaces.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Ensure: H = Convex hull of point-set P
Require: point-set P
H = ∅
(p1, p2) = HullEdge(P)
Q = {(p1, p2)}
while Q = ∅ do
(p1, p2) = Q.pop()
if notProcessed((p1, p2)) then
p3 = triangleVertexWithAllPointsToTheLeft(p1, p2)
H = H ∪ {(p1, p2, p3)}
Q = Q ∪ {(p2, p3), (p3, p1)}
markProcessedEdge((p1, p2))
end if
end while
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Gift wrapping
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Divide and conquer
The same idea of the 2d algorithm.
1 Split the point-set P in two sets.
2 Recursively split, construct CH, and merge.
Merge takes O(n) ⇒ Algorithm complexity O(n log n).
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Divide and conquer
Ensure: Convex hull of point-set P
Require: point-set P(sorted by certain coord)
function divideAndConquer(P)
if |P| ≤ x then
return incremental(P)
end if
(P1, P2) = split(P)
H1 = divideAndConquer(P1)
H2 = divideAndConquer(P2)
return merge(H1, H2)
end function
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge
Determine a supporting line of the convex hulls, projecting the
hulls and using the 2D algorithm.
Use wrapping algorithm to create the additional faces in order
to construct a cylinder of triangles connecting the hulls.
Remove the hidden faces hidden by the wrapped band.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge in detail
1 Obtain a common tangent(AB) which can be computed just
as in the two-dimensional case.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge in detail
2 We next need to find a triangle ABC whose vertex C must
belong to either the left hull or the right hull. Consequently,
either AC is an edge of the left hull or BC is an edge of the
right hull.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge in detail
3 Now we have a new edge AC that joins the left hull and the
right hull. We can find triangle ACD just as we did ABC.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge in detail
3 The process stops when we reach again the edge AB.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge in detail
Merge can be performed in linear time O(n), because the circular
order that follow vertex on intersection of new convex hull edges,
with a separating plane H0.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge
The curves bounding the two convex hulls do not have to be
simple.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge I
Ensure: C is the convex hull of H1, H2
Require: Convex hulls H1, H2
function merge(H1, H2)
C = H1 ∪ H2
e(p1, p2) = supportingLine(H1, H2)
L = e
repeat
p3 = giftWrapAroundEdge(e)
if p3 ∈ H1 then
e = (p2, p3)
else
e = (p1, p3)
end if
C = C ∪ {(p1, p2, p3)}
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Merge II
until e = L
discardHiddenFaces(C)
end function
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
1 Create tetrahedron(initial CH).
pick 2 points p1 and p2.
pick a point not lying on the line p1p2.
pick a point not lying on the plane p1p2p3(if not found use a
2D algorithm).
2 Randomize the remaining points P.
3 For each pi ∈ P, add pi into the CHi−1
if pi lies inside or on the boundary of CHi−1 then do nothing.
if pi lies outside of CHi−1 insert pi .
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Ensure: C Convex hull of point-set P
Require: point-set P
C = findInitialTetrahedron(P)
P = P − C
for all p ∈ P do
if p outside C then
F = visbleFaces(C, p)
C = C − F
C = connectBoundaryToPoint(C, p)
end if
end for
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Find visible region
Naive:
Test every face for each point O(n2
).
Conflict graph:
Maintain information to aid in determining visible facets from
a point.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Conflict graph
Relates unprocessed points with facets of CH they can see.
Bipartite graph.
pt unprocessed points.
f faces of the convex hull.
conflict arcs, point pi sees fj .
Maintain sets:
Pconflict(f ), points that can see f .
Fconflict(p), faces visible from p(visible
region deleted after insertion of p).
At any step of the algorithm, we know all
conflicts between the remaining points and
facets on the current CH.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Initialize Conflict graph
Initialize the conflict graph G with CH(P4) in linear time.
Loop through all points to determine the conflicts.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Update Conflict graph
1 Discard visible facets from p by removing neighbors of p ∈ G.
2 Remove p from G.
3 Determine new conflicts.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Determine new conflicts
Check if Pconflict(f2) is in conflict with f .
Check if Pconflict(f1) is in conflict with f .
If pr is coplanar with f1, f has the same conflicts as f1.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm I
Ensure: C Convex hull of point-set P
Require: point-set P
C = findInitialTetrahedron(P)
initializeConflictGraph(P, C)
P = P − C
for all p ∈ P do
if Fconflict(p) = ∅ then
delete(Fconflict(p), C)
L = borderEdges(C)
for all e ∈ L do
f = createNewTriangularFace(e, p)
f = neighbourFace(e)
addFaceToG(f )
if areCoplanar(f , f ) then
Pconflict(f ) = Pconflict(f )
else
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm II
P(e) = Pcoflict(f1) ∪ Pcoflict(f2)
for all p ∈ P(e) do
if isVisble(f , p) then
addConflict(p, f )
end if
end for
end if
end for
end if
end for
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Analysis
We want to bound the total number of facets created/deleted by
the algorithm.
#faces
4 + n
r=5 E|deg(pr , CH(Pr ))| ≤ 4 + 6(n − 4) = 6n − 20 = O(n)
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Analysis
We want to bound the total number of Points which can see
horizon edges at any stage of the algorithm( e card(P(e))).
Define:
Set of active configurations τ(S).
A flap ∆ = (p, q, s, t).
∆ ∈ τ(S)all edges in the flap are edges of the CH(S).
Set K(∆) points which have the flap ∆ as horizon edge.
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Analysis
We want to bound the total number of Points which can see
horizon edges at any stage of the algorithm( e card(P(e))).
e card(P(e)) ≤ ∆ card(K(∆)) ≤ n
r=1 16 n−r
r
6r−12
r ≤
≤ 96n ln n = O(n log n)
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
Incremental algorithm
Slides by: Roger Hernando Convex hull algorithms in 3D
Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References
References I
Applet:
http://www.cse.unsw.edu.au/ lambert/java/3d/hull.htm
M. de Berg, O. Cheong, M. van Kreveld, M. Overmars,
Computational Geometry Algorithms and Applications
J. O’Rourke,Computational Geometry in C
Partha P. Goswami, Introduction to Computational Geometry
David M. Mount, Lecture notes.
Bernard Chazelle, An optimal convex hull algorith in any fixed
dimension
Alexander Wolf, Slides
Jason C. Yang, Slides
Peter Felkel, Slides
Slides by: Roger Hernando Convex hull algorithms in 3D

More Related Content

What's hot

Admission in india
Admission  in indiaAdmission  in india
Admission in indiaEdhole.com
 
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...Amrinder Arora
 
Approximation algorithms
Approximation algorithmsApproximation algorithms
Approximation algorithmsGanesh Solanke
 
Tensor Train data format for uncertainty quantification
Tensor Train data format for uncertainty quantificationTensor Train data format for uncertainty quantification
Tensor Train data format for uncertainty quantificationAlexander Litvinenko
 
top school in india
top school in indiatop school in india
top school in indiaEdhole.com
 
Weight enumerators of block codes and the mc williams
Weight  enumerators of block codes and  the mc williamsWeight  enumerators of block codes and  the mc williams
Weight enumerators of block codes and the mc williamsMadhumita Tamhane
 
High-dimensional polytopes defined by oracles: algorithms, computations and a...
High-dimensional polytopes defined by oracles: algorithms, computations and a...High-dimensional polytopes defined by oracles: algorithms, computations and a...
High-dimensional polytopes defined by oracles: algorithms, computations and a...Vissarion Fisikopoulos
 
Some topics in analysis of boolean functions
Some topics in analysis of boolean functionsSome topics in analysis of boolean functions
Some topics in analysis of boolean functionsguest756c74
 
Dynamic Programming - Part 1
Dynamic Programming - Part 1Dynamic Programming - Part 1
Dynamic Programming - Part 1Amrinder Arora
 
Linear programming in computational geometry
Linear programming in computational geometryLinear programming in computational geometry
Linear programming in computational geometryhsubhashis
 
20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilers20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilersComputer Science Club
 
Transportation and assignment_problem
Transportation and assignment_problemTransportation and assignment_problem
Transportation and assignment_problemAnkit Katiyar
 
Cs2303 theory of computation may june 2016
Cs2303 theory of computation may june 2016Cs2303 theory of computation may june 2016
Cs2303 theory of computation may june 2016appasami
 
Model Checking Base on Interoplation
Model Checking Base onInteroplationModel Checking Base onInteroplation
Model Checking Base on Interoplationleticia2307
 

What's hot (20)

Admission in india
Admission  in indiaAdmission  in india
Admission in india
 
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
 
Approximation
ApproximationApproximation
Approximation
 
Approximation algorithms
Approximation algorithmsApproximation algorithms
Approximation algorithms
 
Tensor Train data format for uncertainty quantification
Tensor Train data format for uncertainty quantificationTensor Train data format for uncertainty quantification
Tensor Train data format for uncertainty quantification
 
top school in india
top school in indiatop school in india
top school in india
 
NP-Completeness - II
NP-Completeness - IINP-Completeness - II
NP-Completeness - II
 
Weight enumerators of block codes and the mc williams
Weight  enumerators of block codes and  the mc williamsWeight  enumerators of block codes and  the mc williams
Weight enumerators of block codes and the mc williams
 
High-dimensional polytopes defined by oracles: algorithms, computations and a...
High-dimensional polytopes defined by oracles: algorithms, computations and a...High-dimensional polytopes defined by oracles: algorithms, computations and a...
High-dimensional polytopes defined by oracles: algorithms, computations and a...
 
Some topics in analysis of boolean functions
Some topics in analysis of boolean functionsSome topics in analysis of boolean functions
Some topics in analysis of boolean functions
 
20320140501020
2032014050102020320140501020
20320140501020
 
Dynamic Programming - Part 1
Dynamic Programming - Part 1Dynamic Programming - Part 1
Dynamic Programming - Part 1
 
Linear programming in computational geometry
Linear programming in computational geometryLinear programming in computational geometry
Linear programming in computational geometry
 
20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilers20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilers
 
Transportation and assignment_problem
Transportation and assignment_problemTransportation and assignment_problem
Transportation and assignment_problem
 
5th Semester Electronic and Communication Engineering (2013-June) Question Pa...
5th Semester Electronic and Communication Engineering (2013-June) Question Pa...5th Semester Electronic and Communication Engineering (2013-June) Question Pa...
5th Semester Electronic and Communication Engineering (2013-June) Question Pa...
 
5th Semester Electronic and Communication Engineering (June/July-2015) Questi...
5th Semester Electronic and Communication Engineering (June/July-2015) Questi...5th Semester Electronic and Communication Engineering (June/July-2015) Questi...
5th Semester Electronic and Communication Engineering (June/July-2015) Questi...
 
Cs2303 theory of computation may june 2016
Cs2303 theory of computation may june 2016Cs2303 theory of computation may june 2016
Cs2303 theory of computation may june 2016
 
smtlecture.5
smtlecture.5smtlecture.5
smtlecture.5
 
Model Checking Base on Interoplation
Model Checking Base onInteroplationModel Checking Base onInteroplation
Model Checking Base on Interoplation
 

Viewers also liked

Twobros stepbystep
Twobros stepbystepTwobros stepbystep
Twobros stepbystepJenniferEse
 
Fast Mesh-Based Medical Image Registration
Fast Mesh-Based Medical Image RegistrationFast Mesh-Based Medical Image Registration
Fast Mesh-Based Medical Image RegistrationAhmadreza Baghaie
 
Delaunay triangulation from 2-d delaunay to 3-d delaunay
Delaunay triangulation   from 2-d delaunay to 3-d delaunayDelaunay triangulation   from 2-d delaunay to 3-d delaunay
Delaunay triangulation from 2-d delaunay to 3-d delaunaygreentask
 
VISION AND PERCEPTION (English)
VISION AND PERCEPTION (English)VISION AND PERCEPTION (English)
VISION AND PERCEPTION (English)Rosa Fernández
 
An Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of PointsAn Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of PointsKasun Ranga Wijeweera
 
Ribs and Fans of Bezier Curves and Surfaces with Applications
Ribs and Fans of Bezier Curves and Surfaces with ApplicationsRibs and Fans of Bezier Curves and Surfaces with Applications
Ribs and Fans of Bezier Curves and Surfaces with ApplicationsJoo-Haeng Lee
 
How to do 3 d anamorphic artwork and sidewalk
How to do 3 d anamorphic artwork and sidewalkHow to do 3 d anamorphic artwork and sidewalk
How to do 3 d anamorphic artwork and sidewalkRhoell Bandong
 
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay TriangulationsA New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay TriangulationsDon Sheehy
 
Sonia Delaunay
Sonia Delaunay Sonia Delaunay
Sonia Delaunay nivaca2
 
Brainstorming of Hospitality design
Brainstorming of Hospitality designBrainstorming of Hospitality design
Brainstorming of Hospitality designNeenu Sara Abraham
 
3 point perspective letters
3 point perspective letters3 point perspective letters
3 point perspective lettersrangcapan
 
CS 354 Bezier Curves
CS 354 Bezier Curves CS 354 Bezier Curves
CS 354 Bezier Curves Mark Kilgard
 
The artisan a_sustainable_entrepreneur_1
The artisan a_sustainable_entrepreneur_1The artisan a_sustainable_entrepreneur_1
The artisan a_sustainable_entrepreneur_1Ralph Cassar
 
Image pre processing
Image pre processingImage pre processing
Image pre processingAshish Kumar
 
One and Two- Point Perspective
One and Two- Point PerspectiveOne and Two- Point Perspective
One and Two- Point PerspectiveEmily Valenza
 
Linear Perspective
Linear PerspectiveLinear Perspective
Linear Perspectivemrsbauerart
 
Image Processing Basics
Image Processing BasicsImage Processing Basics
Image Processing BasicsNam Le
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image ProcessingSahil Biswas
 

Viewers also liked (20)

Twobros stepbystep
Twobros stepbystepTwobros stepbystep
Twobros stepbystep
 
Image Manipulation
Image ManipulationImage Manipulation
Image Manipulation
 
Fast Mesh-Based Medical Image Registration
Fast Mesh-Based Medical Image RegistrationFast Mesh-Based Medical Image Registration
Fast Mesh-Based Medical Image Registration
 
Delaunay triangulation from 2-d delaunay to 3-d delaunay
Delaunay triangulation   from 2-d delaunay to 3-d delaunayDelaunay triangulation   from 2-d delaunay to 3-d delaunay
Delaunay triangulation from 2-d delaunay to 3-d delaunay
 
VISION AND PERCEPTION (English)
VISION AND PERCEPTION (English)VISION AND PERCEPTION (English)
VISION AND PERCEPTION (English)
 
An Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of PointsAn Efficient Convex Hull Algorithm for a Planer Set of Points
An Efficient Convex Hull Algorithm for a Planer Set of Points
 
Ribs and Fans of Bezier Curves and Surfaces with Applications
Ribs and Fans of Bezier Curves and Surfaces with ApplicationsRibs and Fans of Bezier Curves and Surfaces with Applications
Ribs and Fans of Bezier Curves and Surfaces with Applications
 
How to do 3 d anamorphic artwork and sidewalk
How to do 3 d anamorphic artwork and sidewalkHow to do 3 d anamorphic artwork and sidewalk
How to do 3 d anamorphic artwork and sidewalk
 
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay TriangulationsA New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay Triangulations
 
Sonia Delaunay
Sonia Delaunay Sonia Delaunay
Sonia Delaunay
 
Brainstorming of Hospitality design
Brainstorming of Hospitality designBrainstorming of Hospitality design
Brainstorming of Hospitality design
 
3 point perspective letters
3 point perspective letters3 point perspective letters
3 point perspective letters
 
CS 354 Bezier Curves
CS 354 Bezier Curves CS 354 Bezier Curves
CS 354 Bezier Curves
 
The artisan a_sustainable_entrepreneur_1
The artisan a_sustainable_entrepreneur_1The artisan a_sustainable_entrepreneur_1
The artisan a_sustainable_entrepreneur_1
 
Image pre processing
Image pre processingImage pre processing
Image pre processing
 
One and Two- Point Perspective
One and Two- Point PerspectiveOne and Two- Point Perspective
One and Two- Point Perspective
 
Perspective ppt
Perspective pptPerspective ppt
Perspective ppt
 
Linear Perspective
Linear PerspectiveLinear Perspective
Linear Perspective
 
Image Processing Basics
Image Processing BasicsImage Processing Basics
Image Processing Basics
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 

Similar to Convex hull in 3D

Clipping in Computer Graphics
Clipping in Computer Graphics Clipping in Computer Graphics
Clipping in Computer Graphics Barani Tharan
 
Mba admission in india
Mba admission in indiaMba admission in india
Mba admission in indiaEdhole.com
 
Quaternionic Modular Symbols in Sage
Quaternionic Modular Symbols in SageQuaternionic Modular Symbols in Sage
Quaternionic Modular Symbols in Sagemmasdeu
 
Efficient HPR-based Rendering of Point Clouds
Efficient HPR-based Rendering of Point CloudsEfficient HPR-based Rendering of Point Clouds
Efficient HPR-based Rendering of Point CloudsRoger Hernando Buch
 
Informed Search.pptx
Informed Search.pptxInformed Search.pptx
Informed Search.pptxMohanKumarP34
 
A Tutorial on Computational Geometry
A Tutorial on Computational GeometryA Tutorial on Computational Geometry
A Tutorial on Computational GeometryMinh-Tri Pham
 
An algorithm for computing resultant polytopes
An algorithm for computing resultant polytopesAn algorithm for computing resultant polytopes
An algorithm for computing resultant polytopesVissarion Fisikopoulos
 
lecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdflecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdfAnaNeacsu5
 
Data sparse approximation of the Karhunen-Loeve expansion
Data sparse approximation of the Karhunen-Loeve expansionData sparse approximation of the Karhunen-Loeve expansion
Data sparse approximation of the Karhunen-Loeve expansionAlexander Litvinenko
 
Data sparse approximation of Karhunen-Loeve Expansion
Data sparse approximation of Karhunen-Loeve ExpansionData sparse approximation of Karhunen-Loeve Expansion
Data sparse approximation of Karhunen-Loeve ExpansionAlexander Litvinenko
 
Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Deepak John
 
Computational Information Geometry: A quick review (ICMS)
Computational Information Geometry: A quick review (ICMS)Computational Information Geometry: A quick review (ICMS)
Computational Information Geometry: A quick review (ICMS)Frank Nielsen
 
Overlap Layout Consensus assembly
Overlap Layout Consensus assemblyOverlap Layout Consensus assembly
Overlap Layout Consensus assemblyZhuyi Xue
 
Day 2 review with sat
Day 2 review with satDay 2 review with sat
Day 2 review with satjbianco9910
 

Similar to Convex hull in 3D (20)

Clipping in Computer Graphics
Clipping in Computer Graphics Clipping in Computer Graphics
Clipping in Computer Graphics
 
Mba admission in india
Mba admission in indiaMba admission in india
Mba admission in india
 
Week6.ppt
Week6.pptWeek6.ppt
Week6.ppt
 
Quaternionic Modular Symbols in Sage
Quaternionic Modular Symbols in SageQuaternionic Modular Symbols in Sage
Quaternionic Modular Symbols in Sage
 
Efficient HPR-based Rendering of Point Clouds
Efficient HPR-based Rendering of Point CloudsEfficient HPR-based Rendering of Point Clouds
Efficient HPR-based Rendering of Point Clouds
 
Informed Search.pptx
Informed Search.pptxInformed Search.pptx
Informed Search.pptx
 
A Tutorial on Computational Geometry
A Tutorial on Computational GeometryA Tutorial on Computational Geometry
A Tutorial on Computational Geometry
 
Drawing Tools
Drawing ToolsDrawing Tools
Drawing Tools
 
An algorithm for computing resultant polytopes
An algorithm for computing resultant polytopesAn algorithm for computing resultant polytopes
An algorithm for computing resultant polytopes
 
lecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdflecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdf
 
C2.0 propositional logic
C2.0 propositional logicC2.0 propositional logic
C2.0 propositional logic
 
Data sparse approximation of the Karhunen-Loeve expansion
Data sparse approximation of the Karhunen-Loeve expansionData sparse approximation of the Karhunen-Loeve expansion
Data sparse approximation of the Karhunen-Loeve expansion
 
Slides
SlidesSlides
Slides
 
Data sparse approximation of Karhunen-Loeve Expansion
Data sparse approximation of Karhunen-Loeve ExpansionData sparse approximation of Karhunen-Loeve Expansion
Data sparse approximation of Karhunen-Loeve Expansion
 
Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1
 
ME Reference.pdf
ME Reference.pdfME Reference.pdf
ME Reference.pdf
 
Computational Information Geometry: A quick review (ICMS)
Computational Information Geometry: A quick review (ICMS)Computational Information Geometry: A quick review (ICMS)
Computational Information Geometry: A quick review (ICMS)
 
lecture8 clipping
lecture8 clippinglecture8 clipping
lecture8 clipping
 
Overlap Layout Consensus assembly
Overlap Layout Consensus assemblyOverlap Layout Consensus assembly
Overlap Layout Consensus assembly
 
Day 2 review with sat
Day 2 review with satDay 2 review with sat
Day 2 review with sat
 

Recently uploaded

(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 

Recently uploaded (20)

Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 

Convex hull in 3D

  • 1. Convex hull algorithms in 3D Slides by: Roger Hernando
  • 2. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Outline 1 Introduction 2 Complexity 3 Gift wrapping 4 Divide and conquer 5 Incremental algorithm 6 References Slides by: Roger Hernando Convex hull algorithms in 3D
  • 3. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Problem statement Given P: set of n points in 3D. Convex hull of P: CH(P), the smallest polyhedron s.t. all elements of P on or in the interior of CH(P). Slides by: Roger Hernando Convex hull algorithms in 3D
  • 4. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Visibility test A point is visible from a face? The point is above or below the supporting plane of the face. The volume of the tetrahedron is positive or negative. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 5. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Complexity of the 3D Convex Hull Euler’s theorem: V − E + F = 2 Triangle mesh 3F = 2E: V − E + 2E 3 = 2 ⇒ E = 3V − 6 Slides by: Roger Hernando Convex hull algorithms in 3D
  • 6. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Complexity of the Convex Hull Given a set S of n points in Rn what is maximum #edges on CH(S)? Bernard Chazelle [1990]: CH of n points in Rd in optimal worst-case is O n log n + n d 2 . Bound by Seidel[1981]. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 7. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Direct extension of the 2D algorithm. Algorithm complexity O(nF). F = #convexhullfaces. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 8. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Ensure: H = Convex hull of point-set P Require: point-set P H = ∅ (p1, p2) = HullEdge(P) Q = {(p1, p2)} while Q = ∅ do (p1, p2) = Q.pop() if notProcessed((p1, p2)) then p3 = triangleVertexWithAllPointsToTheLeft(p1, p2) H = H ∪ {(p1, p2, p3)} Q = Q ∪ {(p2, p3), (p3, p1)} markProcessedEdge((p1, p2)) end if end while Slides by: Roger Hernando Convex hull algorithms in 3D
  • 9. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Slides by: Roger Hernando Convex hull algorithms in 3D
  • 10. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Slides by: Roger Hernando Convex hull algorithms in 3D
  • 11. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Slides by: Roger Hernando Convex hull algorithms in 3D
  • 12. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Slides by: Roger Hernando Convex hull algorithms in 3D
  • 13. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Slides by: Roger Hernando Convex hull algorithms in 3D
  • 14. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Gift wrapping Slides by: Roger Hernando Convex hull algorithms in 3D
  • 15. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Divide and conquer The same idea of the 2d algorithm. 1 Split the point-set P in two sets. 2 Recursively split, construct CH, and merge. Merge takes O(n) ⇒ Algorithm complexity O(n log n). Slides by: Roger Hernando Convex hull algorithms in 3D
  • 16. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Divide and conquer Ensure: Convex hull of point-set P Require: point-set P(sorted by certain coord) function divideAndConquer(P) if |P| ≤ x then return incremental(P) end if (P1, P2) = split(P) H1 = divideAndConquer(P1) H2 = divideAndConquer(P2) return merge(H1, H2) end function Slides by: Roger Hernando Convex hull algorithms in 3D
  • 17. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge Determine a supporting line of the convex hulls, projecting the hulls and using the 2D algorithm. Use wrapping algorithm to create the additional faces in order to construct a cylinder of triangles connecting the hulls. Remove the hidden faces hidden by the wrapped band. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 18. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge in detail 1 Obtain a common tangent(AB) which can be computed just as in the two-dimensional case. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 19. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge in detail 2 We next need to find a triangle ABC whose vertex C must belong to either the left hull or the right hull. Consequently, either AC is an edge of the left hull or BC is an edge of the right hull. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 20. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge in detail 3 Now we have a new edge AC that joins the left hull and the right hull. We can find triangle ACD just as we did ABC. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 21. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge in detail 3 The process stops when we reach again the edge AB. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 22. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge in detail Merge can be performed in linear time O(n), because the circular order that follow vertex on intersection of new convex hull edges, with a separating plane H0. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 23. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge The curves bounding the two convex hulls do not have to be simple. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 24. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge I Ensure: C is the convex hull of H1, H2 Require: Convex hulls H1, H2 function merge(H1, H2) C = H1 ∪ H2 e(p1, p2) = supportingLine(H1, H2) L = e repeat p3 = giftWrapAroundEdge(e) if p3 ∈ H1 then e = (p2, p3) else e = (p1, p3) end if C = C ∪ {(p1, p2, p3)} Slides by: Roger Hernando Convex hull algorithms in 3D
  • 25. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Merge II until e = L discardHiddenFaces(C) end function Slides by: Roger Hernando Convex hull algorithms in 3D
  • 26. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Slides by: Roger Hernando Convex hull algorithms in 3D
  • 27. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm 1 Create tetrahedron(initial CH). pick 2 points p1 and p2. pick a point not lying on the line p1p2. pick a point not lying on the plane p1p2p3(if not found use a 2D algorithm). 2 Randomize the remaining points P. 3 For each pi ∈ P, add pi into the CHi−1 if pi lies inside or on the boundary of CHi−1 then do nothing. if pi lies outside of CHi−1 insert pi . Slides by: Roger Hernando Convex hull algorithms in 3D
  • 28. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Ensure: C Convex hull of point-set P Require: point-set P C = findInitialTetrahedron(P) P = P − C for all p ∈ P do if p outside C then F = visbleFaces(C, p) C = C − F C = connectBoundaryToPoint(C, p) end if end for Slides by: Roger Hernando Convex hull algorithms in 3D
  • 29. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Find visible region Naive: Test every face for each point O(n2 ). Conflict graph: Maintain information to aid in determining visible facets from a point. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 30. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Conflict graph Relates unprocessed points with facets of CH they can see. Bipartite graph. pt unprocessed points. f faces of the convex hull. conflict arcs, point pi sees fj . Maintain sets: Pconflict(f ), points that can see f . Fconflict(p), faces visible from p(visible region deleted after insertion of p). At any step of the algorithm, we know all conflicts between the remaining points and facets on the current CH. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 31. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Initialize Conflict graph Initialize the conflict graph G with CH(P4) in linear time. Loop through all points to determine the conflicts. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 32. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Update Conflict graph 1 Discard visible facets from p by removing neighbors of p ∈ G. 2 Remove p from G. 3 Determine new conflicts. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 33. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Determine new conflicts Check if Pconflict(f2) is in conflict with f . Check if Pconflict(f1) is in conflict with f . If pr is coplanar with f1, f has the same conflicts as f1. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 34. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm I Ensure: C Convex hull of point-set P Require: point-set P C = findInitialTetrahedron(P) initializeConflictGraph(P, C) P = P − C for all p ∈ P do if Fconflict(p) = ∅ then delete(Fconflict(p), C) L = borderEdges(C) for all e ∈ L do f = createNewTriangularFace(e, p) f = neighbourFace(e) addFaceToG(f ) if areCoplanar(f , f ) then Pconflict(f ) = Pconflict(f ) else Slides by: Roger Hernando Convex hull algorithms in 3D
  • 35. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm II P(e) = Pcoflict(f1) ∪ Pcoflict(f2) for all p ∈ P(e) do if isVisble(f , p) then addConflict(p, f ) end if end for end if end for end if end for Slides by: Roger Hernando Convex hull algorithms in 3D
  • 36. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Analysis We want to bound the total number of facets created/deleted by the algorithm. #faces 4 + n r=5 E|deg(pr , CH(Pr ))| ≤ 4 + 6(n − 4) = 6n − 20 = O(n) Slides by: Roger Hernando Convex hull algorithms in 3D
  • 37. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Analysis We want to bound the total number of Points which can see horizon edges at any stage of the algorithm( e card(P(e))). Define: Set of active configurations τ(S). A flap ∆ = (p, q, s, t). ∆ ∈ τ(S)all edges in the flap are edges of the CH(S). Set K(∆) points which have the flap ∆ as horizon edge. Slides by: Roger Hernando Convex hull algorithms in 3D
  • 38. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Analysis We want to bound the total number of Points which can see horizon edges at any stage of the algorithm( e card(P(e))). e card(P(e)) ≤ ∆ card(K(∆)) ≤ n r=1 16 n−r r 6r−12 r ≤ ≤ 96n ln n = O(n log n) Slides by: Roger Hernando Convex hull algorithms in 3D
  • 39. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Slides by: Roger Hernando Convex hull algorithms in 3D
  • 40. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Slides by: Roger Hernando Convex hull algorithms in 3D
  • 41. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Slides by: Roger Hernando Convex hull algorithms in 3D
  • 42. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Slides by: Roger Hernando Convex hull algorithms in 3D
  • 43. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References Incremental algorithm Slides by: Roger Hernando Convex hull algorithms in 3D
  • 44. Introduction Complexity Gift wrapping Divide and conquer Incremental algorithm References References I Applet: http://www.cse.unsw.edu.au/ lambert/java/3d/hull.htm M. de Berg, O. Cheong, M. van Kreveld, M. Overmars, Computational Geometry Algorithms and Applications J. O’Rourke,Computational Geometry in C Partha P. Goswami, Introduction to Computational Geometry David M. Mount, Lecture notes. Bernard Chazelle, An optimal convex hull algorith in any fixed dimension Alexander Wolf, Slides Jason C. Yang, Slides Peter Felkel, Slides Slides by: Roger Hernando Convex hull algorithms in 3D