File:Otto Engineering Thermodynamics.png

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;