ClippingBezier

这个库为 UIBezierPath 添加了类别,以简化使用另一个闭合或非闭合 UIBezierPath 来裁剪单个闭合 UIBezierPath 的过程。

Loose Leaf 中的 ClippingBezier

ClippingBezier.framework 为 Loose Leaf 中的剪刀工具提供支持,并允许将绘图裁剪到任何导入的图像碎片。

clipped-pen-example.png

可作为 Swift Package 使用!

从 v1.2.0 开始,通过 Swift Package Manager 在您的项目中安装 ClippingBezier!

构建框架

该库将生成一个合适的静态框架包,可在任何 iOS7+ 项目中使用。

包含在您的项目中

  1. 链接到构建的框架和包含的 PerformanceBezier 框架
  2. 将 "-ObjC++ -lstdc++" 添加到项目设置中的 "Other Linker Flags"
  3. #import <PerformanceBezier/PerformanceBezier.h>
  4. #import <ClippingBezier/ClippingBezier.h>

依赖项

该库依赖于 PerformanceBezier 库中 UIBezierPath 的性能改进。

示例

UIBezierPath* aClosedPath = /* some path */;
UIBezierPath* scissorPath = /* some other path */;

NSArray* subshapes = [aClosedPath uniqueShapesCreatedFromSlicingWithUnclosedPath:scissorPath];
for(DKUIBezierPathShape* shape in subshapes){
    UIBezierPath* aClosedPathSlice = shape.fullPath;
}

截图

查找两个 UIBezierPath 之间的交点

intersection-example.png

或者查找由两个路径的交点生成的组件形状

scissor-example.png

示例应用程序

Xcode 工作区包含一个 ClippingExampleApp 项目,该项目展示了 ClippingBezier 框架的完整功能集成。 您可以参考此示例,了解有关如何集成到您的应用程序中的任何问题。

许可证

ClippingBezier 框架和示例代码根据 MIT 许可证提供。

支持此项目