Otto cycle
prologues := 2;
beginfig(1);
numeric u;
u := .4cm;
drawarrow (0, 0) -- (10u, 0);
label.bot("V", (10u, 0));
drawarrow (0, 0) -- (0, 10u);
label.lft("p", (0, 10u));
vardef arrowhead expr p =
save A,u,a,b; pair A,u; path a,b;
A := point length(p)/2 of p;
u := unitvector(direction length(p)/2 of p);
a := A{-u}..(A - ahlength*u rotated 30);
b := A{-u}..(A - ahlength*u rotated -30);
(a & reverse(a) & b & reverse(b))--cycle
enddef;
pair p, q, r, s;
p := (2u, 8u);
q := (7u, 3u);
s := p shifted -(0, 3u);
r := q shifted -(0, u);
dotlabel.lft("1", s);
drawarrow s .. p;
dotlabel.lft("2", p);
drawarrow p .. controls (((p + q)/2) shifted -(.7u, .7u)) .. q;
dotlabel.rt("3", q);
drawarrow r .. controls (((s + r)/2) shifted -(.5u, .5u)) .. s;
dotlabel.bot("4", r);
drawarrow q .. r;
currentpicture := currentpicture scaled 2;
currentpicture := currentpicture shifted -llcorner currentpicture;
endfig;
end;
Licensing
| Public domainPublic domainfalsefalse
|