mar*_*ina 4 cgpath uibezierpath ios6
我正在尝试组合几幅UIBezierPath图纸.
我可以制作不同类型的图纸(直线,立方贝塞尔曲线,二次贝塞尔曲线),并且每个都可以填充或填充.我随机选择了绘图类型,我的目标是制作3个不同的绘图,这些绘图在一个点连接.
因此,第一条线路绘图结束时,第二条路径 - 可能是一个立方贝塞尔曲线 - 开始.在那里结束,第三个,也许是填充的线条图开始.
我有一个UIView正在尝试绘制的正方形,每个路径应该有自己的一部分UIView:第一个1/3,第二个和第三个.
我能用一个UIBezierPath对象创建它,还是需要创建3个不同的对象?如何让它们在同一点结束并开始?有没有办法用子路径做到这一点?
UIBezierPath的实例方法如(DOC)
-addLineToPoint:-addArcWithCenter:radius:startAngle:endAngle:clockwise:-addCurveToPoint:controlPoint1:controlPoint2:-addQuadCurveToPoint:controlPoint:-appendPath:您可以逐个组合路径.完成后,使用-closePath关闭路径.
请随意查看我的开源lib,它名为UIBezierPath-Symbol.;)
如果你想要更多的自定义路径绘图,我建议CGMutablePath.您可以根据需要创建复杂的每个路径(可以按CGPathAdd...方法组合简单路径).最后,用CGPathAddPath()它们将它们组合在一起.
void CGPathAddPath (
CGMutablePathRef path1, // The mutable path to change.
const CGAffineTransform *m, // A pointer to an affine transformation matrix, or NULL if no transformation is needed. If > specified, Quartz applies the transformation to path2 before it is added to path1.
CGPathRef path2 // The path to add.
);
Run Code Online (Sandbox Code Playgroud)
您可以像这样组合路径:
UIBezierPath *endPath = [UIBezierPath bezierPath];
[endPath appendPath:leftLine];
[endPath appendPath:rightLine];
[endPath appendPath:midLine];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9083 次 |
| 最近记录: |