3D。 “手工制作”山丘和山脉

时间:2011-03-02 13:32:17

标签: math graphics 3d

在我的程序中,我创建了一个如下所示的网格:

http://en.wikibooks.org/wiki/File:Blender3DNoobToPro-Creating_The_Canvas.jpg

我希望得到这样的东西:

http://en.wikibooks.org/wiki/File:Blender3DNoobToPro-Molding_the_Mountains_02.jpg

我用这个简单的代码

创建了这个网格
for (int i = -(xPlanesCount / 2); i < (xPlanesCount / 2); i++)
        {
            for (int j = -(yPlanesCount / 2); j < (yPlanesCount / 2); j++)
            {
                var xOffset = i * size;
                var yOffset = j * size;

                //code that create a plane
            }
        }

问题是......如果我想要一座山......我怎么能这样做?我知道“山”顶部的坐标(例如x10 - y2),山的半径是2个平面,山的高度是10个像素。

我需要进行哪些计算才能获得此结果?

http://en.wikibooks.org/wiki/File:Blender3DNoobToPro-Molding_the_Mountains_02.jpg

1 个答案:

答案 0 :(得分:2)

在正确的位置应用Gaussian function可能会有所帮助。

编辑: 在Two-dimensional Gaussian function中,您可以使用常规f(x,y)公式以及参数说明。现在,您只需要使用您喜欢的语言中的数学函数!