<!--
{
  "availability" : [
    "iOS: 7.0.0 -",
    "iPadOS: 7.0.0 -",
    "macCatalyst: -",
    "macOS: 10.9.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreGraphics",
  "identifier" : "/documentation/CoreGraphics/CGContext/addCurve(to:control1:control2:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Core Graphics",
      "CoreGraphics"
    ],
    "preciseIdentifier" : "s:So12CGContextRefa12CoreGraphicsE8addCurve2to8control18control2ySo7CGPointV_A2ItF"
  },
  "title" : "addCurve(to:control1:control2:)"
}
-->

# addCurve(to:control1:control2:)

Adds a cubic Bézier curve to the current path, with the specified end point and control points.

```
func addCurve(to end: CGPoint, control1: CGPoint, control2: CGPoint)
```

## Parameters

`end`

The point, in user space coordinates, at which to end the curve.

`control1`

The first control point of the curve, in user space coordinates.

`control2`

The second control point of the curve, in user space coordinates.

## Discussion

This method constructs a curve starting from the path’s current point and ending at the specified end point, with curvature defined by the two control points. After this method appends that curve to the current path, the end point of the curve becomes the path’s current point.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)