资源简介
opengl动态显示贝塞尔曲线,动画展示贝塞尔曲线四个控制点对曲线的控制。
代码片段和文件信息
#define GLUT_DISABLE_ATEXIT_HACK
#include
#include
#include
GLint nNumPoints = 4;
GLint x1=-4 x2=-1 x3=-1 x4=4
y1=-4 y2=1 y3=-1 y4=4
z1=0 z2=0 z3=0 z4=0;
//4个控制点的3D坐标——z坐标全为0
GLfloat ctrlPoints[4][3] = {
{ x1 y1 z1 }{ x2 y2 z2 }{ x3 y3 z3 }{ x4 y4 z4 }
};
void init(void)
{
//背景色
glClearColor(0.0 0.0 0.0 1.0);
//建立一个一维求值器并启动求值器
glMap1f(GL_MAP1_VERTEX_3 // 产生的数据类型
0.0f // 参数最小值
100.0f // 参数最大值
3 //控制点间的步幅(以GLfloat个数度量)
nNumPoints // 控制点数目
&ctrlPoints[0][0]); // 保存控制点的数组
glEnable(GL_MAP1_VERTEX_3); //启动求值器
glShadeModel(GL_FLAT);
//反走样
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH); //允许直线反走样
glHint(GL_LINE_SMOOTH_HINT GL_FASTEST); // Antialias the lines
glBlendFunc(GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA);
}
void display(void)
{
int i;
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glColor3f(1.0 1.0 0.0);
//映射曲线,选择u并计算曲线上的点
glMapGrid1d(100 0.0 100.0); //等分区间
glEvalMesh1(GL_LINE 0 100); //用求值器计算曲线上点的值,并画图
/* 显示控制点 */
glPointSize(5.0);
glBegin(GL_POINTS);
for (i = 0; i < 4; i++)
glVertex3fv(&ctrlPoints[i][0]);
glEnd();
glutSwapBuffers();
}
void vertexPoint(void) {
- 上一篇:语音情感识别matlab源代码.zip
- 下一篇:c语言tcp服务器端程序代码
相关资源
- 安卓c语言开发SDL2+opengles
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- opengl绘制汽车.cpp
- MFC绘制Bezier曲线B样条曲线曲线拟合
- opengl实现水流效果sph
- opengl源代码,全是精华!
- OpenGL迷宫山东大学图形学实验三
- opengl的立方体消隐算法
- vc++ opengl代码爆炸
- 我见过最漂亮的CS仿真程序openGL和C+
- 广东某工业大学的openGL课程设计
- Spline曲线(穿过控制点CC++版本)
- 使用OpenGL实现多个小球在密闭空间内
- 利用openGL和C++实现光线跟踪绘图的完
- OpenGl C++太阳系小行星运行系统 可切换
- vc++和OpenGL实现三维地形实时动态显示
- C++实现利用OpenGL实现三维绘图
- 太阳、地球、月亮之间的运动图Open
- MFC 单文档 实现opengl 三维旋转 缩放
- OPENGL的烟花程序(代码)
- MFC+OpenGL三维建模与动画显示
- 基于opengl粒子系统实现喷泉的模拟
- 一个基于openGL的太阳系模型,太阳地
- vc6.0+opengl纯色五角星填充
- vc6.0+opengl动态绘制五角星
- NeHe_OpenGL教程完整版 里面有地址可以
- OpenGL简单——实现立方体贴上不同纹
- MFC实现dem的读取与现实
- Coons曲面与hermite、bezier、B样条曲线标
评论
共有 条评论