summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/examples/fequlogo.asy
blob: e53e183141910fe68fd975515588fcfb7d94611b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// A compressed version of the required data file may be obtained from:
// http://www-roc.inria.fr/gamma/download/counter.php?dir=ARCHITEC/&get_obj=uhrturm.obj.gz

import graph3;
import obj;

size(200,0);
size3(200);

settings.render=8; 

texpreamble("\usepackage[T1]{fontenc}");
texpreamble("\usepackage{ccfonts,eulervm}");

currentprojection=perspective(4,1,2);
currentlight=(4,0,2);
currentlight.background=blue;

real R=4;

triple f1(pair t) {return (R*cos(t.x),R*sin(t.x),t.y);}

draw(shift(-0.6Z)*scale3(0.66)*rotate(55,Z)*rotate(90,X)*
     obj("uhrturm.obj",orange));

surface s=surface(f1,(0,0),(2pi,2),8,8,Spline);

string lo="$\displaystyle f(x+y)=f(x)+f(y)$";
string hi="$\displaystyle F_{t+s}=F_t\circ F_s$";

real h=0.0125;

draw(surface(rotate(2)*xscale(0.32)*yscale(0.6)*lo,s,-pi/4-1.5*pi/20,0.5,h));
draw(surface(rotate(0)*xscale(-0.45)*yscale(0.3)*hi,s,0.8*pi,0.25,h),blue);

add(new void(frame f, transform3 t, picture pic, projection P) {
    draw(f,surface(invert(box(min(f,P),max(f,P)),min3(f),P),
                   new pen[] {orange,red,yellow,brown}));
  }
);