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

9.6.5 Several light sample

../png/several_light

C++ code

mglData a(50,40);
a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))");
gr->Rotate(40,60);
gr->Light(true);
gr->Light(1,mglPoint(0,1,0),'c');
gr->Light(2,mglPoint(1,0,0),'y');
gr->Light(3,mglPoint(0,-1,0),'m');
gr->Box();
gr->Surf(a,"h");

MGL code

new a 50 40
modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))'
rotate 40 60
light on
light 1 0 1 0 'c'
light 2 1 0 0 'y'
light 3 0 -1 0 'm'
box
surf a 'h'

Pure C code

HMDT a = mgl_create_data_size(50,40,1);
mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
mgl_rotate(gr,40.,60.,0.);
mgl_set_light(gr,1);
mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5);
mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5);
mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5);
mgl_box(gr,1);
mgl_surf(gr,a,"h");
mgl_delete_data(a);

Fortran code

integer a, mgl_create_data_size
a = mgl_create_data_size(50,40,1);
call mgl_data_modify(a,"0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))",0);
call mgl_rotate(gr,40.,60.,0.)
call mgl_set_light(gr,1)
call mgl_add_light_rgb(gr,1,0.,1.,0.,1, 0.,1.,1.,0.5)
call mgl_add_light_rgb(gr,2,1.,0.,0.,1, 1.,1.,0.,0.5)
call mgl_add_light_rgb(gr,3,0.,-1.,0.,1, 1.,0.,1.,0.5)
call mgl_box(gr,1)
call mgl_surf(gr,a,'h')
call mgl_delete_data(a)

Python

a = mglData(50,40);
a.Modify("0.6*sin(2*pi*x)*sin(3*pi*y)+0.4*cos(3*pi*(x*y))");
gr.Rotate(40,60);       gr.Light(True);
gr.AddLight(1,0,1,0,"c");
gr.AddLight(2,1,0,0,"y");
gr.AddLight(3,0,-1,0,"m");
gr.Box();
gr.Surf(a,"h")

© manpagez.com 2000-2024
Individual documents may contain additional copyright information.