|
|
|
|
| OpenGL 或者 Mesa 下过控制点的 Nurbs 样条曲线怎么画 |
|
|
|
[Original]
[Print]
[Top]
|
试过mesademos的范例,都似乎是贝兹曲线,就是不过控制点的那中,
那位高过 openGL 的指教一下!
另外,Nurbs++ 项目也是专门研究 Nurbs Spline 曲线的。
http://libnurbs.sourceforge.net/
我做了一下测试代码,如下:
#include <stdio.h>
#include <nurbs++/nurbs.h>
// testing of interpolation and approximation
using namespace PLib;
int main(void)
{
int i;
// Initalize a NURBS curve
// and generate a list of points from it
int deg = 3;
Vector_HPoint3Df P(10); // 加入这模板类的引用就有问题。
printf("Test nurbs++ !
");
return 0;
}
用如下命令编译连接:
g++ -I/usr/include -o nurbs01 nurbs01.cpp
提示很多的错误,Nurbs++ 项目中有很多模板嵌套的情况,
所以有点复杂,应该是连接的时候出的问题,
但是后来我都显式指定了连接所有 Nurbs++ 的库结果出的问题更多。
错误提示如下:
/tmp/ccaRMS7R.o(.gnu.linkonce.t._ZN4PLib6VectorINS_9HPoint_nDIfLi3EEEED1Ev+0x16): In function `PLib::Vector<PLib::HPoint_nD<float, (int)3> >::~Vector [in-charge]()':
: undefined reference to `PLib::BasicArray<PLib::HPoint_nD<float, (int)3> >::~BasicArray [not-in-charge]()'
/tmp/ccaRMS7R.o(.gnu.linkonce.r._ZTVN4PLib6VectorINS_9HPoint_nDIfLi3EEEEE+0x10): undefined reference to `PLib::BasicArray<PLib::HPoint_nD<float, (int)3> >::reset(PLib::HPoint_nD<float, (int)3>)'
/tmp/ccaRMS7R.o(.gnu.linkonce.t._ZN4PLib6VectorINS_9HPoint_nDIfLi3EEEEC1Ei+0x14): In function `PLib::Vector<PLib::HPoint_nD<float, (int)3> >::Vector[in-charge](int)':
: undefined reference to `PLib::BasicArray<PLib::HPoint_nD<float, (int)3> >::BasicArray[not-in-charge](int)'
/tmp/ccaRMS7R.o(.gnu.linkonce.t._ZN4PLib6VectorINS_9HPoint_nDIfLi3EEEED0Ev+0x16): In function `PLib::Vector<PLib::HPoint_nD<float, (int)3> >::~Vector [in-charge deleting]()':
: undefined reference to `PLib::BasicArray<PLib::HPoint_nD<float, (int)3> >::~BasicArray [not-in-charge]()'
collect2: ld returned 1 exit status
make: *** [all] Error 1
|
|
|
[Original]
[Print]
[Top]
|
|
|