次の方法で共有


CGContext.AddCurveToPoint メソッド

定義

指定したコントロール パラメーターを使用して、現在のポイントに 3 次ベジエ曲線を追加します。

public void AddCurveToPoint (nfloat cp1x, nfloat cp1y, nfloat cp2x, nfloat cp2y, nfloat x, nfloat y);
member this.AddCurveToPoint : nfloat * nfloat * nfloat * nfloat * nfloat * nfloat -> unit

パラメーター

cp1x
nfloat

最初のコントロール ポイントの x 値。

cp1y
nfloat

最初のコントロール ポイントの y 値。

cp2x
nfloat

2 番目のコントロール ポイントの x 値。

cp2y
nfloat

2 番目のコントロール ポイントの y 値。

x
nfloat

ベジエ曲線が終了する x 値。

y
nfloat

ベジエ曲線が終了する y 値。

注釈

すべての座標は、ユーザー空間座標内にあります。

public override void Draw (RectangleF rect)
{
	base.Draw (rect);
	using (var ctxt = UIGraphics.GetCurrentContext ()) {
		var startingPoint = new PointF (100, 100);
		var controlPoint1 = new PointF (20, 100);
		var controlPoint2 = new PointF (4, 110);
		var endingPoint = new PointF (120, 120);

		ctxt.SetStrokeColor (UIColor.Red.CGColor);
		ctxt.MoveTo (startingPoint.X, startingPoint.Y);
		ctxt.AddCurveToPoint (controlPoint1.X, controlPoint1.Y, controlPoint2.X, controlPoint2.Y, endingPoint.X, endingPoint.Y);
		ctxt.StrokePath ();

		//Illustrate parameters
		ctxt.SetStrokeColor (UIColor.Black.CGColor);
		var sz = new SizeF (2, 2);
		Func<PointF,PointF> offset = (PointF pt) => new PointF(pt.X - 1, pt.Y - 1);
		ctxt.AddEllipseInRect (new RectangleF (offset(startingPoint),sz));
		ctxt.AddEllipseInRect (new RectangleF (offset(controlPoint1), sz));
		ctxt.AddEllipseInRect (new RectangleF (offset(controlPoint2), sz));
		ctxt.AddEllipseInRect (new RectangleF (offset(endingPoint), sz));
		ctxt.StrokePath();
	}
}

適用対象