首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

关于openGL中画Bezier曲线的有关问题~

2012-02-22 
关于openGL中画Bezier曲线的问题~~急!!!用4个控制点画出三阶Bezier曲线。。。现在已知4个控制点,通过这4个控

关于openGL中画Bezier曲线的问题~~急!!!
用4个控制点画出三阶Bezier曲线。。。
现在已知4个控制点,通过这4个控制点可以求出3个在Bezier曲线上的点。但是如何利用OpenGL画出这个三阶的Bezier曲线·?

[解决办法]
楼主参考这里

http://blog.csdn.net/zhangci226/archive/2009/03/23/4018449.aspx
[解决办法]
引自红宝书,希望对楼主有所帮助。

C/C++ code
#include <GL/glut.h>#include <stdlib.h>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}};void init(void){   glClearColor(0.0, 0.0, 0.0, 0.0);   glShadeModel(GL_FLAT);   glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);   glEnable(GL_MAP1_VERTEX_3);}void display(void){   int i;   glClear(GL_COLOR_BUFFER_BIT);   glColor3f(1.0, 1.0, 1.0);   glBegin(GL_LINE_STRIP);      for (i = 0; i <= 30; i++)          glEvalCoord1f((GLfloat) i/30.0);   glEnd();   /* The following code displays the control points as dots. */   glPointSize(5.0);   glColor3f(1.0, 1.0, 0.0);   glBegin(GL_POINTS);      for (i = 0; i < 4; i++)          glVertex3fv(&ctrlpoints[i][0]);   glEnd();   glFlush();}void reshape(int w, int h){   glViewport(0, 0, (GLsizei) w, (GLsizei) h);   glMatrixMode(GL_PROJECTION);   glLoadIdentity();   if (w <= h)      glOrtho(-5.0, 5.0, -5.0*(GLfloat)h/(GLfloat)w,                5.0*(GLfloat)h/(GLfloat)w, -5.0, 5.0);   else      glOrtho(-5.0*(GLfloat)w/(GLfloat)h,                5.0*(GLfloat)w/(GLfloat)h, -5.0, 5.0, -5.0, 5.0);   glMatrixMode(GL_MODELVIEW);   glLoadIdentity();}void keyboard(unsigned char key, int x, int y){   switch (key) {      case 27:         exit(0);         break;   }}int main(int argc, char** argv){   glutInit(&argc, argv);   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);   glutInitWindowSize (500, 500);   glutInitWindowPosition (100, 100);   glutCreateWindow (argv[0]);   init ();   glutDisplayFunc(display);   glutReshapeFunc(reshape);   glutKeyboardFunc (keyboard);   glutMainLoop();   return 0;}
[解决办法]
glut 是一个 库 你可以下一个, 或者下一个 free_glut库, 上 glut 的替代品,

热点排行