Polynomial B-splines are usually used as approximation curves ininteractive curve design, because of the simplicity of their representation and their ease of manipulation. The prevalent method of designing such a curve is by direct manipulations of a user over a set of control vertices defining a B-spline approximation curve. This process, however, is often tedious and may not be able to achieve the desired shape in a practical design situation, since it does not provide direct control over geometric properties at certain points of the curve. Instead of interactively adjusting the control vertices, an alternative is to interpolate some data points on the intended curve. The problems with this approach are that it may develop unwanted wiggles or undulations, and that the expensive cost of computations required to solve a large system of equations does not enable real-time interactive curve design.
In this research, we present a simple yet efficient approach for B-spline-based geometric design of smooth convex curves. Our approach adopts a subdivision strategy: an intended curve is repeatedly split until it can finally be approximated by a set of acceptable B-spline curve segments. To ensure the continuity of adjacent curve segments, it uses first derivatives as end-conditions, since a curve with continuous unit tangent vectors shows satisfactory visual smoothness for most interactive graphics applications. Unlike existing interpolation techniques, the new method avoids solving a large system of equations to generate a B-spline approximation curve. The basic idea is to construct a convex curve, starting from a selected point and using information about the behavior of end-points, based on the convexity-preserving property of B-spline curves. Theoretical analysis indicates that all curves generated by the method have the following features: (1) geometric continuity, (2) convexity, and (3) interpolation of the given points on the original curve. In addition, preliminary experiments with the method show that it is both accurate enough and fast enough to be used for interactive curve design. Currently, in order to apply the present results in the industrial design, we are developing a graphic editor.