summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Obliq.m4
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Obliq.m4')
-rw-r--r--Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Obliq.m472
1 files changed, 72 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Obliq.m4 b/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Obliq.m4
new file mode 100644
index 00000000000..0c71c6569e0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Obliq.m4
@@ -0,0 +1,72 @@
+.PS
+threeD_init
+scale = 2.54
+
+divert(-1)
+ `ProjectObliq(x,y,z,x scale,degrees)
+ oblique projection
+ arg4= x scale (default 1/2)'
+define(`ProjectObliq',`(`$2'-dnl
+(`$1')ifelse(`$4',,/2,*(`$4'))*cosd(ifelse(`$5',,obliqueangle_,(`$5'))),dnl
+`$3'-(`$1')ifelse(`$4',,/2,*(`$4'))*sind(ifelse(`$5',,obliqueangle_,(`$5'))))')
+define(`obliqueangle_',45)
+
+divert(0)dnl
+
+define(`Pr',`ProjectObliq(`$1',`$2',`$3')')
+
+ d = 2
+define(`cube',`[ # w, h, d, scale, degrees
+ define(`cubewd',ifelse(`$1',,linewid,`$1'))dnl
+ define(`cubeht',ifelse(`$2',,cubewd,`$2'))dnl
+ define(`cubedp',ifelse(`$3',,cubewd,`$3'))dnl
+ for_(0,7,1,`P`'binary_(m4x,3): \
+ Pr(ifelse(eval(m4x/4),1,cubedp,0),
+ ifelse(eval((m4x%4)/2),1,cubewd,0),
+ ifelse(eval(m4x%2),1,cubeht,0))')
+# {command "{\small"
+# for_(0,7,1,`"binary_(m4x,3)" at P`'binary_(m4x,3)')
+# command "}"
+# }
+ {"000" at P000}
+ if obliqueangle_ > 0 then {
+ line dashed from P100 to P000 chop linethick bp__ * 2 chop 0
+ line dashed from P010 to P000 chop linethick bp__ * 2 chop 0
+ line dashed from P001 to P000 chop linethick bp__ * 2 chop 0
+ line from P101 to P001
+ line to P011
+ line to P111
+ line to P101
+ line to P100
+ line to P110
+ line to P010
+ line to P011
+ line from P110 to P111
+ } else {
+ line dashed from P101 to P001 chop linethick bp__ * 2 chop 0
+ line dashed from P011 to P001 chop linethick bp__ * 2 chop 0
+ line dashed from P000 to P001 chop linethick bp__ * 2 chop 0
+ line from P100 to P101
+ line to P111
+ line to P110
+ line to P100
+ line to P000
+ line to P010
+ line to P011
+ line to P111
+ line from P010 to P110
+ }
+ ]')
+
+ Cube: cube(1,2,3)
+#
+##{arrow from Cube.P001 to 3/2 between Cube.P000 and Cube.P001; "$z$" ljust }
+##{arrow from Cube.P010 to 3/2 between Cube.P000 and Cube.P010; "$y$" below }
+##{arrow from Cube.P100 to 3/2 between Cube.P000 and Cube.P100; "$x$" ljust }
+
+ move define(`obliqueangle_',30); cube(1,2,3)
+ move define(`obliqueangle_',15); cube(1,2,3)
+ move define(`obliqueangle_',-15); cube(1,2,3)
+ move define(`obliqueangle_',-30); cube(1,2,3)
+
+.PE