open Path
open Command
open Point
open Dash
let l = [0.,0.; 1., 0.; 0., 1.]

show/hide code
let path1 = [ draw (path ~style:jLine ~scale:Num.cm l) ]

show/hide code
let path2 = [ draw (path ~style:jLine ~scale:Num.cm ~cycle:jLine l) ]

show/hide code
let path3 =
let a = -1. , -1. in
let b = 1. , -1. in
let c = 1. , 1. in
let d = -1. , 1. in
[ draw (path ~style:jLine ~scale:Num.cm ~cycle:jLine [a;b;c;d]) ;
draw (path ~scale:Num.cm [a;c]);
draw (path ~scale:Num.cm [b;d]);
]

show/hide code
let path4 =
[ draw ~pen:(Pen.scale (Num.bp 4.) Pen.circle) (path [(0.,0.)])]

show/hide code
let path5 =
let a = 0., 0. in
let b = 1., 0. in
let c = 0., 1. in
let pen = Pen.scale (Num.bp 4.) Pen.circle in
[ draw (path ~style:jLine ~scale:Num.cm ~cycle:jLine [a;b;c]) ] @
List.map (fun a -> draw ~pen (path ~scale:Num.cm [a])) [a;b;c]
let a = cmp (0., 0.)
let b = cmp (1., 0.)
let c = cmp (0., 1.)

show/hide code
let path6 =
[draw (pathp ~style:jLine ~cycle:jLine [a;b;c]) ;
draw (pathp [segment 0.5 a b ; c]) ;
draw (pathp [segment 0.5 b c ; a]) ;
draw (pathp [segment 0.5 c a ; b]) ; ]

show/hide code
let path7 =
[draw (pathp ~style:jLine [b;c;a]) ;
draw (pathp ~style:jLine [a;b]) ~color:Color.yellow; ]

show/hide code
let path8 =
[ draw (pathp [a;b]);
draw ~dashed:evenly (pathp [b;c]);
draw ~dashed:withdots (pathp [c;a]) ]

show/hide code
let path9 =
let pen = Pen.scale (Num.bp 2.) Pen.circle in
let cl = List.map Color.gray [0.8;0.6;0.4] in
List.map2
(fun (a,b) color ->
draw ~pen ~color (pathp ~style:jLine [a;b]))
[a,b;b,c;c,a] cl

show/hide code
let path10 =
[draw ~dashed:(scaled 2. evenly) (path ~scale:Num.cm [0.,0.; 3.,0.]) ;
draw ~dashed:evenly (path ~scale:Num.mm [0.,-5.; 30.,-5.]) ]

show/hide code
let path11 =
[draw ~dashed:(pattern [on (Num.bp 2.) ; off (Num.bp 3.)] )
(path ~scale:Num.cm [0.,0.; 3.,0.]) ; ]
let triangle = path ~scale:Num.cm ~style:jLine ~cycle:jLine l

show/hide code
let path12 =
[fill ~color:(Color.gray 0.8) triangle]

show/hide code
let path13 =
[ fill ~color:(Color.gray 0.8) triangle;
draw triangle]
let pen = Pen.scale (Num.bp 2.) Pen.circle

show/hide code
let path14 =
[fill ~color:(Color.gray 0.8) triangle;
draw ~pen triangle]

show/hide code
let path15 =
[ draw ~pen triangle;
fill ~color:(Color.gray 0.8) triangle]

show/hide code
let cheno11 =
let p = path ~cycle:jCurve [(0.,0.); (30.,40.); (40.,-20.); (10.,20.)] in
let pen = Pen.scale (Num.bp 1.5) Pen.circle in
[draw p;
seq
(List.map
(fun (pos, l, i) ->
dotlabel ~pos (Picture.tex l) (Path.point i p))
[`Bot, "0", 0.; `Upleft, "1", 1. ;
`Lowleft, "2", 2. ; `Top, "3", 3. ; `Left, "4", 4. ]);
draw ~pen (subpath 1.3 3.2 p)]

show/hide code
let z0 = cmp (0., 0.)
let z1 = cmp (4., 1.)
let cercle = Path.shift z0 (Path.scale (Num.cm 1.) fullcircle)
let rectangle = Path.shift z1
(path ~style:jLine ~cycle:jLine ~scale:Num.mm
[-5., -5.; 5., -5.; 5., 5.; -5., 5.])
let p = pathk
(knotlist [noDir, z0, vec (dir 150.); noDir, z1, vec (dir (-30.))])
let cheno14 =
[draw cercle;
draw rectangle ~dashed:evenly;
draw p ~dashed:(Dash.scaled 0.3 withdots);
draw_arrow (cut_before cercle (cut_after rectangle p)) ]
let _ =
List.iter (fun (name,fig) -> Metapost.emit name fig)
[ "path1", path1 ;
"path2", path2;
"path3", path3;
"path4", path4;
"path5", path5;
"path6", path6;
"path7", path7;
"path8", path8;
"path9", path9;
"path10", path10;
"path11", path11;
"path12", path12;
"path13", path13;
"path14", path14;
"path15", path15;
"cheno11", cheno11;
"cheno14", cheno14;
]
This document was generated using
caml2html