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

上传人:文*** 文档编号:92972287 上传时间:2023-06-18 格式:PDF 页数:20 大小:1.61MB
返回 下载 相关 举报
2023年计算机图形学实验报告4.pdf_第1页
第1页 / 共20页
2023年计算机图形学实验报告4.pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《2023年计算机图形学实验报告4.pdf》由会员分享,可在线阅读,更多相关《2023年计算机图形学实验报告4.pdf(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 计算机图形学实验报告姓 名:郭子玉学 号:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _班 级:计 算 机 12-2班实验地点:_ _ _ _ _ _ _ _ _ _ _ 逸夫楼507_实 验 时 间:15.04.1 ()15.04.17实验一1实验目的和规定理解直线生成的原理;掌握典型直线生成算法;掌握步解决、分析实验数据的能力;编 程 实 现 DDA算法、B r esenham中点算法;对于给定起点和终点的直线,分 别 调 用 DDA算 法 和 B r e s enham中点算法进行批量绘制,并记录两种算法的绘制时间;运 用

2、 exce 1 等数据分析软件,将实验结果编制成表格,并绘制折线图比较两种算法的性能。2实验环境和工具开发环境:Visual C+6.0实验平台:Exper im e n t_F ram e_0 n e(自制平台)3实验结果3.1 程序流程图(l)D D A 算法V否是3.2程序代码/-_ _-_ _ 一_ _ 一一一-算法实现_绘制像素的函数D rawPix e l(x,y);(1)DD A 算法v o i d C Ex p eri m ent_Fra m e _ 0 nt XO,in t Y 0,i nt XI,i n t Yl)(o-请 实 现D D A算法-f 1 o at k,b;f

3、l o at d;k=float(Yl-Y 0)/f 1 oat(X 1View:D D A(in II-X0);b=floa t(Xl*Y0-X0*Yl)/floa t(XI-X 0);i f(f a bs(k)XI)6 i n t temp=XO;iX O =X 1 ;o XI=temp;)o int x;o floa t y;=(int)X 0;y=(f 1 o a t)Y 0;while(x Yl)oo int tem p=Y 0;。丫0=Y l;。Yl=tem p;fl o at x;“i n t y;o x=(fl o at)X 0;“y=(i n t)Y0;“wh i 1 e(y

4、 d y)(。D=dx-2*dy;while(x=XI)6。DrawPix e 1(x,y);D 0)Od 000y=y+;-D=D+2*dx 2*dy;0。o o e l seOdd|D =D -2*d y;O 0。X +;)e e l s e6(。D =d y-2*d x ;o w h i 1 e(y =Y 1 )o D ra w P i x e l (x,y);o i f(D 0)ao 32 X=X +1 ;e D =D +2 *d y-2*d x;o e l sef i o o D =D-2*d x ;6 y+;)r e t u rn;3.3运宫结果(1)D D A算法(2)Mid_B

5、 r e senh a m 算法3.4 运营结果分析DD A 算法直观,实现简朴。但是涉及浮点数运算,不利于硬件实现。Mi d _Br e s e n h am 算 法 比 DDA算法简朴。两种算法实现生成的直线也也许会有不同。4实验心得通过实验,学习掌握了两种直线的扫描转换算法。不同方法有不同的优点,实现结果也有也许不同。需要通过比较,拟定哪种方法更优,更符合对的结果。实验二1 实验目的和规定理解多边形扫描转换的原理;掌握典型多边形扫描转换算法;掌握步解决、分析实验数据的能力;编程实现基本X 扫 描 线 转 换 算 法(必做);2 实验环境和工具开发环境:v i s u al C+6.0实验

6、平台:P o ly gon_C o nvers i o n(自制平台)3 实验结果3.1 程序流程图X-扫描线转换算法扫 描 线 与 各 线是根 据 公 式 求交 点 是 否 为 线 段否A A七MA -匕判 断 不 同 类 型是3.2程序代码/*功能:X-扫描线转换算法参数说明:0 ve r ti c e s 顶点列表。Vertex Num-顶点数目备注:D ra w P i x e l(in tx,int y)-绘制像素点(x,y)*/voi d CPol y g on_Co n versio n View:X_Scan_Line_Co ne rsion(int Vert i ces 2,

7、int VertexN u m)(int ym a x,ymi n,co u n t;of 1 oat k;ymax=Ver t ices 0 1;ymi n=V ertice s 0 1;。f or(int p=0;p ym a x)ymax=Vert i ces P U;o i f (Ve r ti c es p 1 y min)y m i n=Verticespl ;int Xn 1 00,i,yma x 2,ymin2,temp;for(i=ym i n;i=y max;i-F)/求交点ecount=0;f o r(i n t j=0;j Ver t i c es 0 1 J)/线 段

8、 的 y 最大值与最小值ymax2=V erti c esj 1 ;y m i n 2=Ve r t ice s 0 1;0 0 go else。ymax2=Ve r ti c e s 0l;o o ymi n 2=V e r ticesjl;0 0 0 0 o ;if(iymin2)判断交点是否在线段上,k=(f loat)(flo a t)(V e rticesjO-Vertice s 00)/(fl o at)(Ve r t i c es jl-Ve r ti c es 0 1);。Xnc o unt=(int)(k*(f 1 oat)i k*(f1 o at)VerticesOl +(

9、flo a t)V ert i c e s 0 0)+0.5);o c o u n t+;bbboo e l se i f (i =V e r t i c e s j l )/扫描线通过线段顶点,只算前一个顶点。i f(V e r t i c e s j-1 1 i )&(V e rt i c e s O l i)o o o o o X n c o u n t =V e rt i c e s j 0 ;bbbb C o u n t +;3 e X n c o u n t =V e rt i c e s j 0 ;abb 0 c o u n t+;d 0 0 a e l se i f (V e

10、rt i c e s j-l l i )I|(V e r t i c e s j-l l i)&(V e rt i c e s O l Vertices j+ll)ooo ym a x2=Verticesj 1;。oymin2=Vert i cesj+1 1;0)。o elsewymax2=V e rt i c e s j+1 1;a ym i n 2=V e rt i c e s jl;6 e i f(i y min 2)o-k=(f 1 o a t)(flo a t)(Vertices jO-Vertice s j+1 0)/(f l o at)(Ve r tic e s jl-Verti

11、cesj+1 1 );。o X n count=(i n t)(k*(flo a t)i-k*(flo a t)Ver t ic e s j+11+V erticesj+lO)+0.5);oooooco u nt+;b b o o e 1 s e i f (i =V e r t i c e s j 1 )扫描线通过线段顶点,只算前一个顶点i f(j!=0 )(交点不为第一和最后一点ooo i f(V e r t i c e s j 1 1 i )&(V e r t i c e s j +1 E U i)(o o o X n c o u n t =V e r t i c e s j 0 ;o o

12、 s o c o u n t+;a o o X n c o u n t =V e r t i c e s j 0 ;o bbbbc o u n t+;00 0 ooo。e 1 s e i f(V e r t i c e s j-l 1 i)|(V e r t i c e s j-l l i)&(V e r t i c e s j +l l i)&(V e r t i c esj+ll i)e X n c ou n t=V e rtic e s j 0;count+;。Xnc o u nt=V erticesjO;c ount+;0 66 o -else i f(V erti c es V e

13、rt e xN u m-11 i)|(V e r tic esVe r t e x N u m 1 1 i)&(V e r ticesj+l 1 i)。Xn c ount=V e rtices j0;00 0 0 0 0 C O U n t+;b。3 00 0 0 0 00f o r (i n t m0;m c o u n t-1;m+)交点x坐标排序f o r(i n t n =m+1 ;n X n n J)皿 t emp=Xn m;X n m =X n n ;a X n n =t e m p ;00 bbb )f o r(i n t a =0;a c o u n t ;a+=2 )绘制像素点。f o r(i n t b =X n a ;b X n a +1 ;b+)o。D r a w P i x e l(b,i);00 0 e t u r n;3.3 运营结果3.4 运营结果分析从运营结果看可以实现任意多边形的区域填充。4 实验心得通过这个实验,学习掌握了 X-扫描线转换算法,实现了区域填充。编写算法过程中,不断改善算法,在同学帮助下解决困难。但是尚有改善的有效边表算法没有去编写实现,程序在不断改善中不断优化,我们也可以从中学到许多知识。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com