# LNLib **Repository Path**: algorithmlibs/LNLib ## Basic Information - **Project Name**: LNLib - **Description**: 非均匀有理B样条 第2版 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-13 - **Last Updated**: 2024-09-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 算法, 几何算法 ## README ## Introduction **LNLib is a C++ NURBS Algorithms Library.**
These algorithms are primary referenced from [The NURBS Book 2nd Edition](https://link.springer.com/book/10.1007/978-3-642-97385-7).
The APIs are re-designed to make it more friendly to users. ## Run LNLib Please run build.bat first and it will construct solution by CMake. ## Features Basic Elements: - UV - XYZ - XYZW - Matrix4d - LNObject Algorithms in ***The Nurbs Book***: - ***Chapter 1***: - Basis Function Computation - ***Chapter 1,2,3,4***: - Bezier/B-Spline/NURBS Curve and Surface - ***Chapter 5***: - Curve and Surface Decomposition - Knot Insertion/Refinement/Removal - Degree Elevation and Reduction - ***Chapter 6***: - Curve/Surface Point Inversion - Surface Tangent Vector Inversion - Curve/Surface Reparameterization - Curve Transform and Reverse - Surface Swap and Reverse - ***Chapter 7***: - Create Arc/Conic Curve - ***Chapter 8***: - Create Bilinear/Cylindrical/Ruled/Revolved/CornerFillet Surface - ***Chapter 9***: - Global/Local Curve/Surface Interpolation and Approximation - ***Chapter 10***: - Create Swung/Loft/Sweep/Gordon/Coons Surface - ***Chapter 11***: - Curve Modification in Control Point Locations or Weight Values - ***Chapter 12***: - Curve Clamp/UnClamp/IsClamp - KnotVector IsUniform - Curve IsClosed/IsPeriodic Additional Algorithms: - ***Basic Properties***: - Curve/Surface Curvature and Normal - Curve Split/Merge/Offset - Curve IsLinear/IsArc - Curve Approximate Length - Surface Approximate Area - ***Curve Creation*** - Create Line/Cubic Hermite - ***Tessellation***: - Curve Tessellation - Surface Triangulation ## Visualization [LNLibViewer](https://github.com/BIMCoderLiang/LNLibViewer) based on [VTK](https://vtk.org/) ## Contributing Welcome join this project including discussions in **Issues** and make **Pull requests**. ## Author LNLib is created by Yuqing Liang (BIMCoder Liang). - bim.frankliang@foxmail.com - 微信公众号:**BIMCoder梁老师** ## License The source code is published under [GNU General Public License v3.0](https://www.gnu.org/licenses/), the license is available [here](LICENSE). ## Primary Reference [The NURBS Book 2nd Edition](https://link.springer.com/book/10.1007/978-3-642-97385-7) by **Les Piegl & Wayne Tiller**