1、Clipper
Clipper库是目前计算机图形领域广为使用的图形处理库,可以用于解决平面二维图形的多边形简化、布尔运算和偏移处理,在CAD、加工路径与3D打印方面都有着比较重要的应用。
https://sourceforge.net/projects/polyclipping/
https://www.angusj.com/clipper2/Docs/Overview.htm
https://www.angusj.com/clipper2/Docs/Units/Clipper.Offset/Classes/ClipperOffset/_Body.htm
https://github.com/AngusJohnson/Clipper2
#include "clipper2/clipper.h"
...
using namespace Clipper2Lib;
int main()
{
Paths64 subject;
subject.push_back(MakePath({ 3480,2570, 3640,1480,
3620,1480, 3260,2410, 2950,2190, 2580,880,
4400,1290, 3700,1960, 3720,2750 }));
Paths64 solution;
ClipperOffset offsetter;
offsetter.AddPaths(subject, JoinType::Round, EndType::Polygon);
offsetter.Execute(-70, solution);
solution = SimplifyPaths(solution, 2.5);
//draw solution ...
DrawPolygons(solution, 0x4000FF00, 0xFF009900);
}
2、CavalierContours
Polygon Clipping and Offsetting - C++, C# and Delphi
rust版本
https://github.com/jbuckmccready/cavalier_contours
c++版本
https://github.com/jbuckmccready/CavalierContours
qt客户端
https://github.com/jbuckmccready/CavalierContoursDev
web在线测试
https://cavaliercontours.dev/#/pline_offset
3、Shapely
它是计算几何库GEOS的Python包
https://pypi.org/project/Shapely/
https://github.com/Toblerity/Shapely
---
欢迎访问下一篇
GIS系列专题(3):缓冲区算法对比研究(Buffer Algorithm),类似刀具补偿_建几何缓冲区算法-CSDN博客