OpenGL Nurbs:找到结点坐标

时间:2012-10-14 20:17:20

标签: c opengl curve nurbs

我需要在OpenGL中绘制NURBS曲线的控制点和节点。控制点没有问题,因为它们是由它们的坐标定义的。不过,我对结有点麻烦。

我有gluNurbsCurve函数所采用的一组结,定义如下。

GLfloat knots[KNOTCOUNT] = {0.00, 0.00, 0.00,
                            0.25,
                            0.50, 0.50,
                            0.75,
                            1.00, 1.00, 1.00}

有没有一种简单的方法来推导出这5节的坐标?根据控制点的坐标,我假设?或者这是不平凡的?除了控制点的坐标和权重之外,我还有STRIDEORDER值。

我认为这是可能的,因为gluNurbsCurve - 函数能够根据这些值绘制曲线。

还是我完全错过了结的概念?

2 个答案:

答案 0 :(得分:2)

如果您阅读了在NURBS上发布的文章,您将了解到结点的重量不仅仅是一个重点。

"结矢量是一系列参数值,用于确定控制点在何处以及如何影响NURBS曲线。"

因此,结果最多可以表示为曲线的一个区域。尽管如此,你可以很容易地想象它结的多样性。只需简单地为相关的控制点着色。

答案 1 :(得分:1)

请看这个网页:http://www.ibiblio.org/e-notes/Splines/Basis.htm

它给出了结矢量的一个很好的解释,甚至让你尝试使用Java-applet中的结矢量(在图的右侧顶部移动小结)。 Java小程序的源代码也可用。

该页面是样条线的完整互动介绍的一部分:http://www.ibiblio.org/e-notes/Splines/Intro.htm

相关问题