我一直在查看上面提到的图表,我试图找出下面代码段中的“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>
答案 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);
我希望这会有所帮助。