实验一OpenGL直线、圆的绘制.doc

实验一OpenGL直线、圆的绘制.doc

ID:48384290

大小:118.50 KB

页数:20页

时间:2019-12-04

实验一OpenGL直线、圆的绘制.doc_第1页
实验一OpenGL直线、圆的绘制.doc_第2页
实验一OpenGL直线、圆的绘制.doc_第3页
实验一OpenGL直线、圆的绘制.doc_第4页
实验一OpenGL直线、圆的绘制.doc_第5页
资源描述:

《实验一OpenGL直线、圆的绘制.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一、OpenGL直线、圆的绘制1、实验目的1)了解OpenGL图形库的功能和结构;2)学习了解OpenGL程序的基本结构,及常用函数;3)学习使用OpenGL绘制基本图形(线、圆);2、实验内容1)使用OpenGL编写一个简单的C++程序,使该程序能够绘制出直线。2)使用OpenGL编写一个简单的C++程序,使该程序能够绘制出圆。3、实验过程1)在系统上配置好OpenGL的环境(头文件,库文件,和链接库文件);2)使用VisualV++6.0新建一个C++文档,并创建相应的工程;3)在文档中引入OpenGL的头文件,编辑代码实现鼠标拖动画直线,画圆。4、实验结果可单击鼠标左键,然

2、后拖动鼠标画出两条直线,并同时画出圆;可单击鼠标右键,然后拖动鼠标画出两个圆,并同时画出直线。结果截图:1.鼠标左键主要控制绘制的直线:1.鼠标右键主要控制绘制的圆:5、实验代码1.#include2.#include3.4.//GLintpNum=0;5.GLintpx1,py1,px2,py2,cx,cy,r;6.GLintwinWidth=600,winHeight=600;1.2.//////////////////画直线////////////3.voidDraw_Bresenham(intpStartx,intpStarty,intp

3、Endx,intpEndy)4.{//用Bresenham算法画直线5.inti;6.7.if(pStartx==pEndx)8.{9.//为竖线10.if(pStarty<=pEndy)11.{12.for(i=pStarty;i<=pEndy;i++)13.glVertex2f(pStartx,i);14.}15.else16.{17.for(i=pEndy;i<=pStarty;i++)18.glVertex2f(pStartx,i);19.}20.21.return;1.}2.3.//为横线4.if(pStarty==pEndy)5.{6.if(pStartx<=pEndx)

4、7.{8.for(i=pStartx;i<=pEndx;i++)9.glVertex2f(i,pStarty);10.}11.else12.{13.for(i=pEndx;i<=pStartx;i++)14.glVertex2f(i,pStarty);15.}16.17.return;18.}19.20.//为斜线21.floatm=(pEndy-pStarty)*1.0/(pEndx-pStartx);22.floatp;1.2.p=2*m-1;3.if(m>0&&m<=1)4.{5.if(pStartx

5、lVertex2f(pStartx++,pStarty);10.if(p>=0)11.{12.p+=2*m-2;13.pStarty++;14.}15.else16.p+=2*m;17.}18.}19.else20.{21.while(pEndx<=pStartx)22.{1.glVertex2f(pEndx++,pEndy);2.if(p>=0)3.{4.p+=2*m-2;5.pEndy++;6.}7.else8.p+=2*m;9.}10.}11.12.return;13.}14.15.p=-2*m-1;16.if(m<0&&m>=-1)17.{18.if(pStartx

6、x)19.{20.while(pStartx<=pEndx)21.{22.glVertex2f(pStartx++,pStarty);1.if(p>=0)2.{3.p+=-2*m-2;4.pStarty--;5.}6.else7.p+=-2*m;8.}9.}10.else11.{12.while(pEndx<=pStartx)13.{14.glVertex2f(pEndx++,pEndy);15.if(p>=0)16.{17.p+=-2*m-2;18.pEndy--;19.}20.else21.p+=-2*m;22.}1.}2.3.return;4.}5.6.p=2/m-1;7.if

7、(m>1)8.{9.if(pStarty=0)15.{16.p+=2/m-2;17.pStartx++;18.}19.else20.p+=2/m;21.}22.}1.else2.{3.while(pEndy<=pStarty)4.{5.glVertex2f(pEndx,pEndy++);6.if(p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。