使用OpenGL语句来绘制3次B样条曲线与Bezier曲线,并进行对比
时间: 2023-05-19 14:01:38 浏览: 173
huatu.zip_B样条曲线_三次B样条曲线_三次bezier曲线_三次样条_样条曲线
5星 · 资源好评率100%
可以使用以下OpenGL语句来绘制3次B样条曲线和Bezier曲线:
// 绘制3次B样条曲线
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
glEnable(GL_MAP1_VERTEX_3);
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 30; i++)
glEvalCoord1f((GLfloat) i/30.0);
glEnd();
// 绘制Bezier曲线
glBegin(GL_LINE_STRIP);
for (i = 0; i <= 30; i++)
glEvalCoord1f((GLfloat) i/30.0);
glEnd();
其中,ctrlpoints是一个4x3的数组,存储了B样条曲线的控制点坐标。绘制Bezier曲线时,可以直接使用控制点坐标。对比两种曲线,可以发现B样条曲线更加平滑,而Bezier曲线则更加自然。
阅读全文