2.1.17.8.13 ocmath_linear_transform


Description

Map data array slope [min, max] to [nMin, nMax] linearly

Syntax

int ocmath_linear_transform( double * pData, uint i1, uint i2, int nMin, int nMax, double dMin = __NANUM, double dMax = __NANUM, DWORD dwCntrl = 0 )

Parameters

pData
[modify] pointer to data array
i1
[input] start data index
i2
[input] end data index (inclusive)
nMin
[input] result min
nMax
[input] result max
dMin
[input] input data min to be mapped to nMin, use NANUM to get actual data min
dMax
[input] input data max to be mapped to nMax, use NANUM to get actual data max
dwCntrl
[input] bits of LNTR_NO_ROUND_NEAREST_INT etc

Return

0 if success, -1 if dMin and dMax equal

Examples

EX1

void ocmath_linear_transform_ex1()
{
     vector vx2 = {100,200,300,400,500};
     vector vx;
     vx = vx2;
     int nErr = ocmath_linear_transform(vx, 0, vx.GetSize(), 0, 255, NANUM, NANUM);
     for(int ii = 0; ii < vx.GetSize(); ii++)
     {
         int nn = vx[ii];
         printf("%d ", nn);
     }
     out_str("");
     //output should be "0 64 127 191 255" 
}

Remark

See Also

Header to Include

origin.h

Reference