[Table of Contents] [docx version]

VML Reference Material - VML

clippath (Shape Clipping Path)

This element specifies the path of the clipping polygon for the shape.

[Example:

<v:rect ... wrapcoords="-207 -433 -207 21925 21807 21925 21807 -433 -207 -433" o:clip="t" o:cliptowrap="t">

<o:clippath o:v="m-207,-433r,22358l21807,21925r,-22358l-207,-433xe"/>

</v:rect>

end example]

Parent Elements

arc6.1.2.1); background2.2.1); curve6.1.2.3); group6.1.2.7); hdrShapeDefaults2.15.1.50); image6.1.2.10); line6.1.2.12); object2.3.3.19); oval6.1.2.13); pict2.3.3.21); pict2.9.23); polyline6.1.2.15); rect6.1.2.16); roundrect6.1.2.17); shape6.1.2.19); shapeDefaults2.15.1.79); shapetype6.1.2.20)

 

Attributes

Description

v (Path Definition)

Specifies a string containing the commands that define the shape's path. This value consists of commands followed by zero or more parameters. Default is no value.

 

The following rules apply to path strings:

Commas or spaces delimit parameters for each command.  Both "m 0,0" and "m0 0" are acceptable.

A parameter that is omitted using commas is treated as having a value of zero. Thus, "c 10,10,0,0,25,13" and "c 10,10,,,25,13" are equivalent.

Parameterized paths are also allowed. In this case, the shape must also have a formulas element (§6.1.2.6) with a list of formulas that are substituted into the path using the @ symbol followed by the number of the formula. The adj property of the shape contains the input parameters for these formulas.  For example, "moveto @1@4".   The evaluations of the formulas are substituted into the appropriate positions.  Note that @ also serves as a delimiter.

 

The allowed commands are given below. An asterisk (*) indicates that the command is allowed to be repeated. For the qb command, the controlpoint parameter is also allowed to be repeated.

 

Command

Name

Parameters

Description

m

moveto

2

Start a new sub-path at the given (x,y) coordinate.

l

lineto

2*

Draw a line from the current point to the given (x,y) coordinate which becomes the new current point. Specifying a number of coordinate pairs forms a polyline.

c

curveto

6*

Draw a cubic bézier curve from the current point to the coordinate given by the final two parameters. The control points are given by the first four parameters.

x

close

0

Close the current sub-path by drawing a straight line from the current point to the original moveto point.

e

end

0

End the current set of sub-paths. A given set of sub-paths (as delimited by end) is filled. Subsequent sets of sub-paths are filled independently and superimposed on existing ones.

t

rmoveto

2*

Start a new sub-path at a coordinate relative to the current point, cp (cpx+x, cpy+y).

r

rlineto

2*

Draw a line from the current point to the given relative coordinate (cpx+x, cpy+y).

v

rcurveto

6*

Cubic bézier curve using the given coordinate relative to the current point.

nf

nofill

0

The current set of sub-paths (delimited by e) will not be filled.

ns

nostroke

0

The current set of sub-paths (delimited by e) will not be stroked.

ae

angleellipseto

6*

Draws a segment of an ellipse as described using these parameters. A straight line is drawn from the current point to the start point of the segment. The parameters are: center (x,y), size(w,h), start angle, end angle.

al

angleellipse

6*

Same as angleellipseto except that there is an implied moveto the starting point of the segment.

at

arcto

8*

A segment of the ellipse is drawn which starts at the angle defined by the start radius vector and ends at the angle defined by the end vector. A straight line is drawn from the current point to the start of the arc. The arc is always drawn in a counterclockwise direction. The parameters are: left, top, right, bottom, start(x,y), end(x,y). The first four values define the bounding box of an ellipse. The last four define two radial vectors.

ar

arc

8*

Same as arcto except there is an implied moveto the start point of the arc.

wa

clockwisearcto

8*

Same as arcto but the arc is drawn in a clockwise direction.

wr

clockwisearc

8*

Same as arc but the arc is drawn in a clockwise direction

qx

ellipticalqaudrantx

2*

A quarter ellipse is drawn from the current point to the given end point. The elliptical segment is initially tangential to a line parallel to the x-axis. (i.e. the segment starts out horizontal). The parameters are: end(x,y).

qy

ellipticalquadranty

2*

Same as ellipticalquadrantx except that the elliptical segment is initially tangential to a line parallel to the y-axis (i.e. the segment starts out vertical).

qb

quadraticbezier

2+2*

Defines one or more quadratic bézier curves by means of control points and an end point.  Intermediate (on-curve) points are obtained by interpolation between successive control points as in the OpenType font specification.  The sub-path need not be started in which case the sub-path will be closed.  In this case the last point of the sub-path defines the start point of the quadratic bézier. The parameters are: controlpoint(x,y)*, end(x,y).

 

 

The possible values for this attribute are defined by the XML Schema string datatype.

The following XML Schema fragment defines the contents of this element:

<complexType name="CT_ClipPath">

   <attribute name="v" type="xsd:string" use="required" form="qualified"/>

</complexType>