




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
院 系: 数学与统计学学院 专 业: 信息与计算科学专业 年 级: 2013级 课程名称: 计算机图形学 组 号: 第35组 组 员: 李铮 秦文志 李丹 指导教师: 孙 阳 光 2016年06月05日年级2013级学号201321101027201321101028201321101029专业信息与计算科学专业姓名李铮秦文志李丹实验时间2016年4月26日实验地点9栋204实验名称实验一、 直线的扫描转换实验类型设计型综合型创新型实验目的1)理解在显示器上画图与在纸上画图的本质区别;2)掌握直线的光栅扫描转换过程;3)掌握不同算法绘制直线的思路和优缺点。 实验要求用基本增量算法和Bresenham算法画直线1)将像素网格表现出来,建立网格坐标系;2)显示判别式的计算过程和下一点的选择策略;3)记录生成点的坐标,建议用表的形式;4)图形生成过程可以重复进行。实验原理DDA代码:clearclose allclcx1=0;y1=0;x2=15;y2=12;figure,line(x1,x2,y1,y2,Color,0 0 1);length =abs(x2-x1)+1;dx=(x2-x1)/length;dy=(y2-y1)/length;k=dy/dx; x=x1;y=y1; hold on for i=1:lengthplot(round(x),floor(y+0.5),*r) x=x+1; y=y+k; end hold offBresenham代码:clearclose allclc x1=0;y1=0;x2=15;y2=12;figure,line(x1,x2,y1,y2,Color,0 0 1);length =abs(x2-x1)+1;dx=x2-x1;dy=y2-y1;e=2*dy-dx; x=x1;y=y1;hold onfor i=1:lengthplot(round(x),floor(y+0.5),*r)if(e=0) y=y+1; e=e-2*dx;endx=x+1;e=e+2*dy;endhold off实验结果分析Bresenham法:实验心得体会成绩评定教师签名: 年 月 日年级2013级学号201321101027201321101028201321101029专业信息与计算科学专业姓名李铮秦文志李丹实验时间2016年5月3日实验地点9栋204实验名称实验二、 圆弧的扫描转换实验类型设计型综合型创新型实验目的1)掌握圆和圆弧的光栅扫描转换过程;2)掌握不同算法绘制圆弧的技巧和优缺点。实验要求用正负法和Bresenham算法画圆弧1)将像素网格表现出来,建立网格坐标系;2)显示判别式的计算过程和下一点的选择策略;3)记录生成点的坐标,建议用表的形式;4)图形生成过程可以重复进行。实验原理Bresenham算法:function bresenham(b)x = 0;y = b;d=3-2*b;theta=0:0.01*pi:2*pi;x1=b*cos(theta)+0;y1=b*sin(theta)+0;plot(x1,y1);hold on plot(0,0,b+);hold on;while xyplot(x,y,*); plot(-x,-y,*);plot(-x,y,*);plot(x,-y,*);if d0plot(x,y,*); plot(-x,-y,*);plot(-x,y,*);plot(x,-y,*);if f0f=f-2*y+1;y=y-1;elsef=f+2*x+1;x=x+1;endif(y=0)plot(x,y,*);plot(-x,-y,*);plot(-x,y,*);plot(x,-y,*);endendhold off;实验结果分析Bresenham算法:正负法: 实验心得体会成绩评定教师签名: 年 月 日年级2013级学号201321101027201321101028201321101029专业信息与计算科学专业姓名李铮秦文志李丹实验时间2016年5月17日实验地点9栋204实验名称实验三、 直线段的裁剪实验类型设计型综合型创新型实验目的用Cohen-SutherLand算法和liang _barsky算法进行线段裁剪1)理解裁剪的相关概念 2)掌握直线段的一般裁剪过程; 3)理解并掌握Cohen-SutherLand 算法的编码思想; 4)理解并掌握Liang_Barsky算法的参数化裁剪思想;实验要求1)将像素网格表现出来,建立网格坐标系;2)交互输入剪裁线段和裁剪窗口;3)对于线段裁剪,线段被窗口的四条边裁剪的过程要显示出来;4)裁剪过程可以重复进行。实验原理Cohen-SutherLand算法核心代码:function Lines=Cohen_Sutherland(line,Rectangle)%编码裁剪算法%line为线段端点矩阵,共四列,其数据含义如下:% 端点A x坐标 端点A y坐标 端点B x坐标 端点B y坐标%Rectangle为窗口边界值,共四个元素,其含义分别为Xwl,Xwr,Ywb,Ywt。%首先检测参数是否合法row column=size(line);if column4|length(Rectangle)4 Lines=; fprintf(参数不合法不合法); return ;end%程序中主要变量说明%code为线段端点的编码矩阵,两行四列,第一行为点P1的编码,第二行为点P2的编码% 四列的含义为:D0,D1,D2,D3%依次处理line的各个线段 k=0; Lines=;for i=1:length(line(:,1) %取出第i条线段 P1=line(i,1,2); P2=line(i,3,4); %计算斜率 PP=P1-P2; if PP(1)=0 k=inf; else k=PP(2)/PP(1); end finished=false; while(finished) %对点P1和P2进行编码 code= P1(1)Rectangle(2),P1(2)Rectangle(4); P2(1)Rectangle(2),P2(2)Rectangle(4); ; % P1,P2,k,code %进行简取或简弃的判断 test=code(1,:)|code(2,:); %判断是否简取 if isempty(find(test0,1) Lines=Lines;P1,P2; finished=true; end %若当前线段处理完成,则退出 if finished break; end %判断是否简弃 test=code(1,:)&code(2,:); if isempty(find(test0, 1) finished=true; end if finished break; end %确保P1在窗口之外 if isempty(find(code(1,:)0,1) %交换P1,P2的坐标值和编码 PT=P1;P1=P2;P2=PT; PT=code(1,:);code(1,:)=code(2,:);code(2,:)=PT; end %从低位开始找编码值为1的地方 D=find(code(1,:)0,1); if D0,1); else %若线段是斜线,则计算y值,x值变为窗口的左边界或右边界 P1=Rectangle(D),P1(2)+k*(Rectangle(D)-P1(1); end else %此时P1位于窗口的上方或下方 if k=inf %若线段是竖直线,则x不变,y变为窗口的上边界或下边界 %且此时k不会等于0,否则线段将处于简弃状态。 P1(2)=Rectangle(D); else %若线段是斜线,则计算x值,y值变为窗口的上边界或下边界。 P1=P1(1)+(Rectangle(D)-P1(2)/k,Rectangle(D); end end %对P1和P2重新编码,再次计算。 % P1,P2,k,code % pause(10); % scanf(D,%d); % inputdlg(); endend%对最终点进行取整运算%Lines=round(Lines);end实验结果分析Cohen-SutherLand算法:实验心得体会 成绩评定教师签名: 年 月 日年级2013级学号201321101027201321101028201321101029专业信息与计算科学专业姓名李铮秦文志李丹实验时间2016年5月24日实验地点9栋204实验名称实验四、 多边形的裁剪实验类型设计型综合型创新型实验目的 1)理解多边形裁剪与直线段裁剪的区别; 2)掌握多边形的裁剪过程; 3)理解并掌握Sutherland-Hodgman算法的裁剪思想实验要求用Sutherland-Hodgman算法进行多边形裁剪1)将像素网格表现出来,建立网格坐标系;2)交互输入剪裁线段和裁剪窗口;3)多边形被窗口的四条边裁剪的过程以及多边形顶 点增删的过程要显示出来;4)裁剪过程可以重复进行。 实验原理核心算法:function PolygonClipping % 这是一个基于divide and conquer策略的Sutherland-Hodgeman多边形裁剪算法的Matlab程序 % % Copyright (c) Mar, 2006. Smart. All rights reserved. % Department of Computer Science & Technology % Northern China Electric Power University(Beijing)(NCEPU) % % 输入参数 %xp = 0.5, -2, -2, 1.5, 1.5, 0.5, 0.5, -1.5, -1.5, 0.5; % 待裁剪的多边形 %yp = -1.5, -1.5, 2, 2, 0, 0, 1.5, 1.5, 0.5, -1.5; xp = -2, 0.2, 1.6, -2; yp = 0.5, -2, 1.5, 0.5; nVertex = length(xp)-1; % 多边形顶点数 xw = -1 1 1 -1 -1; yw = -1 -1 1 1 -1; % 矩形裁剪窗口(窗口边界为逆时针方向,左下角顶点是第一个顶点) % 设置绘图环境 hold on; axis equal; grid on; % 画出要裁剪的多边形和裁剪窗口 plot(xp,yp,b-,LineWidth,2); for i = 1:nVertex text(xp(i),yp(i),P num2str(i) ( num2str(xp(i) , num2str(yp(i) ), FontSize,16,Color,0,1,1); end plot(xw,yw,g-,LineWidth,1.5); title(Sutherland-Hodgeman多边形裁剪算法演示); 按任意键继续. pause; % Sutherland-Hodgeman多边形裁剪算法实现 InVertX = xp; InVertY = yp; clr = r c m k; xText = (xw(1)+xw(2)/2; yText =(yw(2)+yw(3)/2; prompt = 窗口下边界裁剪结果; 窗口右边界裁剪结果; 窗口上边界裁剪结果; 窗口左边界裁剪结果; for j = 1:4 OutVertX,OutVertY = SutherlandHodgmanClip(InVertX,InVertY,xw(j),yw(j),xw(j+1),yw(j+1); InVertX = OutVertX; InVertY =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工合同变更效率提升策略分析报告
- 农业面源污染治理2025年农业面源污染治理区域规划研究报告
- 2025年医疗器械国产化替代中的产业创新与商业模式研究报告
- 深度剖析2025年智能家居系统互联互通标准引领产业推进策略报告
- 中医经典等级试题及答案
- 国际劳务合同
- 中医科科试题库及答案
- 智慧港口建设规划报告:2025年智能港口与港口智能化发展策略研究
- 中医历年考研试题及答案
- 中医面色测试题及答案
- 2025-2030国内中成药行业市场深度调研及发展前景与投资机会研究报告
- DB32T 4972.1-2024传染病突发公共卫生事件应急处置技术规范 第1部分:监测预警
- 银行合同签署管理制度
- 颈动脉粥样硬化的健康宣教
- 民丰县盼水河铅锑矿工程项目环境影响报告书
- 检验员考核标准
- 2025-2030咖啡豆和胶囊行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 餐饮业安全生产管理制度汇编
- 杜绝抱怨的培训
- 底泥资源化利用研究进展
- 大企业税收风险分析典型案例汇编
评论
0/150
提交评论