Nevron表面图表数据源

时间:2011-02-07 10:44:36

标签: .net charts surface nevron

我一直在查看上面提到的图表,我试图找出下面代码段中的“FillData”方法是如何工作的。

private void FillData(NGridSurfaceSeries surface)
        {
            double y, x, z;
            int nCountX = surface.Data.GridSizeX;
            int nCountZ = surface.Data.GridSizeZ;

            const double dIntervalX = 30.0;
            const double dIntervalZ = 30.0;
            double dIncrementX = (dIntervalX / nCountX);
            double dIncrementZ = (dIntervalZ / nCountZ);

            z = -(dIntervalZ / 2);

            for(int j = 0; j < nCountZ; j++, z += dIncrementZ)
            {
                x = -(dIntervalX / 2);

                for(int i = 0; i < nCountX; i++, x += dIncrementX)
                {
                    y = (x * z / 64.0) - Math.Sin(z / 2.4) * Math.Cos(x / 2.4);
                    y = 10 * Math.Sqrt( Math.Abs(y) );

                    if(y <= 0)
                    {
                        y = 1 + Math.Cos(x / 2.4);
                    }

                    surface.Data.SetValue(i, j, y);
                }
            }
        }

文档非常稀疏,我想传递值列表代替“Y”,但我不知道其余代码在做什么,如果有人在这里工作请拍。< / p>

1 个答案:

答案 0 :(得分:0)

实际上你只需要surface.Data.SetValue方法,其余代码只生成一些数据。网格曲面数据存储类似于二维表 - i和j是指定数据点的索引,y是数据点的值。例如,以下代码填充3x2网格表面中的一些数据:

// first row
surface.Data.SetValue(0, 0, 7.53);
surface.Data.SetValue(1, 0, 6.19);
surface.Data.SetValue(2, 0, 9.78);

// second row
surface.Data.SetValue(0, 1, 5.35);
surface.Data.SetValue(1, 1, 4.71);
surface.Data.SetValue(2, 1, 8.85);

我希望这会有所帮助。