blob: 31248fccfa578deaaee5c61dfcd4ebe4ab51084c [file] [log] [blame]
Summary of MVG Primitives and Syntax
====================================
MVG ignores all white-space between commands. This allows
multiple MVG commands per line. It is common convention to
terminate each MVG command with a new line to make MVG easier
to edit and read. This syntax description uses indentation in
MVG sequences to aid with understanding. Indentation is
supported but is not required.
Metafile wrapper syntax (to support stand-alone MVG files)
----------------------------------------------------------
push graphic-context
viewbox 0 0 width height
[ any other MVG commands ]
pop graphic-context
Pattern syntax (saving and restoring context)
---------------------------------------------
push pattern id x,y width,height
push graphic-context
[ drawing commands ]
pop graphic-context
pop pattern
an example is (%s is a identifier string)
push defs
push pattern %s 10,10 20,20
push graphic-context
fill red
rectangle 5,5 15,15
pop graphic-context
push graphic-context
fill green
rectangle 10,10 20,20
pop graphic-context
pop pattern
pop defs
For image tiling use
push pattern id x,y width,height
image Copy ...
pop pattern
Note you can use the pattern for either the fill or stroke like
stroke url(#%s)
or
fill url(#%s)
Clip-path syntax
----------------
The clip path defines a clipping area, where only the contained
area will be drawn upon. Areas outside of the clipping area are
masked.
push defs
push clip-path %s
push graphic-context
rectangle 10,10 20,20
pop graphic-context
pop clip-path
pop defs
clip-path url(#%s)
Individual Drawing Primitives
=============================
affine sx,rx,ry,sy,tx,ty
arc x0,y0 x1,y1 a0,a1
bezier x0,y0 ... xn,yn
circle originX,originY perimX,perimY
clip-path url(#%s) (%s is the name of the clip path)
clip-rule (evenodd|nonzero)
clip-units (userSpace|userSpaceOnUse|objectBoundingBox)
color x,y (point|replace|floodfill|filltoborder|reset)
decorate (none|underline|overline|line-through)
ellipse centerX,centerY radiusX,radiusY arcStart,arcEnd
fill colorspec
fill-opacity opacity[%]
fill-rule (evenodd|nonzero)
font fontname
font-family familyname (e.g. "helvetica")
font-size pointsize
font-stretch (all|normal|ultra-condensed|extra-condensed|condensed|
semi-condensed|semi-expanded|expanded|extra-expanded|
ultra-expanded)
font-style (all|normal|italic|oblique)
font-weight (all|normal|bold|100|200|300|400|500|600|700|800|900)
gradient-units (userSpace|userSpaceOnUse|objectBoundingBox)
gravity (NorthWest|North|NorthEast|West|Center|East|SouthWest|
South|SouthEast)
image (Add|Atop|Bumpmap|Clear|CopyBlue|CopyGreen|CopyOpacity|CopyRed|
Copy|Difference|In|Minus|Multiply|Out|Over|Plus|Subtract|Xor)
dest_x,dest_y dest_width,dest_height 'filename'
line startX,startY endX,endY
matte x,y (point|replace|floodfill|filltoborder|reset)
offset ???
opacity value[%]
path 'SVG-compatible path arguments'
point x,y
polygon x1,y1, x2,y2, x3,y3, ..., xN,yN
polyline x1,y1, x2,y2, x3,y3, ..., xN,yN
pop clip-path
pop defs
pop gradient
pop graphic-context
pop pattern
push clip-path %s (%s is the name of the clip path)
push defs
push gradient id linear x1,y1 x2,y2
push gradient id radial cx,cy fx,fy r
push graphic-context
push pattern id x,y width,height
rectangle upperLeftX,upperLeftY lowerRightX,lowerRightY
rotate angle
roundrectangle upperLeftX,upperLeftY lowerRightX,lowerRightY cornerWidth,cornerHeight
scale x,y
skewX angle
skewY angle
stop-color colorspec offset
stroke colorspec
stroke-antialias truth-value (0 or 1)
stroke-dasharray (none|comma-delimited-numeric-list)
stroke-dashoffset dashoffset
stroke-linecap (butt|round|square)
stroke-linejoin (butt|miter|round|square)
stroke-miterlimit limit
stroke-opacity opacity[%]
stroke-width linewidth
text x,y "some text"
text-antialias (0|1)
text-undercolor colorspec
translate x,y
viewbox x1 y1 x1 y2 (e.g. "viewbox 0 0 640 480")