- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验3 OpenGL基本图元绘制
实验3、OpenGL基本图元绘制
系别:计算机学院 专业班级:10信科2班
姓名: 学号:
实验日期:2013-5-10 实验报告日期:2013-5-10
实验目的
1熟悉VC6.0开发平台;
2熟悉OpenGL开发库;
实验内容:
在同一个窗口内绘制以下图元:
用不同颜色绘制大小从1到5的5个点;
用不同颜色绘制宽度为1、3、5的三条直线段;
绘制一条包含5个顶点的折线段;
绘制一个三角形,三个顶点颜色各不相同,三角形内部用平滑方式进行填充;
绘制一个六边形;
2. ,不使用反混淆绘制宽度为5的直线;启用反混淆后在不同位置绘制相同的直线,比较两者异同。
一个OpenGL实例
1.程序中有关画图的代码:
void DrawGLScene(GLvoid) // 此函数完成图形绘制
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除颜色缓冲区和深度缓冲区
glLoadIdentity(); // 重置当前模型视图矩阵
glTranslatef(-1.5f,0.0f,0.0f); // 向左平移50个单位
glBegin(GL_TRIANGLES); // 绘制三角形
glColor3f(1.0f,0.0f,0.0f); //画笔设置为红色
glVertex3f( 0.0f, 1.0f, 0.0f);
glColor3f(0.0f,1.0f,0.0f); // 设置为绿色
glVertex3f(-1.0f,-1.0f, 0.0f); glColor3f(0.0f,0.0f,1.0f); //设置为蓝色
glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd(); // 完成三角形的绘制
glTranslatef(3.0f,0.0f,0.0f); // 向右平移3个单位
glColor3f(0.0f,1.0f,1.0f); // 设为青色
glBegin(GL_QUADS); // 画四边形
glVertex3f(-1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f); /
glEnd(); //完成四边形绘制
glFlush();
}
实验报告内容
1程序源码;
2对主要画图函数的说明(函数的功能,参数等)。
// 图形.cpp : Defines the entry point for the console application.
//
#include GL/glut.h
#include stdio.h
#include stdlib.h
#include windows.h
#define MAX 10^6;
//如果需要记录鼠标点的位置,就定义全局变量来保存
struct Point {int x, y;};
Point pt[2];
int pointNum=0;//标记点号,0表示线段起点,1表示线段中点
void MyDrawGLScene() // 此函数完成图形绘制
{
int i;
float pSizes[5]={1.0f,2.0f,3.0f,4.0f,5.0f}; //设定五个点的大小
float lWidth[5]={1.0f,2.0f,3.0f,4.0f,5.0f}; //设定五条直线的宽度
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除颜色缓冲区和深度缓冲区
glLoadIdentity(); // 重置当前模型视图矩阵
glTranslatef(-1.8f,-0.1f,0.0f); // 向左平移50个单位
// 绘制五个大小不同的的点
glEnable(GL_POINT_SMOOTH); //开启反混淆
for( i=0;i5;i++){// 绘制五个大小不同的的点
glPointSize(pSizes[i]);
glTranslatef(0.1f,-0.0f,0.0f); // 向右平移50个单位
glB
文档评论(0)