---
title: 'SkPath Overview'
linkTitle: 'SkPath Overview'
weight: 270
---
Path contains
Lines and
Curves which can be stroked or filled.
Contour is composed of a series of connected
Lines and
Curves.
Path may contain zero, one,
or more Contours. Each
Line and Curve
are described by Verb,
Points, and optional
Path_Conic_Weight.
Each pair of connected Lines and
Curves share common
Point; for instance,
Path containing two
connected Lines are described the
Path_Verb sequence:
SkPath::kMove_Verb,
SkPath::kLine_Verb,
SkPath::kLine_Verb;
and a Point sequence with
three entries, sharing the middle entry as the end of the first
Line and the start of the second
Line.
Path components
Arc,
Rect,
Round_Rect, Circle, and
Oval are composed of
Lines and
Curves with as many
Verbs
and Points required for an
exact description. Once added to
Path, these components may
lose their identity; although
Path can be inspected to
determine if it describes a single
Rect,
Oval, Round_Rect, and so
on.
### Example
Path contains a
Path_Fill_Type which determines whether
overlapping Contours form fills or holes.
Path_Fill_Type also determines whether area inside
or outside Lines and
Curves is filled.
### Example
Path is drawn filled, then stroked, then stroked and filled.
Path contents are never
shared. Copying Path by
value effectively creates a new
Path independent of the
original. Internally, the copy does not duplicate its contents until it is
edited, to reduce memory use and improve performance.
---
Contour contains one or more
Verbs,
and as many Points as are
required to satisfy Path_Verb_Array. First
Path_Verb in
Path is always
SkPath::kMove_Verb;
each
SkPath::kMove_Verb
that follows starts a new Contour.
### Example
If final Path_Verb in Contour is
SkPath::kClose_Verb,
Line connects
Path_Last_Point in Contour
with first Point. A closed
Contour, stroked, draws
Paint_Stroke_Join at
Path_Last_Point and first
Point. Without
SkPath::kClose_Verb
as final Verb, Path_Last_Point and first
Point are not connected;
Contour remains open. An open
Contour, stroked, draws
Paint_Stroke_Cap at
Path_Last_Point and first
Point.
### Example
---
Contour length is distance traveled from first
Point to
Path_Last_Point, plus, if
Contour is closed, distance from
Path_Last_Point to first
Point. Even if
Contour length is zero, stroked
Lines are drawn if
Paint_Stroke_Cap makes them visible.
### Example