Skip to main content
Log in

Approximating Bézier curves with least square polygons

  • Original article
  • Published:
The Visual Computer Aims and scope Submit manuscript

Abstract

Approximating Bézier curve by polygon is a traditional technique in computer-aided geometric design, and there are several methods for constructing such polygons. In this paper, we propose to approximate Bézier curve by the least square polygon (LSP). LSP was derived by least square fitting which minimizes the integral of approximating errors. We provide a closed formula for the vertices of LSP. Because of its optimization method, LSP has lower approximation errors than existing approximating polygons. This observation is verified by many numerical examples we tested and several typical examples are included in this paper.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Data availability statement

We declare that we do not have any commercial or associative interest that represents a conflict of interest in connection with the work submitted. The datasets generated during and analyzed during the current study are available from the corresponding author on reasonable request.

References

  1. Lane, J.M., Riesenfeld, R.F.: A theoretical development for the computer generation and display of piecewise polynomial surface. IEEE Trans. Pattern Anal. Mach. Intell. 2, 35–46 (1980)

    Article  Google Scholar 

  2. Wang, G.J., Xu, W.: The termination criterion for subdivision of the rational Bézier curves. Graph. Models Image Process. 53(1), 93–96 (1991)

    Article  Google Scholar 

  3. Zhang, R.J., Wang, G.J.: The improvement of the termination criterion for subdivision of the rational Bézier curves. J. Zhejiang Univ. Sci. 4(1), 47–52 (2003)

    Article  MathSciNet  Google Scholar 

  4. Nairn, D., Peters, J., Lutterkort, D.: Sharp, quantitative bounds on the distance between a Bézier curve and its control polygon. Purdue Univ. 16(7), 613–631 (1998)

    Google Scholar 

  5. Nairn, D., Peters, J., Lutterkort, D.: Sharp, quantitative bounds on the distance between a polynomial piece and its Bézier control polygon. Comput. Aided Geom. Des. 16(7), 613–631 (1999)

    Article  Google Scholar 

  6. Reif, U.: Best bounds on the approximation of polynomials and splines by their control structure. Comput. Aided Geom. Des. 17(6), 579–589 (2000)

    Article  MathSciNet  Google Scholar 

  7. Lutterkort, D., Peters, J.: Optimized refinabled enclosures of multivariate polynomial pieces. Comput. Aided Geom. Des. 18(9), 851–863 (2001)

    Article  Google Scholar 

  8. Lutterkort, D., Peters, J.: Tight linear envelopes for splines. Numer. Math. 89, 735–748 (2001)

    Article  MathSciNet  Google Scholar 

  9. Peters, J.: Efficient one-sided linearization of spline geometry. In: Wilson, M.J., Martin, R.R. (eds.) Mathematics of Surfaces 2003. LNCS, vol. 2768, pp. 297–319. Springer, Berlin (2003)

    Google Scholar 

  10. Zhang, R.J., Wang, G.J.: Sharp bounds on the approximation of a Bezier polynomial by its quasi-control polygon. Comput. Aided Geom. Des. 23(1), 1–16 (2006)

    Article  Google Scholar 

  11. Zhang, R.J., Ma, W.: A simple and efficient approximation of a Bézier piece by its cutdown polygon. Comput. Aided Geom. Des. 26(3), 336–341 (2009)

    Article  Google Scholar 

  12. Zhang, R.J., Wang, G.J.: Consolidated sharp bounds for Bézier curve approximation with cutdown polygon and corner cutting polygon. Comput. Aided Geom. Des. 27(3), 382–394 (2010)

    Article  Google Scholar 

  13. Farin, G.: Curves and Surfaces for CAGD: A Practical Guide. Morgan Kaufmann Publishers Inc, Burlington (2001)

    Google Scholar 

Download references

Acknowledgements

The authors owe their gratitude to the anonymous referees for their valuable comments which have helped to improve the presentation of this manuscript. This work was supported by the National Natural Science Foundation of China (NSFC) under the project numbers 61872121.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chongyang Deng.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendix A. The computation of \(\textbf{c}_j\)

$$\begin{aligned} \textbf{c}_{ j }= & {} \int _{0}^{\frac{1}{n}} \left[ nt \textbf{P}\left( t+t_{ j -1}\right) + ( 1- nt) \textbf{P}\left( t+t_j \right) \right] {\textrm{d}}t \\= & {} \int _0 ^{\frac{1}{n}}\sum \limits _{g = 0 }^{k} B^k_g \left( t+t_{j -1}\right) nt{{\varvec{p}}}_g{\textrm{d}}t \\{} & {} + \int _0 ^{\frac{1}{n}}\sum \limits _{g = 0 }^{k} B^k_g \left( t+t_j \right) (1-nt){{\varvec{p}}}_g{\textrm{d}}t. \\= & {} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \left[ \int _0 ^{\frac{1}{n}} B^k_g\left( t+t_{j -1}\right) nt{\textrm{d}}t \right. \\{} & {} \left. + \int _0 ^{\frac{1}{n}} B^k_g \left( t+t_j \right) (1-nt){\textrm{d}}t\right] . \end{aligned}$$

Let \(t+t_{j-1} = u\) and \(t+t_j = u\) in the two integrals respectively, we have

$$\begin{aligned} \textbf{c}_{j}= & {} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \left[ \int _{t_{j-1}} ^{t_j} B^k_g(u) (nu-j+1){\textrm{d}}u \right. \\{} & {} \left. + \int _{t_j}^{t_{j+1}} B^k_g(u) (1-nu+j){\textrm{d}}u \right] \\= & {} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \left[ n \int _{t_{j-1}} ^{t_j} B^k_g(u) u {\textrm{d}}u +(1-j)\int _{t_{j-1}} ^{t_j} B^k_g(u) {\textrm{d}}u \right] \\{} & {} + \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \left[ - n\int _{t_j}^{t_{i+1}} B^k_g(u) u {\textrm{d}}u + (1+j)\int _{t_j}^{t_{i+1}} B^k_g(u) {\textrm{d}}u\right] . \\= & {} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \frac{n(g+1)}{k+1} \left( \int _{t_{j-1}}^{t_j} B^{k+1}_{g+1}(u) {\textrm{d}}u - \int _{t_j}^{t_{j+1}} B^{k+1}_{g+1}(u) {\textrm{d}}u\right) \\{} & {} + \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \left[ \int _{t_{j-1}}^{t_{j+1}} B^k_g(u) {\textrm{d}}u - j\int _{t_{j-1}}^{t_j} B^k_g(u) {\textrm{d}}u+ j\int _{t_j}^{t_{j+1}} B^k_g(u) {\textrm{d}}u \right] . \end{aligned}$$

By the equation \( \int _{0}^t B^k_g(u) {\textrm{d}}u = \frac{1}{k+1} \sum \nolimits _{i = g+1 }^{k+1} B^{k+1}_{i} (t) \) [13], \(\textbf{c}_{j }\) can be computed as

$$\begin{aligned} \textbf{c}_{j}= & {} \frac{n }{(k+1)(k+2)} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g (g+1) \\{} & {} \sum \limits _{i=g+2}^{k+2} \left[ 2B^{k+2}_{i}\left( t_{j}\right) - B^{k+2}_{i}\left( t_{j-1}\right) -B^{k+2}_{i}\left( t_{j+1}\right) \right] \\{} & {} + \frac{1}{k+1 } \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+1}^{k+1} \left[ B^{k+1}_{i}\left( t_{j+1}\right) - B^{k+1}_{i}\left( t_{j-1}\right) \right] \\{} & {} + \frac{j}{k+1 }\sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+1}^{k+1} \left[ B^{k+1}_{i}\left( t_{j+1}\right) - 2B^{k+1}_{i}\left( t_{j}\right) + B^{k+1}_{i}(t_{j-1}) \right] \\= & {} \frac{n }{(k+1)(k+2)} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g (g+1) \\{} & {} \sum \limits _{i=g+2}^{k+2} \left[ 2B^{k+2}_{i}\left( t_{j}\right) - B^{k+2}_{i}\left( t_{j-1}\right) -B^{k+2}_{i}\left( t_{j+1}\right) \right] \\{} & {} + \frac{1}{k+1 } \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+1}^{k+1} \left[ (j+1)B^{k+1}_{i}\left( t_{j+1} \right) \right. \\{} & {} \left. - 2j B^{k+1}_{i}\left( t_{j}\right) +(j-1) B^{k+1}_{i}\left( t_{j-1}\right) \right] \end{aligned}$$

By \(B^{k+1}_{i}(t) = \frac{i+1}{t(k+2)}B^{k+2}_{i}(t)\), It’s easy to compute

$$\begin{aligned}{} & {} \frac{1}{k+1 } \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+1}^{k+1} \left[ (j+1)B^{k+1}_{i}\left( t_{j+1}\right) \right. \\{} & {} \qquad \left. - 2j B^{k+1}_{i}\left( t_{j}\right) +(j-1) B^{k+1}_{i}\left( t_{j-1}\right) \right] \\{} & {} \quad = \frac{n}{(k+1)(k+2)} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+1}^{k+1} (i+1) \left[ B^{k+2}_{i+1}\left( t_{j+1} \right) \right. \\{} & {} \qquad \left. - 2 B^{k+2}_{i+1}\left( t_{j} \right) + B^{k+2}_{i+1}\left( t_{j-1} \right) \right] \\{} & {} \quad = \frac{n}{(k+1)(k+2)} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+2}^{k+2} i \left[ B^{k+2}_{i}\left( t_{j+1} \right) \right. \\{} & {} \qquad \left. - 2 B^{k+2}_{i} \left( t_{j} \right) + B^{k+2}_{i}(t_{j-1}) \right] \end{aligned}$$

Denote \(\Delta _{j,i,n}^{k+2} = B^{k+2}_{i}\left( t_{j+1} \right) - 2 B^{k+2}_{i} \left( t_{j} \right) + B^{k+2}_{i}(t_{j-1}) \), we have

$$\begin{aligned} \textbf{c}_{j}= & {} \frac{n }{(k+1)(k+2)} \sum \limits _{g = 0 }^{k} {{\varvec{p}}}_g \sum \limits _{i=g+2}^{k+2} (i-g-1) \Delta _{j,i,n}^{k+2}. \end{aligned}$$

Appendix B. Examples

Example 1

\(\{ (3.60, 1.34); (-0.44. 7.28); ( 11.24,9.10); ( 7.41, 1.83 )\}\);

Example 2

\( \{ (3, 1); (1, 2); (2, 7); (5, 9); (9, 8); (10, 2); (8, 0); (5, 0) \}\);

Example 3

\( \{ (0, 0); (0, 4); (1, 8); (5, 10); (10, 10); (10, 6); (10, 2); (8, 0); (3, 0); (0, 0)\}\);

Example 4

\( \{(1,1); (2, 7); (6, 10); (9, 6); (4, 6); (3,3); (6, 5); (7, 5); (9, 4); (8, 1); (5, 1); (6, 4); (4, 2)\}\).

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Li, Y., Zhang, M., Jin, W. et al. Approximating Bézier curves with least square polygons. Vis Comput 40, 637–646 (2024). https://doi.org/10.1007/s00371-023-02806-0

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00371-023-02806-0

Keywords

Navigation