一组数据,如何生成三维曲面图?100分,谢谢(100分)

  • 主题发起人 主题发起人 jsseugxy
  • 开始时间 开始时间
你这个题目也太那个了吧。
你得说清楚你的数据是什么数据,数据之间有什么关系,你想生成什么样的曲面图,
想用什么方法构造曲面。

现在只能给你一个提示:用OpenGL吧。
 
To all:
To JohnsonGuo大侠:
这组数据表示地面上某一区域内的地形图,x,y坐标定点,z坐标表示高程,数据储存在Delphi
自带的数据库中。将数据粘贴出来,在MatLab中倒是容易生成三维地形坡面图,但我是利用
Delphi开发程序的,想直接在生成的应用程序中显示三维坡面图,我该怎样做呢?
能否提供例程?不胜感谢!



 
一般可以使用两种方式:
1。拟合
用g(x, y) = a x^2 + b x y + c y^2 + d x + e y + f拟合
令Φ(a, b, c, d, e, f) = Σ(g(x, y) - z)^2
对Φ求关于a, b, c, d, e, f的偏导,并令之为0,不是得到6个方程,
求解这个线性方程得到a, b, c, d, e, f, g
于是对给定的定义域[a1, b1] * [a2, b2]进行一定的分割
得到系列点{x}和{y}求这些点上g的值,并以每四个点构成空间中的
一个曲面片,剩下的就是用OpenGL把这些曲面片显示出来了。

2。插值
如果给定的点是网格给出即x = a1 + h1 * i, y = a2 + h2 * i,
h1 = (b1 - a1) / n1, h2 = (b2 - a2) / n2
那么固定任意一个x,对(y[k], z[k])进行多项式插值,形成z[k] = g(x, y)
固定任意一个y,对(x[k], z[k])进行多项式插值,形成z[k] = h(x, y)
于是有z = f(x, y) = (g(x, y) + h(x, y)) * 0.5
 
To JohnsonGuo大侠:
多谢指教,成功在望!
但我的水平有限,对OpenGL不胜了解,能提供相关的信息吗?比如好的书籍、原代码或
相关的网站之类!
当然了,如果有稍加改变就可以解决问题的代码,那就太好了!(我是不是太懒了?)
如果有,我愿加50分!

 
请来信,我会尽快寄出。
 
To JohnsonGuo大侠:
请将代码寄到我的信箱!我的信箱是:notebook_2000@263.net或jsseugxy@myrice.com
再次感谢,先给你加100分!
 
接受答案了.
 
已寄出,请验收。
 
后退
顶部