diff options
Diffstat (limited to 'Build/source/utils/asymptote/examples/logo3.asy')
-rw-r--r-- | Build/source/utils/asymptote/examples/logo3.asy | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/Build/source/utils/asymptote/examples/logo3.asy b/Build/source/utils/asymptote/examples/logo3.asy index 932efaca410..93b5a331e9e 100644 --- a/Build/source/utils/asymptote/examples/logo3.asy +++ b/Build/source/utils/asymptote/examples/logo3.asy @@ -2,32 +2,40 @@ import three; size(560,320,IgnoreAspect); size3(140,80,15); -currentprojection=perspective(-3,20,10,up=Y); +currentprojection=perspective(-2,20,10,up=Y); currentlight=White; -path[] outline; - real a=-0.4; real b=0.95; real y1=-5; real y2=-3y1/2; path A=(a,0){dir(10)}::{dir(89.5)}(0,y2); -outline.push(A); -outline.push((0,y1){dir(88.3)}::{dir(20)}(b,0)); +path B=(0,y1){dir(88.3)}::{dir(20)}(b,0); real c=0.5*a; pair z=(0,2.5); -path[] text = shift(0,2)*scale(0.01,0.15)* +transform t=scale(1,15); +transform T=inverse(scale(t.yy,t.xx)); +path[] g=shift(0,1.979)*scale(0.01)*t* texpath(Label("{\it symptote}",z,0.25*E+0.169S,fontsize(24pt))); -outline.append(text); pair w=(0,1.7); -outline.push(intersectionpoint(A,w-1--w)--w); -outline.push((0,y1)--(0,y2)); -outline.push((a,0)--(b,0)); +pair u=intersectionpoint(A,w-1--w); + +real h=0.25*linewidth(); +real hy=(T*(h,h)).x; +g.push(t*((a,hy)--(b,hy)..(b+hy,0)..(b,-hy)--(a,-hy)..(a-hy,0)..cycle)); +g.push(T*((h,y1)--(h,y2)..(0,y2+h)..(-h,y2)--(-h,y1)..(0,y1-h)..cycle)); +g.push(shift(0,w.y)*t*((u.x,hy)--(w.x,hy)..(w.x+hy,0)..(w.x,-hy)--(u.x,-hy)..(u.x-hy,0)..cycle)); +real f=0.75; +g.push(point(A,0)--shift(-f*hy,f*h)*A--point(A,1)--shift(f*hy,-f*h)*reverse(A)--cycle); +g.push(point(B,0)--shift(f*hy,-f*h)*B--point(B,1)--shift(-f*hy,f*h)*reverse(B)--cycle); -for(path p : outline) - draw(extrude(p,-0.1Z),material(lightgray,shininess=1.0)); +triple H=-0.1Z; +material m=material(lightgray,shininess=1.0); -draw(path3(outline),red+linewidth(0)); +for(path p : g) + draw(extrude(p,H),m); -draw(surface(text),red,nolight); +surface s=surface(g); +draw(s,red,nolight); +draw(shift(H)*s,m); |