电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

实验一OpenGL直线、圆的绘制

实验一OpenGL直线、圆的绘制_第1页
1/20
实验一OpenGL直线、圆的绘制_第2页
2/20
实验一OpenGL直线、圆的绘制_第3页
3/20
实验一、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、 实验结果 可单击鼠标左键,然后拖动鼠标画出两条直线,并同时画出圆; 可单击鼠标右键,然后拖动鼠标画出两个圆,并同时画出直线。 结果截图: 1. 鼠标左键主要控制绘制的直线: 2. 鼠标右键主要控制绘制的圆: 5、 实验代码 1. #include 2. #include 3. 4. // GLint pNum = 0; 5. GLint px1, py1, px2, py2, cx, cy, r; 6. GLint winWidth=600, winHeight=600; 7. 8. //////////////////画直线//////////// 9. void Draw_Bresenham(int pStartx,int pStarty,int pEndx,int pEndy) 10. {//用Bresenham算法画直线 11. int i; 12. 13. if(pStartx==pEndx) 14. { 15. //为竖线 16. if(pStarty<=pEndy) 17. { 18. for(i=pStarty;i<=pEndy;i++) 19. glVertex2f(pStartx,i); 20. } 21. else 22. { 23. for(i=pEndy;i<=pStarty;i++) 24. glVertex2f(pStartx,i); 25. } 26. 27. return; 28. } 29. 30. //为横线 31. if(pStarty==pEndy) 32. { 33. if(pStartx<=pEndx) 34. { 35. for(i=pStartx;i<=pEndx;i++) 36. glVertex2f(i,pStarty); 37. } 38. else 39. { 40. for(i=pEndx;i<=pStartx;i++) 41. glVertex2f(i,pStarty); 42. } 43. 44. return; 45. } 46. 47. //为斜线 48. float m=(pEndy-pStarty)*1.0/(pEndx-pStartx); 49. float p; 50. 51. p=2*m-1; 52. if(m>0 && m<=1) 53. { 54. if(pStartx=0) 60. { 61. p+=2*m-2; 62. pStarty++; 63. } 64. else 65. p+=2*m; 66....

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

实验一OpenGL直线、圆的绘制

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部