83 research outputs found
An Optimal Algorithm for the Separating Common Tangents of two Polygons
We describe an algorithm for computing the separating common tangents of two
simple polygons using linear time and only constant workspace. A tangent of a
polygon is a line touching the polygon such that all of the polygon lies to the
same side of the line. A separating common tangent of two polygons is a tangent
of both polygons where the polygons are lying on different sides of the
tangent. Each polygon is given as a read-only array of its corners. If a
separating common tangent does not exist, the algorithm reports that.
Otherwise, two corners defining a separating common tangent are returned. The
algorithm is simple and implies an optimal algorithm for deciding if the convex
hulls of two polygons are disjoint or not. This was not known to be possible in
linear time and constant workspace prior to this paper.
An outer common tangent is a tangent of both polygons where the polygons are
on the same side of the tangent. In the case where the convex hulls of the
polygons are disjoint, we give an algorithm for computing the outer common
tangents in linear time using constant workspace.Comment: 12 pages, 6 figures. A preliminary version of this paper appeared at
SoCG 201
Finding the Maximum Subset with Bounded Convex Curvature
We describe an algorithm for solving an important geometric problem arising in computer-aided manufacturing. When machining a pocket in a solid piece of material such as steel using a rough tool in a milling machine, sharp convex corners of the pocket cannot be done properly, but have to be left for finer tools that are more expensive to use. We want to determine a tool path that maximizes the use of the rough tool. Mathematically, this boils down to the following problem. Given a simply-connected set of points P in the plane such that the boundary of P is a curvilinear polygon consisting of n line segments and circular arcs of arbitrary radii, compute the maximum subset Q of P consisting of simply-connected sets where the boundary of each set is a curve with bounded convex curvature. A closed curve has bounded convex curvature if, when traversed in counterclockwise direction, it turns to the left with curvature at most 1. There is no bound on the curvature where it turns to the right. The difference in the requirement to left- and right-curvature is a natural consequence of different conditions when machining convex and concave areas of the pocket. We devise an algorithm to compute the unique maximum such set Q. The algorithm runs in O(n log n) time and uses O(n) space.
For the correctness of our algorithm, we prove a new generalization of the Pestov-Ionin Theorem. This is needed to show that the output Q of our algorithm is indeed maximum in the sense that if Q\u27 is any subset of P with a boundary of bounded convex curvature, then Q\u27 is a subset of Q
Spiral tool paths for high-speed machining of 2D pockets with or without islands
We describe new methods for the construction of spiral tool paths for high-speed machining. In the simplest case, our method takes a polygon as input and a number δ>0 and returns a spiral starting at a central point in the polygon, going around towards the boundary while morphing to the shape of the polygon. The spiral consists of linear segments and circular arcs, it is G1 continuous, it has no self-intersections, and the distance from each point on the spiral to each of the neighboring revolutions is at most δ. Our method has the advantage over previously described methods that it is easily adjustable to the case where there is an island in the polygon to be avoided by the spiral. In that case, the spiral starts at the island and morphs the island to the outer boundary of the polygon. It is shown how to apply that method to make significantly shorter spirals in some polygons with no islands than what is obtained by conventional spiral tool paths. Finally, we show how to make a spiral in a polygon with multiple islands by connecting the islands into one island. Keywords: Spiral-like path, Medial axis, Smoothing, High-speed machinin
Spiral Toolpaths for High-Speed Machining of 2D Pockets with or without Islands
We describe new methods for the construction of spiral toolpaths for
high-speed machining. In the simplest case, our method takes a polygon as input
and a number and returns a spiral starting at a central point in the
polygon, going around towards the boundary while morphing to the shape of the
polygon. The spiral consists of linear segments and circular arcs, it is
continuous, it has no self-intersections, and the distance from each point on
the spiral to each of the neighboring revolutions is at most . Our
method has the advantage over previously described methods that it is easily
adjustable to the case where there is an island in the polygon to be avoided by
the spiral. In that case, the spiral starts at the island and morphs the island
to the outer boundary of the polygon. It is shown how to apply that method to
make significantly shorter spirals in polygons with no islands. Finally, we
show how to make a spiral in a polygon with multiple islands by connecting the
islands into one island.Comment: 22 pages, 13 figure
Outer Common Tangents and Nesting of Convex Hulls in Linear Time and Constant Workspace
We describe the first algorithm to compute the outer common tangents of two disjoint simple polygons using linear time and only constant workspace. A tangent of a polygon is a line touching the polygon such that all of the polygon lies on the same side of the line. An outer common tangent of two polygons is a tangent of both polygons such that the polygons lie on the same side of the tangent. Each polygon is given as a read-only array of its corners in cyclic order. The algorithm detects if an outer common tangent does not exist, which is the case if and only if the convex hull of one of the polygons is contained in the convex hull of the other. Otherwise, two corners defining an outer common tangent are returned
Geometric Multicut
We study the following separation problem: Given a collection of colored objects in the plane, compute a shortest "fence" F, i.e., a union of curves of minimum total length, that separates every two objects of different colors. Two objects are separated if F contains a simple closed curve that has one object in the interior and the other in the exterior. We refer to the problem as GEOMETRIC k-CUT, where k is the number of different colors, as it can be seen as a geometric analogue to the well-studied multicut problem on graphs. We first give an O(n^4 log^3 n)-time algorithm that computes an optimal fence for the case where the input consists of polygons of two colors and n corners in total. We then show that the problem is NP-hard for the case of three colors. Finally, we give a (2-4/3k)-approximation algorithm
Distinguishing Classes of Intersection Graphs of Homothets or Similarities of Two Convex Disks
For smooth convex disks A, i.e., convex compact subsets of the plane with non-empty interior, we classify the classes G^{hom}(A) and G^{sim}(A) of intersection graphs that can be obtained from homothets and similarities of A, respectively. Namely, we prove that G^{hom}(A) = G^{hom}(B) if and only if A and B are affine equivalent, and G^{sim}(A) = G^{sim}(B) if and only if A and B are similar
- …