2023年计算机图形学实验报告新编.pdf





《2023年计算机图形学实验报告新编.pdf》由会员分享,可在线阅读,更多相关《2023年计算机图形学实验报告新编.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验一直线与圆的绘制(一)实验目的掌握用B e se n h a m 法编程实现直线和圆的绘制。会编程绘制虚线、点划线和具有一定宽度的直线。(二)实验内容用实现直线和圆的绘制基本规定:(1)数据输入项为:直线的起点与终点坐标,圆心坐标与半径(2)直线与圆输出在中附加规定:(1)通过用户输入可改变直线的线型(实线、虚线与点划线)(2)通过用户输入可改变直线的线宽(用方刷子解决)(3)通过用户输入可改变直线和圆的颜色(三)实验所用仪表及设备使用实验室提供的PC机。使用V i s u a l C+编程。(四)实验环节1.设计思绪1)设计对话框类2)设计菜单3)设计 CM y dra wVi e w
2、类数据成员pro t e c t e d:d o u b le x 0,y 0,x 1,yl,R;直线始点与终点、圆的半径in t cx,c y;/圆的坐标;成员函数vo i d Mybline();/直线中点 Bresen h a m 函数v o i d C i rclePoin t(dou b le x,d o uble y);/l 分子画圆子函数void Mb c ircle();圆中点 Bre s enh a m 函数4)程序代码v o i d CMyd r a wV i e w:Mybline()/中点 B resen h am 函数(SCCIi e n tDC d c(t h i
3、s);(3COL ORREF r g b=RG B(0,2 5 5,0);/定义直线颜色为蓝色0d ou b I e x,y,d,k,t:x=x 0;y=y 0;0if(a b s(xl-xO)le-6)(if(ylyO)(0 t=y 0;yO=yl;y 1 =t;00)0for(x=x 0,y=y0;y 1 )00Sif(y 1 y 0)S t=yO;y 0=y 1;y l=t;S00 t=x 0;x 0=xl;x 1 =t:m 00 d=l-0.5*k;目 for(x=xO/y=y 0;y=O)a 000X+;00 1 3 d+=1 k;00 01 3 e ls e0 0d+=1;000S
4、)ra f(0=k&kxl)0但 00t=xO;x 0=x 1 ;xl=t;团 t=yO;y 0=y 1;y l=t;TOSd=0.5-k;03Sfor(x=x 0,y=yO;xxl;x+)S S(d c.Se t PixelfROUN D(x),ROU N D(y),r g b);B 00 i f(d=-l&kxl)000t=xO;xO=x 1 ;xl=t;励团 t=yO;y 0=y 1;y 1 =t;0)0d=-O.5-k;0 0fo r(x=x 0zy=y O;x0)0 0 团 y-;0 d=l-k;m )由 elseE0 d-=-k;000)i f(k-l)明团i f(yOyl;y-)
5、m(0 d c.SetPixel(ROUND(x),ROUND(y),rgb);函 if(d S etWi n d o wText(基本图形扫描转换:Mybli n e );/R ed r a w Wi n dow();0My b line();v o i d CMy d rawVi e w::Mbc i rc 1 e()圆中点 Br e se n h a m 函数(0d o u b 1 e x,y,d;d=l.2 5 R;x=0;y=R;0for(x=O;x y;x+)(但 C ir c 1 ePoint(x,y);团 if(dSetWind o wText(基本图形扫描转换:Mbcir c
6、 1 e );Mb c ircle();)vo i d CMy d rawView:OnM E NUITEM c lear()清屏菜单函数/TODO:Add your command han d 1 er code hereSRed r awWindow();5)运营结果直线:(五)思考题如何修改程序使其适合于当直线斜率大于一或小于零时的情况?答:分组讨论大于一和小于零的情况,分别计算机d的值,程序如下:i f (k 1 )。oif(y l y O)a t=y O;y 0 =y 1 ;y 1 =t;”=xO;xO=x l;x 1 =t?d=1 -0 .5*k;。f o r(x=xO,y=y O
7、;y =0)f lx+;。d+=l-k?g e l s e2 d+=1 ;0 J o)i f (k =-l&k x 1)O f i j o t =x0:xO=x1:xl=t ;q t =y 0 ;y 0=y l;y l=t;g d=-0.5 -k:。o f or(x=x 0 ,y=y 0;x 0)。o(j-=1 -k;)。e ls e d-=-k;。)“f (k v-1)。if(y 0 。皿。dc.S e t P ixe l(R O U N D (x),。if (dC Bitm a p Bitmap,*pBitma p;Bitmap.LoadBitma p(IDB_B I TM AP1);。C
8、DC MemDC;oMemDC.CreateComp a tibleDC(G e t D C();叩Bitmap=MemDC.S el e ct 0 b j e c t(&Bitmap):MemDC.Bit B lt(O,O,R e c t.Wid t h(),R e c t.H e igh t(),&Pic t ure,0,0,SRC C OPY);。MemDC.TextO u t(wxl+wxr)/2,wyb-20J窗口)窗 口标题。/绘制窗口和直线C P e n P e n3,*p O 1 d Pen 3;/定义3个像素宽度的画笔Pen 3.C rea t e P e n(P S_SO
9、LID,3,RG B(0,0,0);pOld P en3=Mem D C.S e 1 e ctOb j ect(&P e n3);M e mDC.M o veTo(wx 1 ,wyt);Mem DC.L in e To(wx r,wyt);McmDC.L i n eTo(w x r,wyb);McmDC.LincTo(wxl,wyb);oM e mDC.LineTo(wxl,w y t);Mcm DC.S e 1 e c 10 b j ect(pO 1 d P e n 3);P e n 3.Dele t e Obje c t();C Pen Penl,*pOId Penl;定义1个像素宽度的画
10、笔oPenl.CreatePen(PS_SO L I D,1 ,RGB(0,0,255);pOldP e n l=MemDC.Sele c tObject(&Pen 1 );i f(m_ i=1)(e mDC.M o veTo(ROU ND(P o i n t x 0),ROUND(Po i n t y 0):ooMemDC.Li n eTo(ROUND(Po i ntx 1 ),ROUND(Pointyl);。)oMemDC.Se 1 e ctOb j e c t(pOl d Pe n 1 );Pe n 1.Delet e Object。;。CDC*dc=GetDC();dc-BitBlt(
11、0,0,Re ct.Width。,R e ct.Height(),&M e mDC,0,0,SRCCOPY);oMemDC.Sele c(Object(pB itm a p);/C MyCutView p rinti n gB OOL CM y C u tView:O n Pr e p a rePri n ting(CPrintinfo*p I n fo)/d e f a ult prepara t io nrctum D o P re p ar e P rintin g(plnfo);)vo i d CMyCu t View::OnBegin P r inting(C DC*/*pDC*/,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 计算机 图形学 实验 报告 新编

限制150内