我需要在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节的坐标?根据控制点的坐标,我假设?或者这是不平凡的?除了控制点的坐标和权重之外,我还有STRIDE
和ORDER
值。
我认为这是可能的,因为gluNurbsCurve
- 函数能够根据这些值绘制曲线。
还是我完全错过了结的概念?
答案 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