- 59
- 0
- 约4.86千字
- 约 12页
- 2017-12-13 发布于河南
- 举报
实验二OpenGL颜色填充
实验二、OpenGL颜色填充
1、 实验目的
1)了解OpenGL 图形库的功能和结构;
2)学习了解OpenGL 程序的基本结构,及常用函数;
3)学习使用OpenGL 颜色填充算法;
2、 实验内容
1)使用OpenGL 编写一个简单的C++程序,使该程序能够填充多边形和圆等图形。
2 )使用OpenGL 编写一个简单的C++程序,使该程序能够填充已填充过的图形。
3、 实验过程
1)在系统上配置好OpenGL的环境(头文件,库文件,和链接库文件);
2)使用Visual V++6.0 新建一个C++文档,并创建相应的工程;
3)在文档中引入OpenGL的头文件,编辑代码实现:对不同图形的不同颜色填充。
4、 实验结果
可单击鼠标左键,填充选中的图形;
可单击鼠标右键,调出菜单,可改变填充颜色,可恢复为填充状态。
结果截图:
初始状态:
填充多边形:
调出菜单,选择颜色:
填充圆形:
填充已填充的图形:
5、 实验代码
#include stdio.h
#include GL/glut.h
#include math.h
#include windows.h
////////////程序还有问题,不知如何解决
////////圆周率
const GLfloat Pi = 3.1415926536f;
///////////窗口长宽
GLfloat WinWidth=600.0, WinHeight=600.0;
//////////种子点
GLint fillx,filly;
////////填充色
GLubyte fillColor[3]={255,0,255};
/////////判定点色
GLubyte Pixel[3];
/////////取点色
GLubyte OldColor[3];
//////////绘制初始化
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0) ;
glViewport(0,0,WinWidth,WinHeight);
glMatrixMode(GL_PROJECTION);
///////调用单位矩阵,去掉以前的投影参数设置
glLoadIdentity();
gluOrtho2D(0.0, WinWidth, 0.0, WinHeight);
}
//////////比较颜色是否相同
bool EqualColor(GLubyte c1[],GLubyte c2[]){
if(c1[0]==c2[0]c1[1]==c2[1]c1[2]==c2[2])
return true;
else return false;
}
///////////填充点色
void setPixel(GLint x,GLint y){
glColor3f(fillColor[0], fillColor[1], fillColor[2]);
glBegin(GL_POINTS);
glVertex3f(x,y,0.0);
glEnd();
}
//////////////种子填充函数,四联通,递归
void fill(GLint x, GLint y){
glReadPixels(x,y,1,1,GL_RGB,GL_UNSIGNED_BYTE,Pixel);
if(EqualColor(fillColor,OldColor))
return;
setPixel(x,y);
//Sleep(1);
glReadPixels(x,y-1,1,1,GL_RGB,GL_UNSIGNED_BYTE,Pixel);
if(EqualColor(Pixel,OldColor))
{fill(x,y-1);
}
glReadPixels(x-1,y,1,1,GL_RGB,GL_UNSIGNED_BYTE,Pixel);
if(EqualColor(Pixel,OldColor))
{fill(x-1,y);
}
glReadPixels(x+1,y,1,1,GL_RGB,GL_UNSIGNED_BYTE,Pixel);
if(EqualColor(Pixel,OldColor))
{fill(x+1,y);
}
glReadPixels(x,y+1,1,1,GL_RGB,GL_UNSIGNED_BYTE,Pixel);
if(EqualColor(Pixel,OldColor))
{fill(x,y+1);
}
//////////
return;
}
///////////////////画圆函数
您可能关注的文档
- 英语报刊选读期末作业.doc
- 高三英语试题19.doc
- 2014惠来普通高中高三教学质量检测.doc
- 外国人中的环境问题.doc
- unit6语法归纳.doc
- 毛坦厂中学高中英语月考试卷2014.doc
- 四级作文题型及范文.doc
- 英语卷·2016届 练习卷(2016.01)WORD版.doc
- 虚拟语气精讲及专项练习.doc
- 英文ABC歌词.doc
- 《GBT XXXX-XXXX 紧固件 1型六角螺母 细牙》国家标准化发展报告.docx
- 《产品几何技术规范(GPS) 表面结构 轮廓法 第3部分:规范操作集》国家标准立项与发展报告.docx
- 《气瓶和阀门材料与盛装气体的相容性 第2部分:非金属材料》标准化发展报告.docx
- 《钢、镍、钛及其合金熔焊接头缺欠质量分级指南》标准修订与发展报告.docx
- 《产品几何技术规范(GPS) 模制件尺寸与几何公差 第4部分:铸件轮廓度公差应用规则》标准化发展研究报告.docx
- 《GBT 28705 无损检测 铁磁性金属部件脉冲涡流检测》标准修订与发展研究报告.docx
- 《航空航天8°30'梁式密封弯通、三通和四通管接头尺寸》标准发展研究报告.docx
- 《航空航天8°30'梁式密封弯通、三通和四通管接头尺寸》标准立项与发展报告.docx
- 《航空器杠杆开关 性能要求 第2部分:Ⅲ类》国家标准立项与发展研究报告.docx
- 《飞机滑行灯系统通用要求》国家标准立项研究报告.docx
最近下载
- 《纺织行业“十五五”发展纲要》及《纺织行业“十五五”绿色发展指.docx
- 第三单元名著导读《经典常谈》课件.pdf VIP
- 《新闻法规与职业道德》课件——新闻法律法规与职业道德概述.pptx VIP
- 2025年内初班(新)(答案完整齐全)内初班民族团结考试(带答案) .pdf VIP
- 初三有机合成题库及答案.doc VIP
- GXG 451-2016 信息通信建设工程费用定额 信息通信建设工程概预算编制规程.pdf VIP
- 幼儿园大班数学教学活动开展的现状研究.docx
- 李发海电机与拖动基础第四版第十一章方案.ppt VIP
- 2021年一级建造师考试《机电工程管理与实务》.docx VIP
- 三菱900mb maxiez故障代码.pdf VIP
原创力文档

文档评论(0)