manpagez: man pages & more
info mathgl
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.6.6 Mirrored surface sample

../png/mirror

C++ code

mglData a(30,40),x(30),y1(40),y2(40);
a.Modify("pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)");
x.Fill(-1,1); y1.Fill(0,1); y2.Fill(0,-1);
gr->Rotate(40,60);
gr->Light(true);
gr->Box();
gr->Surf(x,y1,a,"r"); gr->Surf(x,y2,a,"b");

MGL code

new a 30 40
modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
rotate 40 60
light on
surf a 'r'; yrange 0 1
surf a 'b'; yrange 0 -1
box

or

new a 30 40
var x 30 -1 1
var y1 40 0 1
var y2 40 0 -1
modify a 'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)'
rotate 40 60
light on
surf x y1 a 'r'
surf x y2 a 'b'
box

Pure C code

HMDT a,x,y1,y2;
a = mgl_create_data_size(30,40,1);
x = mgl_create_data_size(30,1,1);
y1 = mgl_create_data_size(40,1,1);
y2 = mgl_create_data_size(40,1,1);
mgl_data_modify(a,"pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)",0);
mgl_data_fill(x,-1.,1.,'x');
mgl_data_fill(y1,0.,1.,'x');
mgl_data_fill(y2,0.,-1.,'x');
mgl_rotate(gr,40.,60.,0.);
mgl_set_light(gr,1);
mgl_box(gr,1);
mgl_surf_xy(gr,x,y1,a,"r"); mgl_surf_xy(gr,x,y2,a,"b");
mgl_delete_data(a); mgl_delete_data(y1);
mgl_delete_data(x); mgl_delete_data(y2);

Fortran code

integer a,x,y1,y2, mgl_create_data_size
a = mgl_create_data_size(30,40,1)
x = mgl_create_data_size(30,1,1)
y1 = mgl_create_data_size(40,1,1)
y2 = mgl_create_data_size(40,1,1)
call mgl_data_modify(a,'pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)',0)
call mgl_data_fill(x,-1.,1.,'x')
call mgl_data_fill(y1,0.,1.,'x')
call mgl_data_fill(y2,0.,-1.,'x')
call mgl_rotate(gr,40.,60.,0.)
call mgl_set_light(gr,1)
call mgl_box(gr,1)
call mgl_surf_xy(gr,x,y1,a,'r')
call mgl_surf_xy(gr,x,y2,a,'b')
call mgl_delete_data(a)
call mgl_delete_data(y1)
call mgl_delete_data(x)
call mgl_delete_data(y2)

Python

a, x, y1, y2 = mglData(30,40), mglData(30), mglData(40), mglData(40);
a.Modify("pi*(1-2*x)*exp(-4*y^2-4*(2*x-1)^2)");
x.Fill(-1,1);   y1.Fill(0,1);   y2.Fill(0,-1);
gr.Rotate(40,60);       gr.Light(True);         gr.Box();
gr.Surf(x,y1,a,"r");    gr.Surf(x,y2,a,"b");

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.