2.1.7.5 find_nearest_xy_at_x


Description

For the given data range which is constructed from a graph layer, find the data plot xy values according to the given x

Syntax

bool find_nearest_xy_at_x( double x, const DataRange & dr, vector<string> & vsNames, vector<int> & vnIndices, vector & vx, vector & vy )

Parameters

x
[input] given x value
dr
[input] data range of data plots
vsNames
[output] data plots' name
vnIndices
[output] data plots' indices
vx
[output] data plots' x value
vy
[output] data plots' y value

Return

True for success, otherwise return false

Examples

EX1

void find_nearest_xy_at_x_ex1()
{
    Worksheet wks;
    wks.Create("origin");
    Dataset ds1(wks,0);
    Dataset ds2(wks,1);
    ds1.Data(1,20,1);
    ds2.Data(20,1,-1);
    GraphPage gp;
    gp.Create("origin");
    GraphLayer gl(gp.GetName(), 0);
    gl.AddPlot(wks);
 
    Tree tr;
    if(gl)
    {
        construct_data_range_all_plots(tr, gl);
        out_tree(tr);
        DataRange dr;
        dr.Create(tr, false);
        vector<string> vsNames;
        vector<int> vnIndices;
        vector vx, vy; 
        double x = 3;//change the input x  to other values to see different results       
        if(find_nearest_xy_at_x(x, dr, vsNames, vnIndices, vx, vy))
        {
            for(int ii = 0; ii < vsNames.GetSize(); ii++)
            {
                //when input x is 3,the corresponding value in dataplot are :index = 2, x = 3,  y = 18 
                printf("\n%s: index = %d, x = %g, y = %g\n", vsNames[ii], vnIndices[ii], vx[ii], vy[ii]);
            }
        }
    }
}

Remark

See Also

Header to Include

origin.h

Reference