diff options
Diffstat (limited to 'Master/texmf-dist/metapost/metaobj/pstricksex3.mp')
-rw-r--r-- | Master/texmf-dist/metapost/metaobj/pstricksex3.mp | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/metaobj/pstricksex3.mp b/Master/texmf-dist/metapost/metaobj/pstricksex3.mp new file mode 100644 index 00000000000..386b76ebf9e --- /dev/null +++ b/Master/texmf-dist/metapost/metaobj/pstricksex3.mp @@ -0,0 +1,127 @@ +input metaobj + +% the black disk is small, but its bounding box is extended so that we +% get a good alignment with the empty circles + +% TCE=TC Extended +def TCE= + rebindrelative_Obj(new_Circle_("")("filled(true)","circmargin(.5mm)")) + (1.5mm,-1.5mm,1.5mm,-1.5mm) +enddef; + +% 11-12/5/2001 +beginfig(25); + setCurveDefaultOption("arrows","draw"); + setObjectDefaultOption("Tree")("vsep")(2cm); + setObjectDefaultOption("Tree")("hbsep")(2cm); + setObjectDefaultOption("Tree")("treenodevsize")(5mm); + t:=T_(Tn)(T_(Tr_(btex Player 1 etex)) + (T_(Tr_(btex Player 2 etex)) + (Tr_(btex Player 3 etex))("edge(none)"))("edge(none)"), + T_(Tc_(2mm))( + _T(Tc_(2mm))(TCE,T_(Tc_(2mm))(TCE,TCE)("hideleaves(true)")), + _T(Tc_(2mm))(TCE,T_(Tc_(2mm))(TCE,TCE)("hideleaves(true)")) + )("hbsep(2cm)"), + new_HRazor(-5cm), + TCE)("edge(none)"); + Obj(t).c=origin; + + ncbox.Obj(t)(treeroot(Obj(t))(2,1)) + (treeroot(Obj(t))(2,2)) + "linestyle(dashed evenly)", "boxsize(3mm)", + "nodesepA(5mm)", "nodesepB(5mm)", "linearc(3mm)"; + ncarcbox.Obj(t)(treeroot(Obj(t))(2,1,2)) + (treeroot(Obj(t))(2,2,2)) + "linestyle(dashed evenly)", "arcangleA(30)", + "nodesepA(5mm)", "nodesepB(5mm)","boxsize(3mm)"; + ncline.Obj(t)(treeroot(Obj(t))(2))(treeroot(Obj(t))(4)) "name(N)"; + + ObjLabel.Obj(t)(btex N etex) "labpathname(N)", "labdir(top)"; + % we add labels on edges; the standard edges of a tree are numbered 1,2, ... + % and we use |labpathid|; we must take care to give the correct objet + % as first parameter of |ObjLabel|. + ObjLabel.treepos(Obj(t))(2)(btex L etex) "labpathid(1)", "labdir(lft)"; + ObjLabel.treepos(Obj(t))(2)(btex R etex) "labpathid(2)", "labdir(rt)"; + + ObjLabel.ntreepos(Obj(t))(2,1)(btex l etex) "labpathid(1)", "labdir(lft)"; + % The previous is a shorthand for + % ObjLabel.treepos(treepos(Obj(t))(2))(1)(btex l etex) + % "labpathid(1)", "labdir(lft)"; + + ObjLabel.ntreepos(Obj(t))(2,1)(btex r etex) "labpathid(2)" + %,"laberase(true)"; + , "labdir(rt)"; + ObjLabel.ntreepos(Obj(t))(2,2)(btex l etex) "labpathid(1)", "labdir(lft)"; + ObjLabel.ntreepos(Obj(t))(2,2)(btex r etex) "labpathid(2)", "labdir(rt)"; + + ObjLabel.ntreepos(Obj(t))(2,1,2)(btex c etex) "labpathid(1)", "labdir(lft)"; + ObjLabel.ntreepos(Obj(t))(2,1,2)(btex d etex) "labpathid(2)", "labdir(rt)"; + ObjLabel.ntreepos(Obj(t))(2,2,2)(btex c etex) "labpathid(1)", "labdir(lft)"; + ObjLabel.ntreepos(Obj(t))(2,2,2)(btex d etex) "labpathid(2)", "labdir(rt)"; + + % labels on nodes: + ObjLabel.ntreepos(Obj(t))(2,1,1)(btex $(-10,10.-10)$ etex) "labcard(s)"; + % the distance between the node and the label is 1cm as defined in |ObjLabel| + ObjLabel.ntreepos(Obj(t))(2,2,1)(btex $(10,-10.0)$ etex) "labcard(s)"; + ObjLabel.ntreepos(Obj(t))(2,1,2,1)(btex $(3,8,-4)$ etex) "labcard(s)"; + ObjLabel.ntreepos(Obj(t))(2,1,2,2)(btex $(-8,3,4)$ etex) "labcard(s)"; + ObjLabel.ntreepos(Obj(t))(2,2,2,1)(btex $(4,8,-3)$ etex) "labcard(s)"; + ObjLabel.ntreepos(Obj(t))(2,2,2,2)(btex $(0,-5,0)$ etex) "labcard(s)"; + + ObjLabel.treepos(Obj(t))(4)(btex $(0,0,0)$ etex) "labcard(e)"; + % 4, because the HRazor counts for one subtree + + draw_Obj(t); + +endfig; + +% TCE=TC Extended +def TCE= + rebindrelative_Obj(new_Circle_("")("filled(true)","circmargin(.5mm)")) + (.5mm,-.5mm,.5mm,-.5mm) +enddef; + +beginfig(27); +setCurveDefaultOption("arrows","draw"); + setObjectDefaultOption("Tree")("treemode")("R"); + setObjectDefaultOption("Tree")("vbsep")(5mm); + setObjectDefaultOption("Tree")("treenodevsize")(-1); + setObjectDefaultOption("Tree")("treenodehsize")(5mm); + t:=T_(Tc)( + T_(Tc)( + _T(Tc)(TCE,TCE), + T_(Tn)(T_(Tn)(TCE)("edge(none)"))("edge(none)"), + T_(Tn)(T_(Tn)(_T(Tc)(TCE,TCE))("edge(none)"))("edge(none)"), + TCE + )("edge(none)"), + _T(Tn)(new_VFan_(2mm,1cm)("edge(none)")) + )("edge(none)","pointedfan(false)"); + + ncline.Obj(t)(treeroot(Obj(t))(1))(treeroot(Obj(t))(1,1)); + ncline.Obj(t)(treeroot(Obj(t))(1))(treeroot(Obj(t))(1,2,1,1)); + ncline.Obj(t)(treeroot(Obj(t))(1))(treeroot(Obj(t))(1,3,1,1)); + ncline.Obj(t)(treeroot(Obj(t))(1))(ntreepos(Obj(t))(1,4)); + ncline.Obj(t)(obj(Obj(t)root)) (treeroot(Obj(t))(1)); + + % we call |ncfan| because we draw a non-standard fan + ncfan.Obj(t)(obj(Obj(t)root))(ntreepos(Obj(t))(2,1))(2); + + Obj(t).c=origin; + + draw_Obj(t); + + % we call |drawfan| because we draw a non-standard fan + drawfan.Obj(t)(ntreepos(Obj(t))(2,1))(2); + +% draw ntreepos(Obj(t))(1,2,1,1).nw-- +% ntreepos(Obj(t))(1,2,1,1).ne-- +% ntreepos(Obj(t))(1,2,1,1).se-- +% ntreepos(Obj(t))(1,2,1,1).sw--cycle withcolor red; + +% draw treeroot(Obj(t))(1,3,1,1).nw-- +% treeroot(Obj(t))(1,3,1,1).ne-- +% treeroot(Obj(t))(1,3,1,1).se-- +% treeroot(Obj(t))(1,3,1,1).sw--cycle withcolor red; + +endfig; +end |