首先用相应的控制点、节点等画出圆柱面(不裁剪),结果是正确的,如图所示:
但当我通过以下的裁剪代码进行裁剪后,却出现了我不能理解的结果,裁剪代码以及裁剪结果如下图:
GLfloat outSidePts[5][2] =
{ {0.0f, 0.0f} ,{1.0f, 0.0f}, {1.0f, 1.0f},{0.0f, 1.0f}, {0.0f, 0.0f} };
gluBeginTrim(theNurbs);
gluPwlCurve(theNurbs,
5, //修剪点的个数
&outSidePts[0][0], //修剪点数组
2, //点之间的间隔
GLU_MAP1_TRIM_2);//修剪的类型
gluEndTrim(theNurbs);
我的理解是,因为我裁剪的是整个UV参数域,从0到1,按道理说应该与裁剪前结果是一样的,但是结果却出现了多余线条,这是为什么?求大神解答