import graph_pi; unitsize(x=3cm,y=3cm); // All marks will have this size. Default=sqrt(2)*dotsize(currentpen); graphmarksize=4mm; real f(real x){return sin(x);}; path Cf=graph(f, .5, 2); transform T=shift((0,-.5)); // --------------------------------- // * definition of ArcMarkerExtrem * // marker ArcMarkerExtrem(real radius=graphmarksize(), real angle=180, // bool begin=true, bool end=true, // pen p=currentpen, bool put=Above) draw(Cf, ArcMarkerExtrem()); draw(T*Cf, red, ArcMarkerExtrem(angle=270, begin=false)); draw(T^2*Cf, blue, ArcMarkerExtrem(radius=-graphmarksize, blue)); // ---------------------------------- // * Definition of Hookmarkerextrem * // marker HookMarkerExtrem(real height=graphmarksize(), real width=height/2, // bool begin=true, bool end=true, // pen p=currentpen, bool put=Above) draw(T^3*Cf,HookMarkerExtrem);//Without brackets values returns to default draw(T^4*Cf, green, HookMarkerExtrem(height=2*graphmarksize, width=-graphmarksize*2,green)); // ------------------------------------ // * Definition of CircleMarkerExtrem * // marker CircleMarkerExtrem(real radius=graphmarksize(), real angle=90, // bool begin=true, bool end=true, // pen p=currentpen, filltype filltype=NoFill, // bool put=Above) draw(T^5*Cf, green, CircleMarkerExtrem(green)); draw(T^6*Cf, green+blue, CircleMarkerExtrem(radius=graphmarksize,filltype=FillDraw(blue),p=2mm+green+blue));