diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/nulldefectanglexample.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/nulldefectanglexample.mp | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/nulldefectanglexample.mp b/Master/texmf-dist/doc/metapost/featpost/example/nulldefectanglexample.mp new file mode 100644 index 00000000000..182c6e4120e --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/nulldefectanglexample.mp @@ -0,0 +1,134 @@ +% nulldefectanglexample.mp +% L. Nobre G. +% 2012 + +input featpost3Dplus2D; + +prologues := 1; + +beginfig(1); + color po[]; + numeric ta, tb; + pen stroke; + stroke = pencircle scaled 3pt; + ta = sind(36)/cosd(36); + tb = sind(18)/cosd(18); + po1 = (1,ta,0); + po2 = (-1,ta,0); + po3 = (-1,tb,0); + po4 = (-1,-ta,0); + po5 = (0,-ta,0); + po6 = (1,-ta,0); + po7 = (1,0,0); + path frame; + frame = rp(po1)--rp(po2)--rp(po4)--rp(po6)--cycle; + unfill frame; + drawoptions( withpen stroke ); + draw frame; + drawoptions( dashed evenly ); + draw rp(black)--rp(po1); + draw rp(black)--rp(po3); + draw rp(black)--rp(po5); + draw rp(black)--rp(po7); +endfig; + +beginfig(2); + numeric parang, refdista, refdistb, auxa, auxb; + parang = 55; + refdista = conorm(po1-po3); + refdistb = 1 ++ ta; + auxa = (ta-tb)*sind(18); + auxb = (ta-tb)*cosd(18); + po7 := (cosd(parang),0,-sind(parang)); + po6 := po7+po5; + po1 := improvertex( black, refdistb, po7, ta, po3, refdista, po1 ); + po8 = po3+N(po3)*auxa; + po2 := po8+auxb*ncrossprod(po3,ccrossprod(po1,po3)); + drawoptions( withpen stroke ); + path a, b, c, d; + a = rp(black)--rp(po3)--rp(po4)--rp(po5)--cycle; + b = rp(black)--rp(po5)--rp(po6)--rp(po7)--cycle; + c = rp(black)--rp(po7)--rp(po1)--cycle; + d = rp(black)--rp(po1)--rp(po2)--rp(po3)--cycle; + unfill a; draw a; + unfill b; draw b; + unfill c; draw c; + unfill d; draw d; +endfig; + +beginfig(3); + numeric a, b, c, i, j; + a = 0.5; + b = 0.5*sqrt(3); + V1 := (b,-a,a); + V2 := (2*b,-a,0); + V3 := (b,a,a); + V4 := (2*b,a,0); + V5 := (b,a,0); + V6 := (0,1,0); + c = 6; + for j=1 upto 2: + for i=1 upto 6: + c := incr(c); + V[c] := rotvecaroundanother( j*120, V[i], blue ); + endfor; + endfor; + makeface1(1,3,7,9,13,15); + makeface2(1,2,4,3); + makeface3(3,4,5); + makeface4(3,5,6,7); + makeface5(7,6,8); + makeface6(7,8,10,9); + makeface7(9,10,11); + makeface8(9,11,12,13); + makeface9(13,12,14); + makeface10(13,14,16,15); + makeface11(15,16,17); + makeface12(15,17,18,1); + makeface13(1,18,2); + f := (5,0.9,9); + draw_invisible( false, false, white, black ); +endfig; + +beginfig(4); + numeric bsang, dista, distb, distc, distd, verdi, hordi, si, co; + color cauxa, cauxb, cauxd; + bsang = 15; + cauxa = (-1-sind(22),-1-cosd(22),1); + cauxb = (-1-cosd(22),-1-sind(22),1); + cauxd = (1+cosd(15),sind(15)-1,1); + V1 := (-1,1,1); + V2 := (-1,-1,1); + distc = conorm(V2-cauxb); + V3 := (1,-1,1); + dista = conorm(cauxa-V3); + V4 := (1,1,1); + distd = conorm(V4-cauxd); + V6 := (-1-cosd(bsang)*cosd(22),1+sind(22),1-sind(bsang)*cosd(22)); + V7 := (-1-cosd(bsang)*cosd(22),-1-sind(22),1-sind(bsang)*cosd(22)); + distb = conorm(cauxa-cauxb); + V8 := improvertex( V3, dista, V7, distb, V2, distc, cauxb-(0,0,0.5) ); + V5 := (X(V8),-Y(V8),Z(V8)); + verdi = 1-Z(V8); + hordi = Y(V8)+1; + si = verdi/(verdi++hordi); + co = hordi/(verdi++hordi); + V9 := (1+0.5*sqrt(2),-1+0.5*sqrt(2)*co,1-0.5*sqrt(2)*si); + V10 := improvertex( V9, 1, V3, 1, V4, distd, (1,-1,0) ); + V11 := (X(V10),-Y(V10),Z(V10)); + V12 := (X(V9),-Y(V9),Z(V9)); + NF := 0; + makeface1(1,2,3,4); + makeface2(1,5,6); + makeface3(1,2,7,6); + makeface4(2,7,8); + makeface5(2,3,9,8); + makeface6(3,9,10); + makeface7(3,4,11,10); + makeface8(4,11,12); + makeface9(1,5,12,4); + f := (9,2,5); + draw_invisible( false, false, white, black ); +endfig; + +end.
\ No newline at end of file |