This document provides an overview of Voronoi diagrams, including:
- Defining Voronoi diagrams as subdividing a plane into regions based on distance to input sites
- Demonstrating Voronoi diagrams for 1, 2, and more sites
- Explaining properties like cells, edges, and vertices
- Analyzing the complexity and proving Voronoi diagrams have linear size
- Outlining Fortune's sweep line algorithm for constructing Voronoi diagrams in linear time using data structures like a balanced binary search tree and doubly linked list
The document describes Voronoi diagrams and an algorithm for constructing them efficiently. Voronoi diagrams partition space into regions based on distance to points called sites. The algorithm uses a sweep line approach, maintaining the current state of the diagram. It handles events where the sweep line encounters a site or potential empty circle. The key data structures are a balanced binary search tree to represent the beach line, a doubly linked list to represent the constructed diagram, and a priority queue of events. The algorithm runs in O(n log n) time.
The document summarizes Fortune's algorithm for generating Voronoi diagrams. It begins with background on Voronoi diagrams and their applications. It then outlines Fortune's algorithm, which uses a sweep line and priority queue of events to incrementally build the Voronoi diagram. Key aspects include maintaining a beach line of parabolic arcs, handling site events by splitting arcs and circle events by removing arcs. The algorithm runs in O(n log n) time by using a self-balancing binary search tree to represent the beach line.
Higher-Order Voronoi Diagrams of Polygonal Objects. DissertationMaksym Zavershynskyi
Higher-order Voronoi diagrams are fundamental geometric structures which encode the k-nearest neighbor information. Thus, they aid in computations that require proximity information beyond the nearest neighbor. They are related to various favorite structures in computational geometry and are a fascinating combinatorial problem to study.
While higher-order Voronoi diagrams of points have been studied a lot, they have not been considered for other types of sites. Points lack dimensionality which makes them unable to represent various real-life instances. Points are the simplest kind of geometric object and therefore higher-order Voronoi diagrams of points can be considered as the corner case of all higher-order Voronoi diagrams.
The goal of this dissertation is to move away from the corner and bring the higher-order Voronoi diagram to more general geometric instances. We focus on certain polygonal objects as they provide flexibility and are able to represent real-life instances. Before this dissertation, higher-order Voronoi diagrams of polygonal objects had been studied only for the nearest neighbor and farthest Voronoi diagrams. In this dissertation we investigate structural and combinatorial properties and discover that the dimensionality of geometric objects manifests itself in numerous ways which do not exist in the case of points. We prove that the structural complexity of the order-k Voronoi diagram of non-crossing line segments is O(k(n−k)), as in the case of points. We study disjoint line segments, intersecting line segments, line segments forming a planar straight-line graph and extend the results to the Lp metric, 1≤p≤∞. We also establish the connection between two mathematical abstractions: abstract Voronoi diagrams and the Clarkson-Shor framework.
We design several construction algorithms that cover the case of non-point sites. While computational geometry provides several approaches to study the structural complexity that give tight realizable bounds, developing an effective construction algorithm is still a challenging problem even for points. Most of the construction algorithms are designed to work with points as they utilize their simplicity and relations with data-structures that work specifically for points. We extend the iterative and the sweepline approaches that are quite efficient in constructing all order-i Voronoi diagrams, for i≤k and we also give three randomized construction algorithms for abstract higher-order Voronoi diagrams that deal specifically with the construction of the order-k Voronoi diagrams.
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay TriangulationsDon Sheehy
We describe a new algorithm for computing the Voronoi diagram of a set of $n$ points in constant-dimensional Euclidean space. The running time of our algorithm is $O(f \log n \log \spread)$ where $f$ is the output complexity of the Voronoi diagram and $\spread$ is the spread of the input, the ratio of largest to smallest pairwise distances. Despite the simplicity of the algorithm and its analysis, it improves on the state of the art for all inputs with polynomial spread and near-linear output size. The key idea is to first build the Voronoi diagram of a superset of the input points using ideas from Voronoi refinement mesh generation. Then, the extra points are removed in a straightforward way that allows the total work to be bounded in terms of the output complexity, yielding the output sensitive bound. The removal only involves local flips and is inspired by kinetic data structures.
Markov Chain Monitoring - Application to demand prediction in bike sharing sy...Harshal Chaudhari
The presentation accompanying the paper at SDM 2018 - https://epubs.siam.org/doi/abs/10.1137/1.9781611975321.50
Github: https://github.com/chdhr-harshal/mc-monitor
In networking applications, one often wishes to obtain estimates about the number of objects at different parts of the network (e.g., the number of cars at an intersection of a road network or the number of packets expected to reach a node in a computer network) by monitoring the traffic in a small number of network nodes or edges. We formalize this task by defining the Markov Chain Monitoring problem. Given an initial distribution of items over the nodes of a Markov chain, we wish to estimate the distribution of items at subsequent times. We do this by asking a limited number of queries that retrieve, for example, how many items transitioned to a specific node or over a specific edge at a particular time. We consider different types of queries, each defining a different variant of the Markov Chain Monitoring. For each variant, we design efficient algorithms for choosing the queries that make our estimates as accurate as possible. In our experiments with synthetic and real datasets we demonstrate the efficiency and the efficacy of our algorithms in a variety of settings.
Topology describes how elements are connected and bounded in B-Rep models, while geometry describes the shape of each element. Topological entities include bodies, shells, faces, loops, and vertices. Geometry entities include points, curves described parametrically, and surfaces. Parametric curves include lines, arcs, and Bezier curves. Parametric surfaces include planes, cylinders, and NURBS surfaces constructed from control points. B-splines generalize Bezier curves by using local control points to define curve segments.
My talk about computational geometry in NTU's APEX Club in NTU, Singapore in 2007. The club is for people who are keen on participating in ACM International Collegiate Programming Contests organized by IBM annually.
A sweepline algorithm for Voronoi DiagramsSweta Sharma
This document summarizes Steven Fortune's 1987 paper on using a sweepline algorithm to efficiently compute Voronoi diagrams of point sites, line segment sites, and weighted point sites. It describes how a transformation maps the Voronoi diagram to one where each site is the lowest point of its own Voronoi region. The sweepline algorithm maintains the intersected regions while sweeping a horizontal line upwards. It takes O(n log n) time by using a priority queue and processing each site and intersection once. Extensions to different site types are also possible with this algorithm.
The document describes Voronoi diagrams and an algorithm for constructing them efficiently. Voronoi diagrams partition space into regions based on distance to points called sites. The algorithm uses a sweep line approach, maintaining the current state of the diagram. It handles events where the sweep line encounters a site or potential empty circle. The key data structures are a balanced binary search tree to represent the beach line, a doubly linked list to represent the constructed diagram, and a priority queue of events. The algorithm runs in O(n log n) time.
The document summarizes Fortune's algorithm for generating Voronoi diagrams. It begins with background on Voronoi diagrams and their applications. It then outlines Fortune's algorithm, which uses a sweep line and priority queue of events to incrementally build the Voronoi diagram. Key aspects include maintaining a beach line of parabolic arcs, handling site events by splitting arcs and circle events by removing arcs. The algorithm runs in O(n log n) time by using a self-balancing binary search tree to represent the beach line.
Higher-Order Voronoi Diagrams of Polygonal Objects. DissertationMaksym Zavershynskyi
Higher-order Voronoi diagrams are fundamental geometric structures which encode the k-nearest neighbor information. Thus, they aid in computations that require proximity information beyond the nearest neighbor. They are related to various favorite structures in computational geometry and are a fascinating combinatorial problem to study.
While higher-order Voronoi diagrams of points have been studied a lot, they have not been considered for other types of sites. Points lack dimensionality which makes them unable to represent various real-life instances. Points are the simplest kind of geometric object and therefore higher-order Voronoi diagrams of points can be considered as the corner case of all higher-order Voronoi diagrams.
The goal of this dissertation is to move away from the corner and bring the higher-order Voronoi diagram to more general geometric instances. We focus on certain polygonal objects as they provide flexibility and are able to represent real-life instances. Before this dissertation, higher-order Voronoi diagrams of polygonal objects had been studied only for the nearest neighbor and farthest Voronoi diagrams. In this dissertation we investigate structural and combinatorial properties and discover that the dimensionality of geometric objects manifests itself in numerous ways which do not exist in the case of points. We prove that the structural complexity of the order-k Voronoi diagram of non-crossing line segments is O(k(n−k)), as in the case of points. We study disjoint line segments, intersecting line segments, line segments forming a planar straight-line graph and extend the results to the Lp metric, 1≤p≤∞. We also establish the connection between two mathematical abstractions: abstract Voronoi diagrams and the Clarkson-Shor framework.
We design several construction algorithms that cover the case of non-point sites. While computational geometry provides several approaches to study the structural complexity that give tight realizable bounds, developing an effective construction algorithm is still a challenging problem even for points. Most of the construction algorithms are designed to work with points as they utilize their simplicity and relations with data-structures that work specifically for points. We extend the iterative and the sweepline approaches that are quite efficient in constructing all order-i Voronoi diagrams, for i≤k and we also give three randomized construction algorithms for abstract higher-order Voronoi diagrams that deal specifically with the construction of the order-k Voronoi diagrams.
A New Approach to Output-Sensitive Voronoi Diagrams and Delaunay TriangulationsDon Sheehy
We describe a new algorithm for computing the Voronoi diagram of a set of $n$ points in constant-dimensional Euclidean space. The running time of our algorithm is $O(f \log n \log \spread)$ where $f$ is the output complexity of the Voronoi diagram and $\spread$ is the spread of the input, the ratio of largest to smallest pairwise distances. Despite the simplicity of the algorithm and its analysis, it improves on the state of the art for all inputs with polynomial spread and near-linear output size. The key idea is to first build the Voronoi diagram of a superset of the input points using ideas from Voronoi refinement mesh generation. Then, the extra points are removed in a straightforward way that allows the total work to be bounded in terms of the output complexity, yielding the output sensitive bound. The removal only involves local flips and is inspired by kinetic data structures.
Markov Chain Monitoring - Application to demand prediction in bike sharing sy...Harshal Chaudhari
The presentation accompanying the paper at SDM 2018 - https://epubs.siam.org/doi/abs/10.1137/1.9781611975321.50
Github: https://github.com/chdhr-harshal/mc-monitor
In networking applications, one often wishes to obtain estimates about the number of objects at different parts of the network (e.g., the number of cars at an intersection of a road network or the number of packets expected to reach a node in a computer network) by monitoring the traffic in a small number of network nodes or edges. We formalize this task by defining the Markov Chain Monitoring problem. Given an initial distribution of items over the nodes of a Markov chain, we wish to estimate the distribution of items at subsequent times. We do this by asking a limited number of queries that retrieve, for example, how many items transitioned to a specific node or over a specific edge at a particular time. We consider different types of queries, each defining a different variant of the Markov Chain Monitoring. For each variant, we design efficient algorithms for choosing the queries that make our estimates as accurate as possible. In our experiments with synthetic and real datasets we demonstrate the efficiency and the efficacy of our algorithms in a variety of settings.
Topology describes how elements are connected and bounded in B-Rep models, while geometry describes the shape of each element. Topological entities include bodies, shells, faces, loops, and vertices. Geometry entities include points, curves described parametrically, and surfaces. Parametric curves include lines, arcs, and Bezier curves. Parametric surfaces include planes, cylinders, and NURBS surfaces constructed from control points. B-splines generalize Bezier curves by using local control points to define curve segments.
My talk about computational geometry in NTU's APEX Club in NTU, Singapore in 2007. The club is for people who are keen on participating in ACM International Collegiate Programming Contests organized by IBM annually.
A sweepline algorithm for Voronoi DiagramsSweta Sharma
This document summarizes Steven Fortune's 1987 paper on using a sweepline algorithm to efficiently compute Voronoi diagrams of point sites, line segment sites, and weighted point sites. It describes how a transformation maps the Voronoi diagram to one where each site is the lowest point of its own Voronoi region. The sweepline algorithm maintains the intersected regions while sweeping a horizontal line upwards. It takes O(n log n) time by using a priority queue and processing each site and intersection once. Extensions to different site types are also possible with this algorithm.
This document summarizes techniques for editing and manipulating 3D meshes, including Laplacian mesh editing, as-rigid-as-possible shape interpolation, deformation transfer, and generalized barycentric coordinates. It discusses using Laplacian coordinates to edit meshes while preserving local details, interpolating between shapes by treating each triangle transformation as a rigid transformation, transferring deformations between meshes by applying affine transformations computed for each source triangle to corresponding target triangles, and solving the resulting optimization problem to find consistent vertex positions during deformation transfer.
This document provides an overview of vector tools and operations that are commonly used in computer graphics. It defines basic vector concepts like points, vectors, vector addition and scalar multiplication. It also describes operations on vectors like the dot product and cross product. It explains how vectors are used to represent and perform operations on lines and planes in both 2D and 3D space, including finding intersections between lines, planes, and a line and plane.
This document discusses single-view modeling using projective geometry. It begins with an overview of projective geometry concepts like homogeneous coordinates, duality of points and lines, and perspective projection. It then covers applications like computing vanishing points and lines from images to model the 3D scene layout. Methods for measuring object heights using cross-ratios and known reference heights are also presented. The document concludes with a discussion of related techniques like camera calibration and single-image depth prediction.
3. Linear Algebra for Machine Learning: Factorization and Linear TransformationsCeni Babaoglu, PhD
The seminar series will focus on the mathematical background needed for machine learning. The first set of the seminars will be on "Linear Algebra for Machine Learning". Here are the slides of the third part which is discussing factorization and linear transformations.
Here is the link of the first part which was discussing linear systems: https://www.slideshare.net/CeniBabaogluPhDinMat/linear-algebra-for-machine-learning-linear-systems/1
Here are the slides of the second part which was discussing basis and dimension:
https://www.slideshare.net/CeniBabaogluPhDinMat/2-linear-algebra-for-machine-learning-basis-and-dimension
This document introduces concepts related to representing vectors and points in vector spaces and affine spaces using coordinate systems and frames of reference. It discusses linear independence and dimension, and how vectors and points can be represented with respect to a basis or frame using coordinate systems. Homogeneous coordinates are introduced as a unified representation for points and vectors. The document also covers how to relate representations between different bases or frames using change-of-basis and change-of-frame matrices. Finally, it provides examples of the world and camera frames used in computer graphics.
The document discusses computational geometry and algorithms for solving geometric problems. It focuses on algorithms in two dimensions that can determine properties of line segments, such as whether one segment is clockwise or counterclockwise from another. It also describes an algorithm using a sweeping technique that can determine if any two segments in a set of segments intersect in O(n log n) time.
The document discusses forward kinematics, which is finding the position and orientation of the end effector given the joint angles of a robot. It covers different types of robot joints and configurations. It introduces the Denavit-Hartenberg coordinate system for defining the relationship between successive links of a robot. The document also discusses forward kinematic calculations, inverse kinematics, robot workspaces, and trajectory planning.
Chapter 12
Section 12.1: Three-Dimensional Coordinate Systems
We locate a point on a number line as one coordinate, in the plane as an ordered pair, and in
space as an ordered triple. So we call number line as one dimensional, plane as two
dimensional, and space as three dimensional co – ordinate system.
In three dimensional, there is origin (0, 0, 0) and there are three axes – x -, y - , and z – axis. X –
and y – axes are horizontal and z – axis is vertical. These three axes divide the space into eight
equal parts, called the octants. In addition, these three axes divide the space into three
coordinate planes.
– The xy-plane contains the x- and y-axes. The equation is z = 0.
– The yz-plane contains the y- and z-axes. The equation is x = 0.
– The xz-plane contains the x- and z-axes. The equation is y = 0.
If P is any point in space, let:
– a be the (directed) distance from the yz-plane to P.
– b be the distance from the xz-plane to P.
– c be the distance from the xy-plane to P.
Then the point P by the ordered triple of real numbers (a, b, c), where a, b, and c are the
coordinates of P.
– a is the x-coordinate.
– b is the y-coordinate.
– c is the z-coordinate.
– Thus, to locate a point (a, b, c) in space, start from the origin (0, 0, 0) and move a
units along the x-axis. Then, move b units parallel to the y-axis. Finally, move c
units parallel to the z-axis.
The three dimensional Cartesian co – ordinate system follows the right hand rule.
Examples:
Plot the points (2,3,4), (2, -3, 4), (-2, -3, 4), (2, -3, -4), and (-2, -3, -4).
The Cartesian product x x = {(x, y, z) | x, y, z in } is the set of all ordered triples of
real numbers and is denoted by 3 .
Note:
1. In 2 – dimension, an equation in x and y represents a curve in the plane 2 . In 3 –
dimension, an equation in x, y, and z represents a surface in space 3 .
2. When we see an equation, we must understand from the context that it is a curve in the
plane or a surface in space. For example, y = 5 is a line in 2 �but it is a plane in 3 �
������
3. in space, if k, l, & m are constants, then
– x = k represents a plane parallel to the yz-plane ( a vertical plane).
– y = k is a plane parallel to the xz-plane ( a vertical plane).
– z = k is a plane parallel to the xy-plane ( a horizontal plane).
– x = k & y = l is a line.
– x = k & z = m is a line.
– y = l & z = m is a line.
– x = k, y = l and z = m is a point.
Examples: Describe and sketch y = x in 3
Example:
Solve:
Which of the points P(6, 2, 3), Q(-5, -1, 4), and R(0, 3, 8) is closest to the xz – plane? Which point
lies in the yz – plane?
Distance between two points in space:
We simply extend the formula from 2 to . 3 . The distance |p1 p2 | between the points
P1(x1,y1, z1) and P2(x2, y2, z2) is: 2 2 21 2 2 1 ...
This document discusses various algorithms for polygon scan conversion and filling, including:
- The scan line polygon fill algorithm which determines pixel color by calculating polygon edge intersections with scan lines and using an odd-even rule.
- Methods for handling special cases like horizontal edges and vertex intersections.
- Using a sorted edge table and active edge list to incrementally calculate edge intersections across scan lines.
- Flood fill and depth/z-buffer algorithms for hidden surface removal when rendering overlapping polygons.
This document discusses curves and surfaces. It begins by introducing parametric curves, which are defined by continuous functions of a parameter. Important properties of curves discussed include affine invariance and satisfying the convex hull property. Several interpolation techniques for constructing curves through given points are covered, including Lagrange interpolation and Bézier curves. Bézier curves are constructed using Bernstein polynomials and have desirable properties like the convex hull property. The document shows how to define piecewise continuous Bézier curves and discusses algorithms for evaluating and rendering Bézier curves.
Unit 2 discusses geometric modeling techniques. It covers representation of curves using Hermite, Bezier, and B-spline curves. It also discusses surface modeling techniques including surface patches, Coons and bicubic patches, and Bezier and B-spline surfaces. Solid modeling techniques of CSG (Constructive Solid Geometry) and B-rep (Boundary Representation) are also introduced.
The document discusses different methods for representing 3D rotations and orientations, including rotation matrices, Euler angles, and quaternions. It explains that quaternions represent a rotation as a combination of a scalar and vector, and describe how to perform operations like rotation, composition, and normalization using quaternions. Quaternions use fewer parameters than rotation matrices but more easily represent arbitrary rotations and can be interpolated for smooth animation.
One of many important generalizations of ordinary Voronoi diagrams is the higher-order Voronoi diagram. The order-k Voronoi diagram is the partitioning of the plane into regions, such that each point within a fixed region has the same k nearest sites. Many algorithms have been developed that construct the higher-order Voronoi diagram of point-sites. In this talk we will discuss randomized algorithms that can be used for a larger class of sites—specifically, polygonal objects and the abstract setting. We describe the algorithms in combinatorial rather than geometric terms, which makes it possible to construct higher-order Voronoi diagrams that have bisectors satisfying certain combinatorial properties.
The document discusses the convex hull algorithm. It begins by defining a convex hull as the shape a rubber band would take if stretched around pins on a board. It then provides explanations of extreme points, edges, and applications of convex hulls. Various algorithms for finding convex hulls are presented, including divide and conquer in O(n log n) time and Jarvis march in O(n^2) time in the worst case.
This document introduces network flows and provides examples of networks where flows occur, such as liquids in pipes and goods transported on roads. It defines key concepts like sources, sinks, flows, and cuts. It describes how to find a maximum flow and minimum cut in a network and presents theorems relating feasible flows and cut capacities. The maximum flow problem is to determine the largest amount of flow that can pass from sources to sinks in a network respecting edge capacities.
This document provides instruction on applying derivatives to solve various types of application problems. It begins by outlining objectives of analyzing and solving application problems involving derivatives as instantaneous rates of change or tangent line slopes. Examples of application problems covered include writing equations of tangent and normal lines, curve tracing, optimization problems, and related rates problems involving time rates. The document then provides definitions and examples of using derivatives to find slopes of curves and tangent lines. It also covers concepts like concavity, points of inflection, maxima/minima, and solving optimization problems using derivatives. Finally, it gives examples of solving related rates problems involving time-dependent variables.
On the higher order Voronoi diagram of line-segments (ISAAC2012)Maksym Zavershynskyi
We analyze structural properties of the order-k Voronoi dia- gram of line segments, which surprisingly has not received any attention in the computational geometry literature. We show that order-k Voronoi regions of line segments may be disconnected; in fact a single order- k Voronoi region may consist of Ω(n) disjoint faces. Nevertheless, the structural complexity of the order-k Voronoi diagram of non-intersecting segments remains O(k(n − k)) similarly to points. For intersecting line segments the structural complexity remains O(k(n − k)) for k ≥ n/2.
This document outlines concepts in three-dimensional fluid flow, including:
1) Lifting surface theory which extends lifting line theory to low aspect ratio wings by placing lifting lines across the wing surface.
2) The vortex lattice method which superimposes horseshoe vortices on the wing to obtain equations relating vortex strengths that satisfy flow tangency.
3) A three-dimensional source defined as a flow with radial streamlines emanating from a point, and a doublet defined as a sink and source of equal strength.
4) Flow over a sphere is analyzed using a uniform flow and doublet, finding two stagnation points and that maximum surface velocity is less than over a cylinder, demonstrating three
This document defines key graph concepts like paths, cycles, degrees of vertices, and different types of graphs like trees, forests, and directed acyclic graphs. It also describes common graph representations like adjacency matrices and lists. Finally, it covers graph traversal algorithms like breadth-first search and depth-first search, outlining their time complexities and providing examples of their process.
Charging and Fueling Infrastructure Grant: Round 2 by Brandt HertensteinForth
Brandt Hertenstein, Program Manager of the Electrification Coalition gave this presentation at the Forth and Electrification Coalition CFI Grant Program - Overview and Technical Assistance webinar on June 12, 2024.
This document summarizes techniques for editing and manipulating 3D meshes, including Laplacian mesh editing, as-rigid-as-possible shape interpolation, deformation transfer, and generalized barycentric coordinates. It discusses using Laplacian coordinates to edit meshes while preserving local details, interpolating between shapes by treating each triangle transformation as a rigid transformation, transferring deformations between meshes by applying affine transformations computed for each source triangle to corresponding target triangles, and solving the resulting optimization problem to find consistent vertex positions during deformation transfer.
This document provides an overview of vector tools and operations that are commonly used in computer graphics. It defines basic vector concepts like points, vectors, vector addition and scalar multiplication. It also describes operations on vectors like the dot product and cross product. It explains how vectors are used to represent and perform operations on lines and planes in both 2D and 3D space, including finding intersections between lines, planes, and a line and plane.
This document discusses single-view modeling using projective geometry. It begins with an overview of projective geometry concepts like homogeneous coordinates, duality of points and lines, and perspective projection. It then covers applications like computing vanishing points and lines from images to model the 3D scene layout. Methods for measuring object heights using cross-ratios and known reference heights are also presented. The document concludes with a discussion of related techniques like camera calibration and single-image depth prediction.
3. Linear Algebra for Machine Learning: Factorization and Linear TransformationsCeni Babaoglu, PhD
The seminar series will focus on the mathematical background needed for machine learning. The first set of the seminars will be on "Linear Algebra for Machine Learning". Here are the slides of the third part which is discussing factorization and linear transformations.
Here is the link of the first part which was discussing linear systems: https://www.slideshare.net/CeniBabaogluPhDinMat/linear-algebra-for-machine-learning-linear-systems/1
Here are the slides of the second part which was discussing basis and dimension:
https://www.slideshare.net/CeniBabaogluPhDinMat/2-linear-algebra-for-machine-learning-basis-and-dimension
This document introduces concepts related to representing vectors and points in vector spaces and affine spaces using coordinate systems and frames of reference. It discusses linear independence and dimension, and how vectors and points can be represented with respect to a basis or frame using coordinate systems. Homogeneous coordinates are introduced as a unified representation for points and vectors. The document also covers how to relate representations between different bases or frames using change-of-basis and change-of-frame matrices. Finally, it provides examples of the world and camera frames used in computer graphics.
The document discusses computational geometry and algorithms for solving geometric problems. It focuses on algorithms in two dimensions that can determine properties of line segments, such as whether one segment is clockwise or counterclockwise from another. It also describes an algorithm using a sweeping technique that can determine if any two segments in a set of segments intersect in O(n log n) time.
The document discusses forward kinematics, which is finding the position and orientation of the end effector given the joint angles of a robot. It covers different types of robot joints and configurations. It introduces the Denavit-Hartenberg coordinate system for defining the relationship between successive links of a robot. The document also discusses forward kinematic calculations, inverse kinematics, robot workspaces, and trajectory planning.
Chapter 12
Section 12.1: Three-Dimensional Coordinate Systems
We locate a point on a number line as one coordinate, in the plane as an ordered pair, and in
space as an ordered triple. So we call number line as one dimensional, plane as two
dimensional, and space as three dimensional co – ordinate system.
In three dimensional, there is origin (0, 0, 0) and there are three axes – x -, y - , and z – axis. X –
and y – axes are horizontal and z – axis is vertical. These three axes divide the space into eight
equal parts, called the octants. In addition, these three axes divide the space into three
coordinate planes.
– The xy-plane contains the x- and y-axes. The equation is z = 0.
– The yz-plane contains the y- and z-axes. The equation is x = 0.
– The xz-plane contains the x- and z-axes. The equation is y = 0.
If P is any point in space, let:
– a be the (directed) distance from the yz-plane to P.
– b be the distance from the xz-plane to P.
– c be the distance from the xy-plane to P.
Then the point P by the ordered triple of real numbers (a, b, c), where a, b, and c are the
coordinates of P.
– a is the x-coordinate.
– b is the y-coordinate.
– c is the z-coordinate.
– Thus, to locate a point (a, b, c) in space, start from the origin (0, 0, 0) and move a
units along the x-axis. Then, move b units parallel to the y-axis. Finally, move c
units parallel to the z-axis.
The three dimensional Cartesian co – ordinate system follows the right hand rule.
Examples:
Plot the points (2,3,4), (2, -3, 4), (-2, -3, 4), (2, -3, -4), and (-2, -3, -4).
The Cartesian product x x = {(x, y, z) | x, y, z in } is the set of all ordered triples of
real numbers and is denoted by 3 .
Note:
1. In 2 – dimension, an equation in x and y represents a curve in the plane 2 . In 3 –
dimension, an equation in x, y, and z represents a surface in space 3 .
2. When we see an equation, we must understand from the context that it is a curve in the
plane or a surface in space. For example, y = 5 is a line in 2 �but it is a plane in 3 �
������
3. in space, if k, l, & m are constants, then
– x = k represents a plane parallel to the yz-plane ( a vertical plane).
– y = k is a plane parallel to the xz-plane ( a vertical plane).
– z = k is a plane parallel to the xy-plane ( a horizontal plane).
– x = k & y = l is a line.
– x = k & z = m is a line.
– y = l & z = m is a line.
– x = k, y = l and z = m is a point.
Examples: Describe and sketch y = x in 3
Example:
Solve:
Which of the points P(6, 2, 3), Q(-5, -1, 4), and R(0, 3, 8) is closest to the xz – plane? Which point
lies in the yz – plane?
Distance between two points in space:
We simply extend the formula from 2 to . 3 . The distance |p1 p2 | between the points
P1(x1,y1, z1) and P2(x2, y2, z2) is: 2 2 21 2 2 1 ...
This document discusses various algorithms for polygon scan conversion and filling, including:
- The scan line polygon fill algorithm which determines pixel color by calculating polygon edge intersections with scan lines and using an odd-even rule.
- Methods for handling special cases like horizontal edges and vertex intersections.
- Using a sorted edge table and active edge list to incrementally calculate edge intersections across scan lines.
- Flood fill and depth/z-buffer algorithms for hidden surface removal when rendering overlapping polygons.
This document discusses curves and surfaces. It begins by introducing parametric curves, which are defined by continuous functions of a parameter. Important properties of curves discussed include affine invariance and satisfying the convex hull property. Several interpolation techniques for constructing curves through given points are covered, including Lagrange interpolation and Bézier curves. Bézier curves are constructed using Bernstein polynomials and have desirable properties like the convex hull property. The document shows how to define piecewise continuous Bézier curves and discusses algorithms for evaluating and rendering Bézier curves.
Unit 2 discusses geometric modeling techniques. It covers representation of curves using Hermite, Bezier, and B-spline curves. It also discusses surface modeling techniques including surface patches, Coons and bicubic patches, and Bezier and B-spline surfaces. Solid modeling techniques of CSG (Constructive Solid Geometry) and B-rep (Boundary Representation) are also introduced.
The document discusses different methods for representing 3D rotations and orientations, including rotation matrices, Euler angles, and quaternions. It explains that quaternions represent a rotation as a combination of a scalar and vector, and describe how to perform operations like rotation, composition, and normalization using quaternions. Quaternions use fewer parameters than rotation matrices but more easily represent arbitrary rotations and can be interpolated for smooth animation.
One of many important generalizations of ordinary Voronoi diagrams is the higher-order Voronoi diagram. The order-k Voronoi diagram is the partitioning of the plane into regions, such that each point within a fixed region has the same k nearest sites. Many algorithms have been developed that construct the higher-order Voronoi diagram of point-sites. In this talk we will discuss randomized algorithms that can be used for a larger class of sites—specifically, polygonal objects and the abstract setting. We describe the algorithms in combinatorial rather than geometric terms, which makes it possible to construct higher-order Voronoi diagrams that have bisectors satisfying certain combinatorial properties.
The document discusses the convex hull algorithm. It begins by defining a convex hull as the shape a rubber band would take if stretched around pins on a board. It then provides explanations of extreme points, edges, and applications of convex hulls. Various algorithms for finding convex hulls are presented, including divide and conquer in O(n log n) time and Jarvis march in O(n^2) time in the worst case.
This document introduces network flows and provides examples of networks where flows occur, such as liquids in pipes and goods transported on roads. It defines key concepts like sources, sinks, flows, and cuts. It describes how to find a maximum flow and minimum cut in a network and presents theorems relating feasible flows and cut capacities. The maximum flow problem is to determine the largest amount of flow that can pass from sources to sinks in a network respecting edge capacities.
This document provides instruction on applying derivatives to solve various types of application problems. It begins by outlining objectives of analyzing and solving application problems involving derivatives as instantaneous rates of change or tangent line slopes. Examples of application problems covered include writing equations of tangent and normal lines, curve tracing, optimization problems, and related rates problems involving time rates. The document then provides definitions and examples of using derivatives to find slopes of curves and tangent lines. It also covers concepts like concavity, points of inflection, maxima/minima, and solving optimization problems using derivatives. Finally, it gives examples of solving related rates problems involving time-dependent variables.
On the higher order Voronoi diagram of line-segments (ISAAC2012)Maksym Zavershynskyi
We analyze structural properties of the order-k Voronoi dia- gram of line segments, which surprisingly has not received any attention in the computational geometry literature. We show that order-k Voronoi regions of line segments may be disconnected; in fact a single order- k Voronoi region may consist of Ω(n) disjoint faces. Nevertheless, the structural complexity of the order-k Voronoi diagram of non-intersecting segments remains O(k(n − k)) similarly to points. For intersecting line segments the structural complexity remains O(k(n − k)) for k ≥ n/2.
This document outlines concepts in three-dimensional fluid flow, including:
1) Lifting surface theory which extends lifting line theory to low aspect ratio wings by placing lifting lines across the wing surface.
2) The vortex lattice method which superimposes horseshoe vortices on the wing to obtain equations relating vortex strengths that satisfy flow tangency.
3) A three-dimensional source defined as a flow with radial streamlines emanating from a point, and a doublet defined as a sink and source of equal strength.
4) Flow over a sphere is analyzed using a uniform flow and doublet, finding two stagnation points and that maximum surface velocity is less than over a cylinder, demonstrating three
This document defines key graph concepts like paths, cycles, degrees of vertices, and different types of graphs like trees, forests, and directed acyclic graphs. It also describes common graph representations like adjacency matrices and lists. Finally, it covers graph traversal algorithms like breadth-first search and depth-first search, outlining their time complexities and providing examples of their process.
Charging and Fueling Infrastructure Grant: Round 2 by Brandt HertensteinForth
Brandt Hertenstein, Program Manager of the Electrification Coalition gave this presentation at the Forth and Electrification Coalition CFI Grant Program - Overview and Technical Assistance webinar on June 12, 2024.
Welcome to ASP Cranes, your trusted partner for crane solutions in Raipur, Chhattisgarh! With years of experience and a commitment to excellence, we offer a comprehensive range of crane services tailored to meet your lifting and material handling needs.
At ASP Cranes, we understand the importance of reliable and efficient crane operations in various industries, from construction and manufacturing to logistics and infrastructure development. That's why we strive to deliver top-notch solutions that enhance productivity, safety, and cost-effectiveness for our clients.
Our services include:
Crane Rental: Whether you need a crawler crane for heavy lifting or a hydraulic crane for versatile operations, we have a diverse fleet of well-maintained cranes available for rent. Our rental options are flexible and can be customized to suit your project requirements.
Crane Sales: Looking to invest in a crane for your business? We offer a wide selection of new and used cranes from leading manufacturers, ensuring you find the perfect equipment to match your needs and budget.
Crane Maintenance and Repair: To ensure optimal performance and safety, regular maintenance and timely repairs are essential for cranes. Our team of skilled technicians provides comprehensive maintenance and repair services to keep your equipment running smoothly and minimize downtime.
Crane Operator Training: Proper training is crucial for safe and efficient crane operation. We offer specialized training programs conducted by certified instructors to equip operators with the skills and knowledge they need to handle cranes effectively.
Custom Solutions: We understand that every project is unique, which is why we offer custom crane solutions tailored to your specific requirements. Whether you need modifications, attachments, or specialized equipment, we can design and implement solutions that meet your needs.
At ASP Cranes, customer satisfaction is our top priority. We are dedicated to delivering reliable, cost-effective, and innovative crane solutions that exceed expectations. Contact us today to learn more about our services and how we can support your project in Raipur, Chhattisgarh, and beyond. Let ASP Cranes be your trusted partner for all your crane needs!
Charging Fueling & Infrastructure (CFI) Program by Kevin MillerForth
Kevin Miller, Senior Advisor, Business Models of the Joint Office of Energy and Transportation gave this presentation at the Forth and Electrification Coalition CFI Grant Program - Overview and Technical Assistance webinar on June 12, 2024.
Charging Fueling & Infrastructure (CFI) Program Resources by Cat PleinForth
Cat Plein, Development & Communications Director of Forth, gave this presentation at the Forth and Electrification Coalition CFI Grant Program - Overview and Technical Assistance webinar on June 12, 2024.
EV Charging at MFH Properties by Whitaker JamiesonForth
Whitaker Jamieson, Senior Specialist at Forth, gave this presentation at the Forth Addressing The Challenges of Charging at Multi-Family Housing webinar on June 11, 2024.
Expanding Access to Affordable At-Home EV Charging by Vanessa WarheitForth
Vanessa Warheit, Co-Founder of EV Charging for All, gave this presentation at the Forth Addressing The Challenges of Charging at Multi-Family Housing webinar on June 11, 2024.
Understanding Catalytic Converter Theft:
What is a Catalytic Converter?: Learn about the function of catalytic converters in vehicles and why they are targeted by thieves.
Why are They Stolen?: Discover the valuable metals inside catalytic converters (such as platinum, palladium, and rhodium) that make them attractive to criminals.
Steps to Prevent Catalytic Converter Theft:
Parking Strategies: Tips on where and how to park your vehicle to reduce the risk of theft, such as parking in well-lit areas or secure garages.
Protective Devices: Overview of various anti-theft devices available, including catalytic converter locks, shields, and alarms.
Etching and Marking: The benefits of etching your vehicle’s VIN on the catalytic converter or using a catalytic converter marking kit to make it traceable and less appealing to thieves.
Surveillance and Monitoring: Recommendations for using security cameras and motion-sensor lights to deter thieves.
Statistics and Insights:
Theft Rates by Borough: Analysis of data to determine which borough in NYC experiences the highest rate of catalytic converter thefts.
Recent Trends: Current trends and patterns in catalytic converter thefts to help you stay aware of emerging hotspots and tactics used by thieves.
Benefits of This Presentation:
Awareness: Increase your awareness about catalytic converter theft and its impact on vehicle owners.
Practical Tips: Gain actionable insights and tips to effectively prevent catalytic converter theft.
Local Insights: Understand the specific risks in different NYC boroughs, helping you take targeted preventive measures.
This presentation aims to equip you with the knowledge and tools needed to protect your vehicle from catalytic converter theft, ensuring you are prepared and proactive in safeguarding your property.
Implementing ELDs or Electronic Logging Devices is slowly but surely becoming the norm in fleet management. Why? Well, integrating ELDs and associated connected vehicle solutions like fleet tracking devices lets businesses and their in-house fleet managers reap several benefits. Check out the post below to learn more.
1. Lecture 7: Voronoi Diagrams
Presented by Allen Miu
6.838 Computational Geometry
September 27, 2001
2. Post Office: What is the area of service?
q
q : free point
e
e : Voronoi edge
v
v : Voronoi vertex
pi
pi : site points
3. Definition of Voronoi Diagram
• Let P be a set of n distinct points (sites) in the plane.
• The Voronoi diagram of P is the subdivision of the plane
into n cells, one for each site.
• A point q lies in the cell corresponding to a site pi P
iff
Euclidean_Distance( q, pi ) < Euclidean_distance( q, pj ),
for each pi P, j i.
6. Two sites form a perpendicular
bisector
Voronoi Diagram is a line
that extends infinitely in
both directions, and the
two half planes on either
side.
8. Non-collinear sites form Voronoi
half lines that meet at a vertex
A Voronoi vertex is
the center of an empty
circle touching 3 or
more sites.
v
Half lines
A vertex has
degree 3
11. Who wants to be a Millionaire?
v
Which of the following is true for
2-D Voronoi diagrams?
Four or more non-collinear sites are…
1. sufficient to create a bounded cell
2. necessary to create a bounded cell
3. 1 and 2
4. none of above
12. Who wants to be a Millionaire?
v
Which of the following is true for
2-D Voronoi diagrams?
Four or more non-collinear sites are…
1. sufficient to create a bounded cell
2. necessary to create a bounded cell
3. 1 and 2
4. none of above
14. Summary of Voronoi Properties
A point q lies on a Voronoi edge between sites pi and pj
iff the largest empty circle centered at q touches only
pi and pj
– A Voronoi edge is a subset of locus of points equidistant
from pi and pj
e
e : Voronoi edge
v
v : Voronoi vertex
pi
pi : site points
15. Summary of Voronoi Properties
A point q is a vertex iff the largest empty circle
centered at q touches at least 3 sites
– A Voronoi vertex is an intersection of 3 more segments,
each equidistant from a pair of sites
e
e : Voronoi edge
v
v : Voronoi vertex
pi
pi : site points
16. Outline
• Definitions and Examples
• Properties of Voronoi diagrams
• Complexity of Voronoi diagrams
• Constructing Voronoi diagrams
– Intuitions
– Data Structures
– Algorithm
• Running Time Analysis
• Demo
• Duality and degenerate cases
17. Voronoi diagrams have linear
complexity {|v|, |e| = O(n)}
Intuition: Not all bisectors are Voronoi edges!
e
e : Voronoi edge
pi
pi : site points
18. Voronoi diagrams have linear
complexity {|v|, |e| = O(n)}
Claim: For n 3, |v| 2n 5 and |e| 3n 6
Proof: (Easy Case)
…
Collinear sites |v| = 0, |e| = n – 1
19. Voronoi diagrams have linear
complexity {|v|, |e| = O(n)}
Claim: For n 3, |v| 2n 5 and |e| 3n 6
Proof: (General Case)
• Euler’s Formula: for connected, planar graphs,
|v| – |e| + f = 2
Where:
|v| is the number of vertices
|e| is the number of edges
f is the number of faces
20. Voronoi diagrams have linear
complexity {|v|, |e| = O(n)}
Claim: For n 3, |v| 2n 5 and |e| 3n 6
Proof: (General Case)
• For Voronoi graphs, f = n (|v| +1) – |e| + n = 2
e
pi
p
To apply Euler’s Formula, we
“planarize” the Voronoi diagram
by connecting half lines to
an extra vertex.
21. Voronoi diagrams have linear
complexity {|v|, |e| = O(n)}
Moreover,
and
so
together with
we get, for n 3
|
|
2
)
deg(
)
(
e
v
P
Vor
v
),
(P
Vor
v
3
)
deg(
v
)
1
|
(|
3
|
|
2
v
e
2
|
|
)
1
|
(|
n
e
v
6
3
|
|
5
2
|
|
n
e
n
v
22. Outline
• Definitions and Examples
• Properties of Voronoi diagrams
• Complexity of Voronoi diagrams
• Constructing Voronoi diagrams
– Intuitions
– Data Structures
– Algorithm
• Running Time Analysis
• Demo
• Duality and degenerate cases
27. Constructing Voronoi Diagrams
• Half plane intersection O( n2 log n )
• Fortune’s Algorithm
– Sweep line algorithm
• Voronoi diagram constructed as horizontal line
sweeps the set of sites from top to bottom
• Incremental construction maintains portion of
diagram which cannot change due to sites below
sweep line, keeping track of incremental changes for
each site (and Voronoi vertex) it “sweeps”
28. Constructing Voronoi Diagrams
What is the invariant we are looking for?
Maintain a representation of the locus of points q that
are closer to some site pi above the sweep line than to
the line itself (and thus to any site below the line).
e
v
pi
Sweep Line
q
29. Constructing Voronoi Diagrams
Which points are closer to a site above the sweep
line than to the sweep line itself?
Sweep Line
pi
q
The set of parabolic arcs form a beach-line that bounds
the locus of all such points
Equidistance
33. We have detected a circle that is empty (contains no
sites) and touches 3 or more sites.
Constructing Voronoi Diagrams
Sweep Line
pi
q
Voronoi vertex!
34. Beach Line properties
• Voronoi edges are traced by the break points
as the sweep line moves down.
– Emergence of a new break point(s) (from
formation of a new arc or a fusion of two
existing break points) identifies a new edge
• Voronoi vertices are identified when two
break points meet (fuse).
– Decimation of an old arc identifies new vertex
35. Data Structures
• Current state of the Voronoi diagram
– Doubly linked list of half-edge, vertex, cell records
• Current state of the beach line
– Keep track of break points
– Keep track of arcs currently on beach line
• Current state of the sweep line
– Priority event queue sorted on decreasing y-coordinate
36. Doubly Linked List (D)
• Goal: a simple data structure that allows an
algorithm to traverse a Voronoi diagram’s
segments, cells and vertices
e
v
Cell(pi)
37. Doubly Linked List (D)
• Divide segments into uni-directional half-edges
• A chain of counter-clockwise half-edges forms a cell
• Define a half-edge’s “twin” to be its opposite half-edge of the
same segment
e
v
Cell(pi)
38. Doubly Linked List (D)
• Cell Table
– Cell(pi) : pointer to any incident half-edge
• Vertex Table
– vi : list of pointers to all incident half-edges
• Doubly Linked-List of half-edges; each has:
– Pointer to Cell Table entry
– Pointers to start/end vertices of half-edge
– Pointers to previous/next half-edges in the CCW chain
– Pointer to twin half-edge
39. Balanced Binary Tree (T)
• Internal nodes represent break points between two arcs
– Also contains a pointer to the D record of the edge being traced
• Leaf nodes represent arcs, each arc is in turn represented
by the site that generated it
– Also contains a pointer to a potential circle event
pi pj pk pl
< pj, pk>
< pi, pj> < pk, pl>
pi
pj
pk
pl
l
40. Event Queue (Q)
• An event is an interesting point encountered by the
sweep line as it sweeps from top to bottom
– Sweep line makes discrete stops, rather than a
continuous sweep
• Consists of Site Events (when the sweep line
encounters a new site point) and Circle Events
(when the sweep line encounters the bottom of an
empty circle touching 3 or more sites).
• Events are prioritized based on y-coordinate
43. Site Event
Original arc above the new site is broken into two
Number of arcs on beach line is O(n)
l
44. Circle Event
An arc disappears whenever an empty circle touches
three or more sites and is tangent to the sweep line.
Sweep line helps determine that the circle is indeed empty.
Circle Event!
Sweep Line
pi
q
Voronoi vertex!
45. Event Queue Summary
• Site Events are
– given as input
– represented by the xy-coordinate of the site point
• Circle Events are
– computed on the fly (intersection of the two bisectors in
between the three sites)
– represented by the xy-coordinate of the lowest point of
an empty circle touching three or more sites
– “anticipated”, these newly generated events may be
false and need to be removed later
• Event Queue prioritizes events based on their y-
coordinates
46. Summarizing Data Structures
• Current state of the Voronoi diagram
– Doubly linked list of half-edge, vertex, cell records
• Current state of the beach line
– Keep track of break points
• Inner nodes of binary search tree; represented by a tuple
– Keep track of arcs currently on beach line
• Leaf nodes of binary search tree; represented by a site that
generated the arc
• Current state of the sweep line
– Priority event queue sorted on decreasing y-coordinate
47. Algorithm
1. Initialize
• Event queue Q all site events
• Binary search tree T
• Doubly linked list D
2. While Q not ,
• Remove event (e) from Q with largest y-
coordinate
• HandleEvent(e, T, D)
48. Handling Site Events
1. Locate the existing arc (if any) that is above the
new site
2. Break the arc by replacing the leaf node with a
sub tree representing the new arc and its break
points
3. Add two half-edge records in the doubly linked
list
4. Check for potential circle event(s), add them to
event queue if they exist
49. Locate the existing arc that is above
the new site
pi pj pk pl
< pj, pk>
< pi, pj> < pk, pl>
• The x coordinate of the new site is used for the binary search
• The x coordinate of each breakpoint along the root to leaf path
is computed on the fly
pi
pj
pk
pl
l
pm
50. Break the Arc
pi pj pk
< pj, pk>
< pi, pj> < pk, pl>
Corresponding leaf replaced by a new sub-tree
pi
pj
pk
pl
l
pm
pm pl
< pl, pm>
< pm, pl>
pl
Different arcs can be identified
by the same site!
51. Add a new edge record in the doubly
linked list
pi pj pk
< pj, pk>
< pi, pj> < pk, pl>
pm pl
< pl, pm>
< pm, pl>
pl
pi
pj
pk
pl
l
pm
New Half Edge Record
Endpoints
Pointers to two half-edge
records
l
pm
52. Checking for Potential Circle Events
• Scan for triple of consecutive arcs and
determine if breakpoints converge
– Triples with new arc in the middle do not have
break points that converge
53. Checking for Potential Circle Events
• Scan for triple of consecutive arcs and
determine if breakpoints converge
– Triples with new arc in the middle do not have
break points that converge
54. Checking for Potential Circle Events
• Scan for triple of consecutive arcs and
determine if breakpoints converge
– Triples with new arc in the middle do not have
break points that converge
55. Converging break points may not
always yield a circle event
• Appearance of a new site before the circle
event makes the potential circle non-empty
l
(The original circle event becomes a false alarm)
56. Handling Site Events
1. Locate the leaf representing the existing arc that is
above the new site
– Delete the potential circle event in the event queue
2. Break the arc by replacing the leaf node with a
sub tree representing the new arc and break points
3. Add a new edge record in the doubly linked list
4. Check for potential circle event(s), add them to
queue if they exist
– Store in the corresponding leaf of T a pointer to the
new circle event in the queue
57. Handling Circle Events
1. Add vertex to corresponding edge record in doubly
linked list
2. Delete from T the leaf node of the disappearing arc
and its associated circle events in the event queue
3. Create new edge record in doubly linked list
4. Check the new triplets formed by the former
neighboring arcs for potential circle events
58. A Circle Event
pi pj pk
< pj, pk>
< pi, pj> < pk, pl>
pi
pj
pk
pl
l
pm
pm pl
< pl, pm>
< pm, pl>
pl
59. Add vertex to corresponding edge record
pi pj pk
< pj, pk>
< pi, pj> < pk, pl>
pi
pj
pk
pl
l
pm
pm pl
< pl, pm>
< pm, pl>
pl
Half Edge Record
Endpoints.add(x, y)
Half Edge Record
Endpoints.add(x, y)
Link!
62. Create new edge record
pi pj pk
< pj, pk>
< pi, pj>
pi
pj
pk
pl
l
pm
pm pl
< pm, pl>
< pk, pm>
New Half Edge Record
Endpoints.add(x, y)
A new edge is traced out by the new
break point < pk, pm>
63. Check the new triplets for
potential circle events
pi pj pk
< pj, pk>
< pi, pj>
pi
pj
pk
pl
l
pm
pm pl
< pm, pl>
< pk, pm>
Q y
…
new circle event
64. Minor Detail
• Algorithm terminates when Q = , but the
beach line and its break points continue to
trace the Voronoi edges
– Terminate these “half-infinite” edges via a
bounding box
67. Algorithm Termination
pi pj
< pj, pm>
< pi, pj>
pi
pj
pk
pl
l
pm
pm pl
< pm, pl>
Q
Terminate half-lines
with a bounding box!
68. Outline
• Definitions and Examples
• Properties of Voronoi diagrams
• Complexity of Voronoi diagrams
• Constructing Voronoi diagrams
– Intuitions
– Data Structures
– Algorithm
• Running Time Analysis
• Demo
• Duality and degenerate cases
69. Handling Site Events
1. Locate the leaf representing the existing arc
that is above the new site
– Delete the potential circle event in the event queue
2. Break the arc by replacing the leaf node with a
sub tree representing the new arc and break
points
3. Add a new edge record in the link list
4. Check for potential circle event(s), add them to
queue if they exist
– Store in the corresponding leaf of T a pointer to the
new circle event in the queue
Running Time
O(log n)
O(1)
O(1)
O(1)
70. Handling Circle Events
1. Delete from T the leaf node of the
disappearing arc and its associated
circle events in the event queue
2. Add vertex record in doubly link list
3. Create new edge record in doubly
link list
4. Check the new triplets formed by the
former neighboring arcs for potential
circle events
Running Time
O(log n)
O(1)
O(1)
O(1)
71. Total Running Time
• Each new site can generate at most two new
arcs
beach line can have at most 2n – 1 arcs
at most O(n) site and circle events in the queue
• Site/Circle Event Handler O(log n)
O(n log n) total running time
72. Is Fortune’s Algorithm Optimal?
• We can sort numbers using any algorithm that
constructs a Voronoi diagram!
• Map input numbers to a position on the number
line. The resulting Voronoi diagram is doubly
linked list that forms a chain of unbounded cells in
the left-to-right (sorted) order.
-5 1 3 6 7
Number
Line
73. Outline
• Definitions and Examples
• Properties of Voronoi diagrams
• Complexity of Voronoi diagrams
• Constructing Voronoi diagrams
– Intuitions
– Data Structures
– Algorithm
• Running Time Analysis
• Demo
• Duality and degenerate cases
75. Degenerate Cases
• Events in Q share the same y-coordinate
– Can additionally sort them using x-coordinate
• Circle event involving more than 3 sites
– Current algorithm produces multiple degree 3
Voronoi vertices joined by zero-length edges
– Can be fixed in post processing
76. Degenerate Cases
• Site points are collinear (break points
neither converge or diverge)
– Bounding box takes care of this
• One of the sites coincides with the lowest
point of the circle event
– Do nothing
77. Site coincides with circle event:
the same algorithm applies!
1. New site detected
2. Break one of the arcs an infinitesimal distance
away from the arc’s end point
79. Summary
• Voronoi diagram is a useful planar
subdivision of a discrete point set
• Voronoi diagrams have linear complexity
and can be constructed in O(n log n) time
• Fortune’s algorithm (optimal)