A divide-and-conquer algorithm for curve fitting
Autor(a) principal: | |
---|---|
Data de Publicação: | 2022 |
Outros Autores: | |
Tipo de documento: | Artigo |
Idioma: | eng |
Título da fonte: | Repositório Institucional da Udesc |
dARK ID: | ark:/33523/001300000n2fp |
Texto Completo: | https://repositorio.udesc.br/handle/UDESC/2881 |
Resumo: | © 2022 Elsevier LtdCurve fitting is still an open problem which draws attention from many applications, such as computer-aided design, computer-aided manufacturing and reverse engineering. Splines such as Bézier, B-Spline and NURBS curves are usually employed in engineering applications and are intensively used for fitting purposes. The optimization of their shapes and localization parameters, however, is a very complex task. The literature presents many methods which empirically set some important parameters, such as the number of control points. As guessing such a value is difficult, this paper presents a new method to choose it through a multi-curve fitting method, based on linear least square optimizations, using a divide-and-conquer algorithm and an error tolerance threshold. Four prime procedures compose the method: the conquer step fits curves over subset point clouds; the combine step glues curve segments together with some selective continuity; the divide step splits subsets which are not properly fitted yet; and the merge step blends curve segments together. Several curve setups were tested in well-known benchmarks, using four-division strategies: bisection, error balance, point with the greatest curvature and point with the smallest curvature. The developed method allows for fast computation even for larger point clouds, and it was able to properly reconstruct each tested shape, even with the addition of synthetic noise. We also demonstrate that it can be significantly faster than a single-curve fitting using the same number of control points. |
id |
UDESC-2_e7d659770d205073dd8c3b98b8761917 |
---|---|
oai_identifier_str |
oai:repositorio.udesc.br:UDESC/2881 |
network_acronym_str |
UDESC-2 |
network_name_str |
Repositório Institucional da Udesc |
repository_id_str |
6391 |
spelling |
A divide-and-conquer algorithm for curve fitting© 2022 Elsevier LtdCurve fitting is still an open problem which draws attention from many applications, such as computer-aided design, computer-aided manufacturing and reverse engineering. Splines such as Bézier, B-Spline and NURBS curves are usually employed in engineering applications and are intensively used for fitting purposes. The optimization of their shapes and localization parameters, however, is a very complex task. The literature presents many methods which empirically set some important parameters, such as the number of control points. As guessing such a value is difficult, this paper presents a new method to choose it through a multi-curve fitting method, based on linear least square optimizations, using a divide-and-conquer algorithm and an error tolerance threshold. Four prime procedures compose the method: the conquer step fits curves over subset point clouds; the combine step glues curve segments together with some selective continuity; the divide step splits subsets which are not properly fitted yet; and the merge step blends curve segments together. Several curve setups were tested in well-known benchmarks, using four-division strategies: bisection, error balance, point with the greatest curvature and point with the smallest curvature. The developed method allows for fast computation even for larger point clouds, and it was able to properly reconstruct each tested shape, even with the addition of synthetic noise. We also demonstrate that it can be significantly faster than a single-curve fitting using the same number of control points.2024-12-05T20:22:06Z2022info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/article0010-448510.1016/j.cad.2022.103362https://repositorio.udesc.br/handle/UDESC/2881ark:/33523/001300000n2fpCAD Computer Aided Design151Rosso R.S.U.*Buchinger, Diegoengreponame:Repositório Institucional da Udescinstname:Universidade do Estado de Santa Catarina (UDESC)instacron:UDESCinfo:eu-repo/semantics/openAccess2024-12-07T20:40:04Zoai:repositorio.udesc.br:UDESC/2881Biblioteca Digital de Teses e Dissertaçõeshttps://pergamumweb.udesc.br/biblioteca/index.phpPRIhttps://repositorio-api.udesc.br/server/oai/requestri@udesc.bropendoar:63912024-12-07T20:40:04Repositório Institucional da Udesc - Universidade do Estado de Santa Catarina (UDESC)false |
dc.title.none.fl_str_mv |
A divide-and-conquer algorithm for curve fitting |
title |
A divide-and-conquer algorithm for curve fitting |
spellingShingle |
A divide-and-conquer algorithm for curve fitting Rosso R.S.U.* |
title_short |
A divide-and-conquer algorithm for curve fitting |
title_full |
A divide-and-conquer algorithm for curve fitting |
title_fullStr |
A divide-and-conquer algorithm for curve fitting |
title_full_unstemmed |
A divide-and-conquer algorithm for curve fitting |
title_sort |
A divide-and-conquer algorithm for curve fitting |
author |
Rosso R.S.U.* |
author_facet |
Rosso R.S.U.* Buchinger, Diego |
author_role |
author |
author2 |
Buchinger, Diego |
author2_role |
author |
dc.contributor.author.fl_str_mv |
Rosso R.S.U.* Buchinger, Diego |
description |
© 2022 Elsevier LtdCurve fitting is still an open problem which draws attention from many applications, such as computer-aided design, computer-aided manufacturing and reverse engineering. Splines such as Bézier, B-Spline and NURBS curves are usually employed in engineering applications and are intensively used for fitting purposes. The optimization of their shapes and localization parameters, however, is a very complex task. The literature presents many methods which empirically set some important parameters, such as the number of control points. As guessing such a value is difficult, this paper presents a new method to choose it through a multi-curve fitting method, based on linear least square optimizations, using a divide-and-conquer algorithm and an error tolerance threshold. Four prime procedures compose the method: the conquer step fits curves over subset point clouds; the combine step glues curve segments together with some selective continuity; the divide step splits subsets which are not properly fitted yet; and the merge step blends curve segments together. Several curve setups were tested in well-known benchmarks, using four-division strategies: bisection, error balance, point with the greatest curvature and point with the smallest curvature. The developed method allows for fast computation even for larger point clouds, and it was able to properly reconstruct each tested shape, even with the addition of synthetic noise. We also demonstrate that it can be significantly faster than a single-curve fitting using the same number of control points. |
publishDate |
2022 |
dc.date.none.fl_str_mv |
2022 2024-12-05T20:22:06Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/article |
format |
article |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
0010-4485 10.1016/j.cad.2022.103362 https://repositorio.udesc.br/handle/UDESC/2881 |
dc.identifier.dark.fl_str_mv |
ark:/33523/001300000n2fp |
identifier_str_mv |
0010-4485 10.1016/j.cad.2022.103362 ark:/33523/001300000n2fp |
url |
https://repositorio.udesc.br/handle/UDESC/2881 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
CAD Computer Aided Design 151 |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da Udesc instname:Universidade do Estado de Santa Catarina (UDESC) instacron:UDESC |
instname_str |
Universidade do Estado de Santa Catarina (UDESC) |
instacron_str |
UDESC |
institution |
UDESC |
reponame_str |
Repositório Institucional da Udesc |
collection |
Repositório Institucional da Udesc |
repository.name.fl_str_mv |
Repositório Institucional da Udesc - Universidade do Estado de Santa Catarina (UDESC) |
repository.mail.fl_str_mv |
ri@udesc.br |
_version_ |
1842258149290016768 |