我一直在看上面的图表,我正在试图弄清楚他们在下面的代码片段上的"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",但我不知道代码的其余部分在做什么,如果在座的任何人都用过这个,请开枪。
发布于 2011-07-27 17:48:35
实际上,您只需要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);我希望这能帮到你。
https://stackoverflow.com/questions/4920339
复制相似问题