|
|
发表于 2006-4-28 17:17:00
|
显示全部楼层
Re:曲线问题
用Bezier曲线阿
opengl中自带了Bezier曲线的绘制函数
先定义控制点比如GLfloat ctrlpoints[4][3] = {
{ -4.0, -4.0, 0.0}, { -2.0, 4.0, 0.0},
{2.0, -4.0, 0.0}, {4.0, 4.0, 0.0}};
然后调用 glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);//定义Bezier曲线
glEnable(GL_MAP1_VERTEX_3);//启动曲线
void glMapGrid1{fd}(GLint n,TYPE u1,TYPE u2);
//定义一个网格,从u1到u2分为n步,它们是等间隔的。实际上,这个函数定义的是参
//数空间网格。一般来说u1=0,u2=1;
void glEvalMesh1(GLenum mode,GLint p1,GLint p2);
//计算并绘制坐标点。参数mode可以是GL_POINT或GL_LINE,即沿曲线绘制点或沿曲线
//绘制相连的线段。
只要设置好控制点就好了,一般来说三个控制点就可以绘制一个二次的抛物线了
|
|