How to Cut Corners and Get Bounded Convex Curvature
arXiv:1603.02080
Abstract
We describe an algorithm for solving an important geometric problem arising in computer-aided manufacturing. When cutting away a region from a solid piece of material -- such as steel, wood, ceramics, or plastic -- using a rough tool in a milling machine, sharp convex corners of the region cannot be done properly, but have to be left for finer tools that are more expensive to use. We want to determine a toolpath that maximizes the use of the rough tool. In order to formulate the problem in mathematical terms, we introduce the notion of bounded convex curvature. A region of points in the plane has \emph{bounded convex curvature} if for any point , there is a unit disk and such that and all points in within distance from are in . This translates to saying that as we traverse the boundary with the interior of on the left side, then turns to the left with curvature at most . There is no bound on the curvature where turns to the right. Given a region of points in the plane, we are now interested in computing the maximum subset of bounded convex curvature. The difference in the requirement to left- and right-curvature is a natural consequence of different conditions when machining convex and concave areas of . We devise an algorithm to compute the unique maximum such set , when the boundary of consists of line segments and circular arcs of arbitrary radii. In the general case where may have holes, the algorithm runs in time and uses space. If is simply-connected, we describe a faster time algorithm.
arXiv commentThis version has been accepted for publication in Discrete & Computational Geometry. A preliminary version was presented at SoCG 2016