我写了一个程序来显示一些压力测量值。我想使用NURBS进行细节可视化。所以我指导我 enter link description here
我的领域范围为40x48平方。所以有40行和48列。 Z分量(高度)应该是可变的。
但我不明白如何定义
glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4, 0, 1, 12, 4, &ctrlpoints[0][0][0]);
// Parameter:
// target:
// What the control points represent (e.g. MAP2_VERTEX_3).
//
// u1:
// Range of the variable 'u'.
//
// u2:
// Range of the variable 'u.
//
// ustride:
// Offset between beginning of one control point and the next.
//
// uorder:
// The degree plus one.
//
// v1:
// Range of the variable 'v'.
//
// v2:
// Range of the variable 'v'.
//
// vstride:
// Offset between beginning of one control point and the next.
//
// vorder:
// The degree plus one.
//
// points:
// The data for the points.
我不知道如何在我的情况下设置参数。 例如什么是u1和u2?或者我的ControlPoints是什么?
答案 0 :(得分:0)
在此链接中,您可以找到有关参数的更详细说明:
https://msdn.microsoft.com/en-us/library/windows/desktop/ee872053(v=vs.85).aspx
在表面X方向由u坐标给出,Y方向由v坐标给出。通常将u1-u2和v1-v2设置为[0,1]间隔。
曲面的顺序在点之间进行插值(您可以使用order = 1进行线性插值,使用order = 2进行二次插值,依此类推.2或3应该可以满足您的需求。
有了这个说法,我担心方法“glMap2f”不能准确地表示你的数据,因为一般来说“控制点”不在表面本身(如下面的所示)
你必须寻找一种算法来从点云中插入nurbs曲面,然后使用glMap2f计算控制点。
如果您想了解更多有关Nurbs的信息,请查看L. Piegl的“The Nurbs book”