summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost/metaobj/pstricksex3.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/metapost/metaobj/pstricksex3.mp')
-rw-r--r--Master/texmf-dist/metapost/metaobj/pstricksex3.mp127
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