下载此文档

计算机图形学 实验四 二维图形的裁剪.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
西北农林科技大学实习报告学院名称:理学院专业班级:姓名:学号:课程:计算机图形学实验报告日期:第十五周实验四二维图形的裁剪一、实验目的1)加深直线段的剪裁算法的理解。2)熟练掌握一种裁剪算法的编程方法。二、实验步骤1)分析直线段和矩形窗口的位置关系,选定比较合理算法流程。2)画出程序流程图。3)编写程序的源程序。4)编辑源程序并进行调试。5)进行特殊模式的运行测试,并结合情况进行调整。三、实验内容1)在编码算法、中点分割算法、Liang-Barsky算法三种中任选一种作为编程模型。2)编写直线段裁剪的源程序。3)建议有能力的学生编写多边形裁剪程序。4)在计算机上编辑编译运行,实现直线段的裁剪。:直线和窗口的关系可以分为如下3类:(1)整条直线在窗口内。此时,不需剪裁,显示整条直线。(2)整条直线在窗口外,此时,不需剪裁,不显示整条直线。(3)部分直线在窗口内,部分直线在窗口外。此时,需要求出直线与窗框的交点,并将窗口外的直线部分剪裁掉,显示窗口内的直线部分。直线剪裁算法有两个主要步骤。首先将不需剪裁的直线挑出,即删去在窗外的直线。然后,对其余直线,逐条与窗框求交点,并将窗口外的部分删去。-Sutherland直线剪裁算法:(1)输入直线段的两端点坐标p1(x1,y1),p2(x2,y2),以及窗口的4条边界坐标,ywt,ywb,ywl,ywr.(2)对p1,p2进行编码,点p1的编码为code1,点p2的编码为code2.(3)若code1|code2=0,对直线p1p2“简取”之,转(6);否则,若code1&code2≠0,对直线段“简弃”之,转(7);当上述两条均不满足时,进行步骤(4)。(4)确保p1在窗口外部。若p1在窗口内,则交换p1和p2的坐标值和编码。(5)根据p1编码从低位开始寻找值为1的地方,从而确定p1在窗口外的哪一侧,然后求出直线段与相应窗口边界的交点S,并用交点S的坐标值替换p1的坐标值,即在交点S处把线段一分为二,因此可以去掉p1S。转(2)。(6)用直线扫描算法转换算法画出当前的直线段p1p2。(7)算法结束。图形描述:在MATLAB中输入:>>W=[3,7,2,5]W=3725>>P=[0,0,16,16]P=001616>>r=CSCutLine(W,P)r=1程序的源程序:M文件,命名为CSCutLine%计算机图形学直线裁剪CS编码算法functionr=CSCutLine(W,P)%result%{W=窗口坐标P=直线两端点坐标y=x/2W=[xwl,xwr,ywb,ywt]W=[3,7,2,6];P=[x1,y1,x2,y2]P=[0,0,16,8];%}%clear;clc;W=[3,7,2,6];P=[0,0,16,8];r=CSCutLine(W,P)xwl=W(1);xwr=W(2);ywb=W(3);ywt=W(4);x1=P(1);y1=P(2);x2=P(3);y2=P(4);Rectangle=[xwl,xwr,ywb,ywt];k=0;Lines=[];%取出线段P1=[x1,y1];P2=[x2,y2];PP=P1-P2;%计算斜率ifPP(1)==0k=inf;elsek=PP(2)/PP(1);endfinished=false;while(~fi

计算机图形学 实验四 二维图形的裁剪 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人glfsnxh
  • 文件大小81 KB
  • 时间2020-06-10
最近更新