河南工业大学-图形学实验一

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第1页实验一:计算机绘图基础一、实验目的1、熟悉VC6.0开发环境;2、掌握MFC编程;3、掌握CDC图形程序库;4、掌握VC6.0下的简单图形程序的开发过程。二、实验要求1.在MFC单文档应用程序中,利用MFC应用程序向导生成完整的应用程序基本框架,添加“绘图”菜单,在“绘图”菜单下增加“三角形”子菜单,如图1.1所示,利用CDC类绘图函数编程实现以下功能:鼠标单击此菜单时在空白处显示一个三角形,位置大小不限,如图1.2所示。图1.1菜单示例图图1.2三角形显示《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第2页2.在上题基础上,在“绘图”菜单下再添加一个“动画”子菜单,如图2.1所示,利用绘制矩形的函数,设计程序,使得程序运行后出现动画效果,从外向内绘制矩形,如图2.2所示。图2.1菜单示例图图2.1绘制矩形制作动画图《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第3页3.在上题基础上,添加“小球”菜单,如图3.1所示,使得鼠标单击时绘制一个具有真实感的球,如图3.2所示。图3.1菜单示例图图3.2使用画点函数绘制的真实感的球三、实验内容(将实验完成中的一些代码和截图记录于此。)《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第4页○1完成菜单的添加○2新建一条直线具体代码实现:演示结果:voidCTest_oneView::OnDraw(CDC*pDC){//创建一个pDC指针CTest_oneDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);pDC-SetPixel(100,100,RGB(0,0,0));//设置起点,默认为(0,0)pDC-MoveTo(50,50);//设置中点pDC-LineTo(150,200);}《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第5页○3鼠标单击菜单时在空白处显示一个三角形voidCMainFrame::Ontriangle(){CDC*pDC=GetDC();//设置第一个点pDC-MoveTo(200,50);pDC-LineTo(300,200);//设置第二个点pDC-MoveTo(200,50);pDC-LineTo(100,200);//设置第三个点pDC-MoveTo(300,200);pDC-LineTo(100,200);}○4从外向内绘制矩形,并呈现出现动画效果voidCMainFrame::Onrectangle(){CDC*pDC=GetDC();inti;//矩形,具体来说是一个正方形for(i=50;i100;i=i+5){//参数意义:左上角的x坐标左上角的y坐标右下角的x坐标右下角的y坐标pDC-Rectangle(i,i,200-i,200-i);//休息0.5s,呈现动态效果Sleep(500);}}《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第6页○5绘制一个具有真实感的球voidCMainFrame::Onballl(){intx,inty,intr;x=150;//圆心x坐标y=150;//圆心y坐标r=80;//半径CDC*pDC=GetDC();doublew,u,d;intR=0,G=0,B=0;w=r;d=w/255;//里层循环是绘制一个圆,外层循环是绘制半径不同的圆while(w=0){for(u=0;u628;u=u+1){pDC-SetPixel((int)(x+w*cos(u/100)),(int)(y+w*sin(u/100)),RGB(R,G,B));}//每次颜色值分量增加,点变亮R++;G++;B++;//每次半径变小,圆逐渐向里面绘制w=w-d;}}}四、实验结果与总结(列出实验过程中的收获和遇到的困难)收获:以前用vc++写代码时,总是用来写一些算法的代码,觉得非常枯燥,所以更倾向于用java写一些带界面的管理系统。这次实验第一次认识MFC,学了三年总算见识到了c语言中的图形界面,可以用来绘一些图形,确实比较有意思,极大地引起了我的兴趣。困难:由于是第一次接触,还是遇到了一些困难,CDC图形程序库如此强大也不是一时半会就能掌握的。就像在画矩形的时候,本来是想用四条直线直接构成了一个矩形的,之后查阅资料才知道有pDC-Rectangle(x1,y1,x2,y2)函数,且里面的四个参数分表示左上和右下两个点的坐标。又如绘制小球的时候,虽然老师也提供了代码,但并不清楚具体是怎么实现的,之前不知道使用两个循环,里层循环是绘制一个圆,外层循环是绘制半径不同的圆,以及在外循环中国修改R,G,B的值来改变以颜色呈现真实感。《计算机图形学》实验指导实验1:计算机绘图基础任课教师:张苗2018.02.制第7页

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功