The folium of Descartes in parametric form with Asymptote (pun intended):

// file fod.asy
//
// to get fod.pdf, run `asy -f pdf fod.asy`
//
size(8cm);
import graph;
import fontsize;
defaultpen(fontsize(9pt));
texpreamble("\usepackage{lmodern}");
pen curvepen=darkblue+0.8bp;
pen linepen=darkred+0.8bp;
pen fillpen=orange+opacity(0.5);
real
xmin=-20, xmax=-xmin,
ymin=-20, ymax=-ymin;
xaxis(xmin,xmax,RightTicks(Step=10,step=5,OmitTick(0)));
yaxis(ymin,ymax, LeftTicks(Step=10,step=5,OmitTick(0)));
real a=10;
real r(real t){return 3*a*sin(t)*cos(t)/(sin(t)^3+cos(t)^3);};
real tmin=-0.16pi, tmax=pi/2-tmin;
guide
loop=polargraph(r,0,pi/2)--cycle,
curve=polargraph(r,tmin,tmax);
fill(loop, fillpen);
draw(curve,curvepen);
pair
p=point(curve,0),
q=point(curve,length(curve));
draw((p.x,-p.x-a)--(-q.y-a,q.y),linepen);
A little more advanced example:

// file fodsp.asy
//
// to get fodsp.pdf, run `asy -f pdf fodsp.asy`
//
size(8cm);
import graph;
import fontsize; defaultpen(fontsize(9pt));
texpreamble("\usepackage{lmodern}");
pen[] fillpen={
red, orange, yellow, green, lightblue, blue, darkblue
};
real
xmin=0, xmax=20,
ymin=0, ymax=20;
xaxis(xmin,xmax,RightTicks(Step=10,step=5));
yaxis(ymin,ymax, LeftTicks(Step=10,step=5));
real ra(real t, real a){return 3*a*sin(t)*cos(t)/(sin(t)^3+cos(t)^3);};
real r(real);
guide loop;
real a, a0=10, da=1;
int n=fillpen.length;
real t; pair p;
a=a0;
for(int i=0;i<n;++i){
r=new real(real t){return ra(t,a);};
loop =polargraph(r,0,pi/2)--cycle;
filldraw(loop, 0.7fillpen[i]+0.3white,fillpen[i]);
t=atan(2^(1/3));
p=r(t)*(cos(t),sin(t));
unfill(circle(p,0.7));
label("$"+string(a)+"$",p);
a-=da;
}
label("$r(\theta)=\displaystyle"
+"\frac{3 a \sin\theta\cos\theta}{\sin^3\theta+\cos^3\theta}$, "
+"$\theta=[0,\frac\pi2]$, "
+"$a="+string(a0-(n-1)*da)+"$--$"+string(a0)+"$"
,((xmin+xmax)/2,ymax),S);
shipout(bbox(paleyellow,Fill));
algebraic=true-->algebraicanddimen=middle-->dimen=m. Also, blank lines inpspictureenvironments are not a good idea. – Svend Tveskæg Jan 25 '15 at 16:52