Curvefit – Comparison to Generalization

Comparison of Curvefit to Generalization

When we talk about Linework we refer to lines, arcs and any connected series of lines and arcs (the AutoCAD polyline). These basic entities are used in every CAD discipline, making up the majority of most drawings. AutoCAD lines and arcs cannot be simplified or optimized in any way, but polylines can often be optimized. Certainly the most basic linework optimization task is joining individual lines and arcs into polylines (our MapTools Basic product performs this function).

Polylines are used to represent many different types of objects in AutoCAD. Virtually every application for AutoCAD uses complex polylines to represent real world features and objects. Mapping/GIS applications use polylines to represent features like roads, property lines, lakes, rivers, railroads, treelines, soil delineations, contours and political boundaries. Mechanical applications use polylines to represent features like the boundaries of complex objects and CNC tool paths necessary for fabrication. PC Board / Hybrid / IC layouts use wide polylines to represent traces.

When we discuss polyline optimization, we imply the improvement of several polyline characteristics; Size (how many vertices), Accuracy (how well does the polyline represent the intended feature) and Smoothness.

The following discussion will describe the evolution of Curvefit polyline optimization using a fairly simple example. The polyline we begin with is a point to point representation of a road centerline containing 59 vertices (shown above with dots). This is the least optimized form possible; it’s size is large, it’s accuracy is probably poor and its smoothness is certainly poor. Unfortunately, this “raw” state is the final form for many drawings.

cfit4

Generalization – Less is Less

Generalization (sometimes called weeding or filtering) is a process developed many years ago to decrease the size of polyline data. The focus is simple; remove some of the vertices to reduce data size. A host of generalization algorithms have been developed over the years, each seeking to determine which of the vertices are unnecessary. All forms of generalization reduce data size but they also degrade accuracy and smoothness.

cfit5

This example was generalized, reducing it from 59 to 6 vertices.

Curvefitting with Tangency Search

Curvefitting is a method of polyline processing that differs greatly from generalization. Instead of just eliminating points, arc segments are found to replace large numbers of vertices. Our Curvefit product was the first polyline processor to offer this functionality. Curvefit dramatically reduces the number of polyline vertices and simultaneously improves smoothness. When the example polyline is processed by Curvefit, a new polyline is created with three vertices (two arcs). True polyline optimization demands a compromise between compression, smoothness and accuracy. Curvefit uses a “fuzzy logic” search engine to find the best compromise polyline segments. This artificial intelligence technique can evaluate many aspects of thousands of possible arc / line combinations, much like a draftsman might do with a straight edge, a set of french curves and an experienced eye.

cfit6

This example was Curvefitted, reducing it from 59 to 3 vertices.