provide a useful result. These can result in two different situations:
- Zero-length "on" segments set in [cairo.context.Context.setDash]. If the cap
style is [cairo.types.LineCap.Round] or [cairo.types.LineCap.Square] then these segments will be drawn as circular dots or squares respectively. In the case of [cairo.types.LineCap.Square], the orientation of the squares is determined by the direction of the underlying path.
- A sub-path created by [cairo.context.Context.moveTo] followed by either a
[cairo.context.Context.closePath] or one or more calls to [cairo.context.Context.lineTo] to the same coordinate as the [cairo.context.Context.moveTo]. If the cap style is [cairo.types.LineCap.Round] then these sub-paths will be drawn as circular dots. Note that in the case of [cairo.types.LineCap.Square] a degenerate sub-path will not be drawn at all, (since the correct orientation is indeterminate).
In no case will a cap style of [cairo.types.LineCap.Butt] cause anything to be drawn in the case of either degenerate segments or sub-paths.