计算机图形学-基于OpenGL的绘制空间曲线
2017-05-28 11:12
369 查看
计算机图形学-基于OpenGL的绘制空间曲线
本实验集成开发环境为vs2013,基于OpenGL。实验内容
在窗口中绘制一条曲线,参数曲线:x(t)=50∗cos(2∗π∗t)
y(t)=50∗sin(2∗π∗t)
z(t)=100∗t
0≤t≤1
预备知识
在曲线上按参数t进行for循环200次,每次将ti=i/200代入参数方程计算出一个点。将这些点连成折线段即可。
glBegin(GL_LINE_STRIP);
OpenGL中的变换:
平移:glTranslatef(dx,dy,dz);
旋转:glRotatef(angle, x, y, z);
缩放:glScalef(sx, sy, sz);
实验代码
#include <GL/glut.h> #include <cstdio> #include <cmath> const GLfloat Pi = 3.1415926536f; //定义点集 struct data{ GLfloat x; GLfloat y; GLfloat z; }Point[201]; void init() //初始化函数 { glClearColor(1.0, 1.0, 1.0, 0.0); //设置背景颜色 //glMatrixMode(GL_PROJECTION); // 设置投影参数 //gluOrtho2D(0.0, 50.0, 0.0, 50.0); // 设置场景的大小 } void mydisplay() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0); //设置线条颜色 glPointSize(2); //设置点的大小 //glTranslatef(100.0f, 100.0f, 0.0f); //平移图形 glScalef(0.005f, 0.005f, 0.005f); //缩小图像0.5倍 //glRotatef(60.0f, 1.0f, 0.0f, 0.0f); //沿x轴旋转60度 glBegin(GL_LINE_STRIP); for (int i = 1; i <= 200; i++) { GLfloat t = i / 200.0; Point[i].x = 50.0 * cos(2.0 * Pi*t); //参数曲线 Point[i].y = 50.0 * sin(2.0 * Pi*t); //参数曲线 Point[i].z = 100.0 * t; //参数曲线 glVertex3i(Point[i].x, Point[i].y,Point[i].z); //绘制曲线 } glEnd(); glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow("绘制空间曲线"); init(); glutDisplayFunc(&mydisplay); glutMainLoop(); return 0; }
效果预览
相关文章推荐
- 计算机图形学-基于OpenGL的绘制Bezier曲线
- 计算机图形学-基于OpenGL的绘制直线及图形变换练习
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_1_圆生成算法
- 计算机图形学02一一OpenGL 代码实现绘制一条线
- c&OpenGL实现计算机图形学:双步绘制直线法绘制菱形
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_4_中点椭圆算法(上)
- 计算机图形学之漫发射和镜面反射分离——基于颜色空间的双色模形法By Klinker
- [OpenGL]计算机图形学:二叉空间分割(BSP)树
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_5_其他曲线
- 计算机图形学-基于OpenGL的直线扫描程序
- 计算机图形学-基于OpenGL的直线段的裁剪算法
- 计算机图形学-OpenGL-绘制五角星
- 计算机图形学——OpenGL学习系列之绘制3D下的小桌子
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_3_椭圆生成算法
- [OpenGL]计算机图形学:基于Articulated Models的机械手臂实例
- 计算机图形学和OpenGL(二)坐标系和绘制点线函数
- [Review]基于OpenGL的计算机图形学之期末复习提纲
- OpenGL&nbsp;绘制字母&nbsp;计算机图形学
- 基于VC++的OpenGL编程讲座之曲线和曲面
- 计算机图形学(OpenGL版)-第一个OpenGL程序