Create an immutable path of an ellipse.


CGPathRef CGPathCreateWithEllipseInRect(CGRect rect, const CGAffineTransform *transform);



The rectangle that bounds the ellipse.


A pointer to an affine transformation matrix, or NULL if no transformation is needed. If specified, Core Graphics applies the transformation to the ellipse before it is added to the path.

Return Value

A new, immutable path. You are responsible for releasing this object.


This is a convenience function that creates a path of an ellipse. Using this convenience function is more efficient than creating a mutable path and adding an ellipse to it.

The ellipse is approximated by a sequence of Bézier curves. Its center is the midpoint of the rectangle defined by the rect parameter. If the rectangle is square, then the ellipse is circular with a radius equal to one-half the width (or height) of the rectangle. If the rect parameter specifies a rectangular shape, then the major and minor axes of the ellipse are defined by the width and height of the rectangle.

The ellipse forms a complete subpath of the path—that is, the ellipse drawing starts with a move-to operation and ends with a close-subpath operation, with all moves oriented in the clockwise direction. If you supply an affine transform, then the constructed Bézier curves that define the ellipse are transformed before they are added to the path.

See Also

Creating and Managing Paths


Creates a mutable graphics path.


Create an immutable path of a rectangle.


Create an immutable path of a rounded rectangle.


Creates an immutable copy of a graphics path.


Creates an immutable copy of a graphics path transformed by a transformation matrix.


Creates a dashed copy of another path.


Creates a stroked copy of another path.


Creates a mutable copy of an existing graphics path.


Creates a mutable copy of a graphics path transformed by a transformation matrix.


Decrements the retain count of a graphics path.


Increments the retain count of a graphics path.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software