\documentclass[border=10pt]{standalone} \usepackage{lmodern} \usepackage{upgreek} \usepackage[inline]{asymptote} \begin{document} \begin{asy}[width=\the\linewidth,inline=true] import graph; import roundedpath; import math; //texpreamble("\usepackage{upgreek}"); defaultpen(fontsize(10pt)); real sc=2; unitsize(sc*1bp); // 1. bounding ellipse guide ell=(150,60)..(75,120)..(3.4,60)..(75,0)..cycle; // 2. day pen penA=rgb(0.773,0.831,0.882); pen penB=rgb(0.09,0.09,0.09); pair a=(70,60); pair b=(100,60); fill(box((0,0),(90,120)),penA); axialshade(box((0,0),(100,120)),penA,a, extenda=false,penB,b, extendb=false); // night fill(box((100,0),(150,120)),black); // sun pair sunPos=(51,107); real sunR=3; pen sunClr=rgb(0.98,0.973,0.149); pen BorderPen=rgb(0.145,0.361,0.435)+1bp; // sun beam guide sunBeam=(2.5,0)--(Cos(360/16),Sin(360/16))--(Cos(360/16),-Sin(360/16))--cycle; for(int i=0;i<8;++i){ filldraw(shift(sunPos)*rotate(360/8*i)*scale(sunR)*sunBeam,sunClr,BorderPen); } filldraw(shift(sunPos)*scale(sunR)*unitcircle,sunClr,BorderPen); // water real wave0=83; real waveAm=1.5; real waveT=16; real f(real x){return wave0+waveAm*sin(2pi/waveT*(x-5)); }; pen waveLinePen=rgb(0.329,0.533,0.675)+1.5bp; pen waterClr=rgb(0.392,0.588,0.725)+opacity(0.382); guide water=(150,0)--reverse(graph(f,0,150))--(0,0)--cycle; filldraw(water,waterClr,waveLinePen); //=== moon pen moonLight=rgb(1,1,0.965); pair[] moonCP={ (104,100), (116,102), (119,108), (106,111), (112,107), (112,105), }; guide moon=moonCP[0]..controls moonCP[1] and moonCP[2] .. moonCP[3] .. controls moonCP[4] and moonCP[5]..cycle; filldraw(moon,moonLight,BorderPen); // bottom fill(box((10,0),(150,30)),white+opacity(0.3)); // thin film pen thinFilmPenA=rgb(0.325,0.459,0.416); pen thinFilmPenB=rgb(0.357,0.514,0.478); pair[] thinFilmCP={ (9,30), (16,28), (20,27), (25,27), (34,25), (48,25), (60,24), (68,24), (89,24), (109,25), (122,25), (135,25), (138,25), (141,28), (143,30), (139,31), (134,31), (131,31), (129,31), (131,35), (130,39), (126,40), (122,41), (118,43), (114,44), (111,44), (108,43), (105,42), (103,39), (101,37), (98,35), (96,33), (93,32), (83,32), (75,31), (67,31), (63,31), (60,32), (57,36), (54,38), (51,40), (47,41), (44,42), (40,43), (36,42), (34,41), (31,39), (29,36), (26,33), (24,33), (22,33), (16,32), (13,31), }; guide thinFilm=graph(thinFilmCP,operator..)..cycle; filldraw(thinFilm,thinFilmPenB,thinFilmPenA); // === biofilm pen bioFilmPenA=rgb(0.325,0.459,0.416); pen bioFilmPenB=rgb(0.455,0.51,0.404); pair[] bioFilmCP={ (16,28), (20,27), (25,27), (34,25), (48,25), (60,24), (68,24), (89,24), (109,25), (122,25), (135,25), (138,25), (141,28), (143,30), (138,30), (130,31), (123,31), (114,33), (103,32), (99,31), (93,31), (86,30), (76,30), (68,30), (60,30), (57,30), (52,31), (43,32), (33,32), (28,31), (24,31), (19,30), (16,31), (11,30), }; guide bioFilm=graph(bioFilmCP,operator..)..cycle; filldraw(bioFilm,bioFilmPenB,bioFilmPenA); //=== left stone pen StonePenA=rgb(0.149,0.145,0.063); pen StonePenB=rgb(0.302,0.259,0.141); pair[] leftStoneCP={ (27,30), (30,29), (34,29), (38,29), (41,29), (46,29), (50,29), (54,30), (56,31), (56,33), (56,36), (55,38), (52,39), (49,40), (46,40), (42,41), (38,41), (34,41), (31,39), (29,36), (27,33), }; guide leftStone=graph(leftStoneCP,operator..)..cycle; filldraw(leftStone,StonePenB,StonePenA); //== right Stone pair[] rightStoneCP={ (100,32), (102,31), (105,31), (108,31), (111,31), (115,31), (119,31), (122,31), (125,32), (127,32), (130,33), (130,35), (129,38), (126,39), (125,40), (122,41), (120,41), (118,43), (114,43), (111,43), (107,42), (105,41), (104,39), (102,37), (101,35), }; guide rightStone=graph(rightStoneCP,operator..)..cycle; filldraw(rightStone,StonePenB,StonePenA); // ==== clip(ell); draw(ell,blue+2bp); string[] sLabel={ "P>R", "R>P", "CO_2", "O_2", "Zn^{2+}", "H_2AsO_4^{-}", "NO_3^{-}\rightarrow N_2", "MnO_x^{-}\rightarrow Mn^{2+}", "FeO_x^{-}\rightarrow Fe^{2+}", "CO_2", "O_2", "Zn^{2+}", "H_2AsO_4^{-}", "NH_4^{+}\rightarrow NO_3^{-}", "Mn^{2+}\rightarrow MnO_x", "Fe^{2+}\rightarrow FeO_x", "Fe^{3+}\rightarrow Fe^{2+}", "DOC\rightarrow DIC", "\mathit{biofilm}", }; pair[] labelPos={ (42,35), (115,37), (90,64), (140,64), (104,59), (122,58), (113,24), (106,17), (99,11), (12,64), (72,64), (25,56), (62,49), (42,21), (51,15), (61,9), (37,77), (36,72), (74,27), }; pen[] labelClr={ white, white, white, white, white, white, white, white, white, black, black, black, black, black, black, black, black, black, black, }; for(int i=0;i}; for(int i=0;i Source: TeX.SE