diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/example/conoscopy.mp')
-rw-r--r-- | Master/texmf-dist/doc/metapost/featpost/example/conoscopy.mp | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/example/conoscopy.mp b/Master/texmf-dist/doc/metapost/featpost/example/conoscopy.mp new file mode 100644 index 00000000000..880c9a0bc46 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/example/conoscopy.mp @@ -0,0 +1,224 @@ +% conoscopy.mp +% L. Nobre G. +% 2013 + +input featpost3Dplus2D; + +verbatimtex \documentclass{article}\begin{document} etex + +beginfig(1); + f := (6,5,5); + Spread := 125; + numeric maja, raya, angphi, angthe, decl, valy, valz, rectsiz; + color majav, aphiv, aphip, majbv, perpv, perpvl; + maja = 0.72; + raya = 0.5; + angphi = 15; + angthe = 30; + rectsiz = 0.06; + majav = (0,0,maja); + aphiv = raya*(cosd(angphi),sind(angphi),0); + aphip = raya*(sind(angphi),-cosd(angphi),0); + majbv = planarrotation( majav, aphip, angthe ); + perpv = ncrossprod(majbv,aphiv); + decl = Z(perpv)/(Y(perpv)++X(perpv)); + valy = maja*raya/((decl*raya)++maja); + valz = valy*decl; + if angthe>90: valy:=-valy; fi; + perpv := blue*valz-N(aphip)*valy; + perpvl = maja*N(perpv); + spheroid( black, majav, raya ); + drawoptions( dashed (withdots scaled 0.25) ); + cartaxes( 1, 1, 1 ); + draw rigorouscircle( black, blue, raya ); + draw rp(black)--rp(-aphiv); + draw rp(black)--rp(-majbv); + %draw rp(black)--rp(-majav); + %draw rp(black)--rp(-aphip); + %draw rp(black)--rp(-perpv); + draw ellipticpath( black, majbv, aphiv ); + drawoptions(); + drawarrow rp((raya,0,0))--rp((1,0,0)); + drawarrow rp((0,raya,0))--rp((0,1,0)); + drawarrow rp(majav)--rp((0,0,1)); + drawoptions( withpen pencircle scaled 1.7pt withcolor 0.65blue ); + drawarrow rp(black)--rp(aphiv); + drawarrow rp(black)--rp(majbv); + %draw rp(black)--rp(majav); + %drawarrow rp(black)--rp(aphip); + drawarrow rp(black)--rp(perpvl); + drawoptions( withpen pencircle scaled 1.3pt ); + draw subpath (-1,15) of ellipticpath( black, majbv, aphiv ) dashed evenly; + %draw ellipticpath( black, aphip, majav ) dashed evenly; + % draw ellipticpath( black, green, 2*blue ) dashed evenly; + drawoptions(); + squareangline( perpv, aphiv, black, rectsiz); + squareangline( perpv, majbv, black, rectsiz); + squareangline( majbv, aphiv, black, rectsiz); + angline(majav, perpv, black, maja-raya, btex $\theta$ etex)(rt); + pickup pencircle scaled 3.6pt; + draw rp(-aphiv); %label.bot("aphiv",rp(aphiv)); + draw rp(-majbv); %label.lft("majbv",rp(majbv)); + %draw rp(majav); label.rt("majav",rp(majav)); + %draw rp(-aphip); label.rt("aphip",rp(aphip)); + draw rp(perpv); %label.rt("perpv",rp(perpvl)); + label.llft(btex $\vec{n}^{\prime\prime}$ etex,rp(aphiv)); + label.ulft(btex $\vec{n}^{\prime}$ etex,rp(majbv)); + label.top(btex $\vec{p}$ etex,rp(perpvl)); +endfig; + +beginfig(2); + f := (6,4,3); + Spread := 125; + numeric maja, raya, angphi, angthe, pes; + color majav, aphiv, aphip, majbv; + path ell; + maja = 0.82; + raya = 0.5; + angphi = -15; + angthe = 55; + pes = 1.3pt; + drawoptions( withpen pencircle scaled pes ); + majav = (0,0,maja); + aphiv = raya*(cosd(angphi),sind(angphi),0); + aphip = raya*(sind(angphi),-cosd(angphi),0); + majbv = planarrotation( majav, aphip, angthe ); + spheroid( black, majav, raya ); + ell = ellipticpath( black, majbv, aphiv ); + draw subpath (3,20) of ell; + drawoptions( withpen pencircle scaled pes dashed (withdots scaled 0.42) ); + draw rigorouscircle( black, blue, raya ); + draw rp(aphip)--rp(-aphip); + draw rp(aphiv)--rp(-aphiv); + draw rp(majbv)--rp(-majbv); + draw ell; +endfig; + +beginfig(3); %%%%%%%%%%%%%%%% don't change the parameters... %%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% and forget this (it is wrong). %%%%%%%%%%%% + f := (6,4,7); + Spread := 125; + numeric maja, raya, angphi, angthe, pes, decl; + numeric valy, valz, begp, endp, rectsiz; + color majav, aphiv, aphip, majbv, majcv, perpv, perqv; + path ell, fll, cir; + maja = 0.82; + raya = 0.5; + angphi = 17; + angthe = 82; + pes = 1.3pt; + begp = 14; + endp = 18; + rectsiz = 0.08; + drawoptions( withpen pencircle scaled pes ); + majav = (0,0,maja); + aphiv = raya*(cosd(angphi),sind(angphi),0); + aphip = raya*(sind(angphi),-cosd(angphi),0); + majbv = planarrotation( majav, aphip, angthe ); + majcv = planarrotation( majav, -aphip, angthe ); + perpv = ncrossprod(majbv,aphiv); + decl = Z(perpv)/(Y(perpv)++X(perpv)); + valy = maja*raya/((decl*raya)++maja); + valz = valy*decl; + if angthe>90: valy:=-valy; fi; + perpv := blue*valz-N(aphip)*valy; + perqv = (-X(perpv),-Y(perpv),Z(perpv)); + spheroid( black, majav, raya ); + squareangline( -majbv, perpv, black, rectsiz); + squareangline( -majcv, perqv, black, rectsiz); + drawoptions( withpen pencircle scaled 1.095pes ); + cir = spatialhalfcircle(black, majav, raya, true ); + undraw subpath (0,0.9*(length cir)) of cir; + ell = ellipticpath( black, majbv, aphiv ); + fll = ellipticpath( black, majcv, aphiv ); + drawoptions( withpen pencircle scaled pes dashed (withdots scaled 0.42) ); + draw ellipticpath( black, majav, aphip ); + draw rp(aphiv)--rp(-aphiv); + draw rp(majbv)--rp(-majbv); + draw rp(majcv)--rp(-majcv); + drawoptions( withpen pencircle scaled 2pes ); + draw subpath (begp,endp) of fll withcolor blue; + draw ell withcolor red; + draw subpath (endp-36, begp) of fll withcolor blue; + drawarrow rp(black)--rp(perpv) withcolor red; + drawarrow rp(black)--rp(perqv) withcolor blue; +endfig; + +beginfig(4); + f := (6,4,7); + Spread := 40; + numeric axa, axb, axc; + color d[]; + axa = 2.618; + axb = 1.618; + axc = 1.0; + d1 = (axa,0,0); + d2 = (0,axb,0); + d3 = (0,0,axc); + draw ellipticpath(black,d1,d2); + draw ellipticpath(black,d1,d3); + draw ellipticpath(black,d2,d3); + drawarrow rp(black)--rp(d1); + drawarrow rp(black)--rp(d2); + drawarrow rp(black)--rp(d3); + draw ellipsoid(black,d1,d2,d3) withpen pencircle scaled 2.5pt withcolor blue; +endfig; + +beginfig(5); + f := (4,3,6.5); + Spread := 100; + numeric axa, axb, axc, vz, vy; + color va, vb, d[]; + axa = 0.505; + axb = 0.495; + axc = 0.82; + d1 = (axa,0,0); + d2 = (0,axb,0); + d3 = (0,0,axc); + vy = axb*(axc+-+axa)/(axc+-+axb); + vz = axa+-+vy; + va = (0,vy,vz); + vb = (0,-vy,vz); + drawarrow rp(black)--rp(d2); + draw ellipticpath(black,d1,va) withcolor red; + draw ellipticpath(black,d1,vb) withcolor green; + draw ellipticpath(black,d2,d3) dashed withdots scaled 0.333; + draw rp(black)--rp(-d1) dashed withdots scaled 0.333; + drawarrow rp(black)--rp(va) withcolor red; + drawarrow rp(black)--rp(vb) withcolor green; + draw rp(black)--rp(-va) dashed withdots scaled 0.333 withcolor red; + draw rp(black)--rp(-vb) dashed withdots scaled 0.333 withcolor green; + draw ellipsoid(black,d1,d2,d3) withpen pencircle scaled 2pt withcolor blue; + drawarrow rp(black)--rp(d3); + drawarrow rp(black)--rp(d1); + draw subpath (0,9) of ellipticpath(black,d1,d2); + draw subpath (0,9) of ellipticpath(black,d1,d3); + draw subpath (0,9) of ellipticpath(black,d2,d3); + labeloffset := 1pt; + label.lrt(btex $n_\alpha$ etex,rp(d2)); + label.bot(btex $n_\beta$ etex,rp(d1)); + label.top(btex $n_\gamma$ etex,rp(d3)); + label.rt(btex $n_\beta$ etex,rp(va)); + label.bot(btex $n_\beta$ etex,rp(vb)); + color perpv, perqv; + numeric decl, valy, valz, fact; + fact = 1.55; + perpv = ncrossprod(d1,va); + decl = Z(perpv)/Y(perpv); + valy = axc*axb/((decl*axb)++axc); + valz = -valy*decl; + perpv := blue*valz-green*valy; + perqv := blue*valz+green*valy; + drawarrow rp(black)--rp(fact*perpv) withcolor red; + drawarrow rp(black)--rp(fact*perqv) withcolor green; + draw rp(perpv) withpen pencircle scaled 2pt withcolor red; + draw rp(perqv) withpen pencircle scaled 2pt withcolor green; + label.lft(btex OA etex,rp(fact*perpv)); + label.rt(btex OA etex,rp(fact*perqv)); +endfig; + + +verbatimtex \end{document} etex + +end; + |