Example of curve detect.
MGL code:
subplot 1 1 0 '':title 'Detect sample' new a 200 100 'exp(-30*(y-0.5*sin(pi*x))^2-rnd/10)+exp(-30*(y+0.5*sin(pi*x))^2-rnd/10)+exp(-30*(x+y)^2-rnd/10)' ranges 0 a.nx 0 a.ny:box alpha on:crange a:dens a detect r a 0.1 5 plot r(0) r(1) '.'
C++ code:
void smgl_detect(mglGraph *gr) { mglData a(200, 100); gr->Fill(a,"exp(-30*(y-0.5*sin(pi*x))^2-rnd/10)+exp(-30*(y+0.5*sin(pi*x))^2-rnd/10)+exp(-30*(x+y)^2-rnd/10)"); gr->SubPlot(1,1,0,""); if(big!=3) gr->Title("Detect sample"); gr->SetRanges(0,a.nx,0,a.ny); gr->SetRange('c',a); gr->Alpha(true); gr->Box(); gr->Dens(a); mglData r(a.Detect(0.1,5)); gr->Plot(r.SubData(0), r.SubData(1), "."); }