| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
2.5 1D samples
This section is devoted to visualization of 1D data arrays. 1D means the data which depend on single index (parameter) like curve in parametric form {x(i),y(i),z(i)}, i=1...n. Most of samples will use the same data for plotting. So, I put its initialization in separate function
void mgls_prepare1d(mglData *y, mglData *y1=0, mglData *y2=0, mglData *x1=0, mglData *x2=0)
{
register long i,n=50;
if(y) y->Create(n,3);
if(x1) x1->Create(n); if(x2) x2->Create(n);
if(y1) y1->Create(n); if(y2) y2->Create(n);
mreal xx;
for(i=0;i<n;i++)
{
xx = i/(n-1.);
if(y)
{
y->a[i] = 0.7*sin(2*M_PI*xx) + 0.5*cos(3*M_PI*xx) + 0.2*sin(M_PI*xx);
y->a[i+n] = sin(2*M_PI*xx);
y->a[i+2*n] = cos(2*M_PI*xx);
}
if(y1) y1->a[i] = 0.5+0.3*cos(2*M_PI*xx);
if(y2) y2->a[i] = 0.3*sin(2*M_PI*xx);
if(x1) x1->a[i] = xx*2-1;
if(x2) x2->a[i] = 0.05+0.03*cos(2*M_PI*xx);
}
}
or using C functions
void mgls_prepare1d(HMDT y, HMDT y1=0, HMDT y2=0, HMDT x1=0, HMDT x2=0)
{
register long i,n=50;
if(y) mgl_data_create(y,n,3,1);
if(x1) mgl_data_create(x1,n,1,1);
if(x2) mgl_data_create(x2,n,1,1);
if(y1) mgl_data_create(y1,n,1,1);
if(y2) mgl_data_create(y2,n,1,1);
mreal xx;
for(i=0;i<n;i++)
{
xx = i/(n-1.);
if(y)
{
mgl_data_set_value(y, 0.7*sin(2*M_PI*xx) + 0.5*cos(3*M_PI*xx) + 0.2*sin(M_PI*xx), i,0,0);
mgl_data_set_value(y, sin(2*M_PI*xx), i,1,0);
mgl_data_set_value(y, cos(2*M_PI*xx), i,2,0);
}
if(y1) mgl_data_set_value(y1, 0.5+0.3*cos(2*M_PI*xx), i,0,0);
if(y2) mgl_data_set_value(y2, 0.3*sin(2*M_PI*xx), i,0,0);
if(x1) mgl_data_set_value(x1, xx*2-1, i,0,0);
if(x2) mgl_data_set_value(x2, 0.05+0.03*cos(2*M_PI*xx), i,0,0);
}
}
| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on March 21, 2014 using texi2html 5.0.
