iOSのベジェ曲線

https://www.jianshu.com/p/2316f0d9db65

 

1.ベジェ曲線

ソフトウェア:PaintCode:直接描画、画像生成ソフトウェアベジェ曲線

関連概念:UIBezierPathとCGPathに

方法1: - (ボイド)moveToPoint:(するCGPoint)点; //ベジェ曲線の開始点を設定し、CGPathにメソッドを対応する:CG_EXTERNボイドCGPathMoveToPoint(CGMutablePathRef __nullable経路、CONST CGAffineTransform * __nullable M、CGFloatのX、CGFloatのY)

方法2: - (ボイド)addLineToPoint:(するCGPoint)点; //線形ベジェ曲線の終了点、CGPathにメソッドを対応する:CG_EXTERNボイドCGPathAddLineToPoint(CGMutablePathRef __nullable経路、CONST CGAffineTransform * __nullable M、CGFloatのX、CGFloatのY)

関数:B(T)=(1-T)* P0の+のT *のP1(0≤T≤1)

方法3: - (ボイド)addQuadCurveToPoint:(するCGPoint)エンドポイント制御点:(するCGPoint)制御点; // 2元ベジエ曲線、及びmoveToPoint:(するCGPoint)点、一緒に使用される、ポイント(P0点)開始点としては、エンドポイント(P2点)の中点は、制御点(P1点)制御点としては、CGPathにメソッドを対応する:CG_EXTERNボイドCGPathAddQuadCurveToPoint(CGMutablePathRef __nullable経路、CONST CGAffineTransform * __ null許容M、CGFloat CPX、CGFloat CPY、CGFloatのX、CGFloatのY)

関数:B(T)=(1-T)*(1-T)* P0 +の2T *(1-T)* P1 + 1のT *のT *のP2(0≤T≤1)

 

方法4: - (ボイド)addCurveToPoint:(するCGPoint)エンドポイントcontrolPoint1:(するCGPoint)controlPoint1 controlPoint2:(するCGPoint)controlPoint2; // 3元ベジエ曲線、及びmoveToPoint:(するCGPoint)点、一緒に使用される、ポイント(P0点)出発点として、エンドポイント、エンドポイント(P3点)は、controlPoint1(P1点)とcontrolPoint2(P2点)制御点としては、CGPathにメソッドを対応する:CG_EXTERNボイドCGPathAddCurveToPoint(CGMutablePathRef __nullableパスを、CONST CGAffineTransform * __nullable M、CGFloat cp1x、CGFloat cp1y 、CGFloat cp2x、CGFloatのcp2y、CGFloatのX、CGFloatのY)

函数:B(T)=(1-T)*(1-T)*(1-T)* P0 +の3T *(1-t)は(1-T)P1 +の3T * T×(1-T) P2 +のT *のT * T *のをP3(0≤T≤1)

 

方法5: - (ボイド)addArcWithCenter:(するCGPoint)中心半径(CGFloat)半径startAngleの:(CGFloat)startAngleのendAngle:(CGFloat)endAngle時計回り:(BOOL)時計回り; //点弧を有する円を描きます、中心:中心半径:半径startAngleの:開始角度時計回り:終了角度時計方向:右回りか;

2.ベジェ曲線アニメーション+

手順:1.ベジェ曲線を作成します。

2層を作成CAShapeLayerを作成し、層は、経路に配置されたベジェ曲線経路属性、及び層のいくつかのプロパティを設定します

3.アニメーションCABasicAnimationを作成し、作成した層CAShapeLayerに追加

前記CABasicAnimation * checkAnimation = [CABasicAnimation animationWithKeyPath:「strokeEnd」@];キーパス:strokeStartとstrokeEndによってアニメーションの開始と終了点を決定するステップと、CABasicAnimationで、場合、fromValueとtoValueの領域範囲決定始点と終点がアニメーションであります

3.レイヤーマスクプロパティアプリケーション

ページ相互作用: - (ボイド)animateTransition:(ID)transitionContext、プロキシ方式で実行されます。

1.获取fromVC:のViewController * fromVC =(のViewController *)[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKe

2.获取toVC:SecondViewController * toVC =(SecondViewController *)[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]。

3.添加到containerView:のUIView * contView = [transitionContext containerView]。

[contView addSubview:toVC.view]。

4.マスクをtoVC CAShapeLayerがされて設定し、アニメーションパスとCAShapeLayerの属性を追加します。

5.アニメーションの終了時に、マスク値が除去された - (ボイド)animationDidStop:(CAAnimation *)アニメーションが終了:(BOOL)フラグ{[self.transitionContext viewControllerForKey:UITransitionContextToViewControllerKey] .view.layer.mask =ニル;}

 
 
2足の親指アップ
 
日記
 
 
 
 
 

おすすめ

転載: www.cnblogs.com/itlover2013/p/11426364.html