Polygon conversion / Simplification to spline / 2D Spline Fitting(repost)
$100-500 USD
Completed
Posted over 17 years ago
$100-500 USD
Paid on delivery
Given potentially many verticies of a polygon, convert the polygon into a X-Spline. Complexity is a parameter to the function call. Complexity of the spline (0 being simplified the most, 100 being the most faithful to the polygon) will be an adjustable parameter. Final form is that of a single function call. A test harness must be written to demonstrate the correctness of the implementation. Test harness may be written for Windows or MacOS--preferably Windows. Test harness lets user plot polygon and select simplification level (see above), and preview resulting splines. Basically, we're looking to be able to draw an arbitrary polygonal spline freehand with a mouse or tablet, and have the algorithm convert it to a simplified xspline, taking into account the capabilities of the xspline to have per-point smoothness, to minimize the number of control points in the resulting xspline. The complexity of the conversion is based on a parameter, to be attached to a slider, so the user can dial in the trade-off between curve matching and number of points.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
* * *This broadcast message was sent to all bidders on Sunday Jan 7, 2007 6:28:20 PM:
I just want to make sure that all of you understand what we are trying to do. Please respond if you are interested.
Say you draw a "square" freehand and it may take 100 points to draw. It's not going to be perfect - the corners might not be perfectly square, and you'll have a LOT more points than just 4. Ideally, at 0 complexity, the algorithm would spit out an x-spline with 4 points, with the weight set to 0 for each point (cusp). If you add "complexity" to the square conversion, as you increase it, you would expect to get more points in the output, eventually arriving at your input polygon at maximum complexity.
In general, we will be starting with many polygon points as an input and would like to reduce the resulting X-Spline that is created to as few points as possible while still retaining the original shape from the polygon. The amount of points in the resulting X-Spline will be determined by a complexity parameter.
At a value of 100 complexity, the after image would look exactly like the original polygon. At 0 complexity, the resulting shape would use as few points as necessary to create the same shape.
If reducing polygon points to X-Splines is a problem, we could go from a complex polygon with many points to a B-Spline (instead of an X-Spline), that would acceptable. See the following link:
[login to view URL]~shene/COURSES/cs3621/NOTES/INT-APP/[login to view URL]
Let me know your thoughts.
Thanks, Marco
## Platform
Code to be completely self-contained with no external dependencies and no system dependencies.