首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nevron曲面图数据源

Nevron曲面图数据源
EN

Stack Overflow用户
提问于 2011-02-07 18:44:36
回答 1查看 349关注 0票数 0

我一直在看上面的图表,我正在试图弄清楚他们在下面的代码片段上的"FillData“方法是如何工作的。

代码语言:javascript
复制
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",但我不知道代码的其余部分在做什么,如果在座的任何人都用过这个,请开枪。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-27 17:48:35

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

代码语言:javascript
复制
// 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);

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4920339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档