11.40 Sample ‘data2

MGL code:

new a 40 50 60 'exp(-x^2-4*y^2-16*z^2)'
light on:alpha on
copy b a:sinfft b 'x':subplot 5 3 0:call 'splot'
copy b a:cosfft b 'x':subplot 5 3 1:call 'splot'
copy b a:hankel b 'x':subplot 5 3 2:call 'splot'
copy b a:swap b 'x':subplot 5 3 3:call 'splot'
copy b a:smooth b 'x':subplot 5 3 4:call 'splot'
copy b a:sinfft b 'y':subplot 5 3 5:call 'splot'
copy b a:cosfft b 'y':subplot 5 3 6:call 'splot'
copy b a:hankel b 'y':subplot 5 3 7:call 'splot'
copy b a:swap b 'y':subplot 5 3 8:call 'splot'
copy b a:smooth b 'y':subplot 5 3 9:call 'splot'
copy b a:sinfft b 'z':subplot 5 3 10:call 'splot'
copy b a:cosfft b 'z':subplot 5 3 11:call 'splot'
copy b a:hankel b 'z':subplot 5 3 12:call 'splot'
copy b a:swap b 'z':subplot 5 3 13:call 'splot'
copy b a:smooth b 'z':subplot 5 3 14:call 'splot'
stop
func splot 0
title 'max=',b.max:norm b -1 1 on:rotate 70 60:box
surf3 b 0.5:surf3 b -0.5
return

C++ code:

void smgl_data2(mglGraph *gr)	// data transforms
{
	mglData a(40,50,60),b;	gr->Fill(a,"exp(-x^2-4*y^2-16*z^2)");
	gr->Light(true);		gr->Alpha(true);
	b.Set(a);	b.SinFFT("x");	gr->SubPlot(5,3,0);	splot2(gr,b);
	b.Set(a);	b.CosFFT("x");	gr->SubPlot(5,3,1);	splot2(gr,b);
	b.Set(a);	b.Hankel("x");	gr->SubPlot(5,3,2);	splot2(gr,b);
	b.Set(a);	b.Swap("x");	gr->SubPlot(5,3,3);	splot2(gr,b);
	b.Set(a);	b.Smooth("x");	gr->SubPlot(5,3,4);	splot2(gr,b);
	b.Set(a);	b.SinFFT("y");	gr->SubPlot(5,3,5);	splot2(gr,b);
	b.Set(a);	b.CosFFT("y");	gr->SubPlot(5,3,6);	splot2(gr,b);
	b.Set(a);	b.Hankel("y");	gr->SubPlot(5,3,7);	splot2(gr,b);
	b.Set(a);	b.Swap("y");	gr->SubPlot(5,3,8);	splot2(gr,b);
	b.Set(a);	b.Smooth("y");	gr->SubPlot(5,3,9);	splot2(gr,b);
	b.Set(a);	b.SinFFT("z");	gr->SubPlot(5,3,10);splot2(gr,b);
	b.Set(a);	b.CosFFT("z");	gr->SubPlot(5,3,11);splot2(gr,b);
	b.Set(a);	b.Hankel("z");	gr->SubPlot(5,3,12);splot2(gr,b);
	b.Set(a);	b.Swap("z");	gr->SubPlot(5,3,13);splot2(gr,b);
	b.Set(a);	b.Smooth("z");	gr->SubPlot(5,3,14);splot2(gr,b);
}

Sample data2