版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1线段的编码裁剪算法内容大纲1图形裁剪简介2线段与裁剪框的关系3编码规则4编码裁剪算法5编码裁剪程序设计1图形裁剪简介裁剪三种情况②整个线段全在裁剪框外
①整个线段全在裁剪框内③线段部分在裁剪框外,
部分在裁剪框内。
(一个端点在内,一个端点在外,或两个端点全在窗口外)需要裁剪2线段与裁剪框的关系?将裁剪框的边界延长分为九个区域1
110
000001110
00000000000111111000000上四位二进制编码XXXX下右左3编码规则问题:上下?右左2)若两端点的编码按位与不为0000:
?1)若两端点的编码均为0000:
线段在裁剪框内。3)否则计算线段与裁剪框(或延长线)的交点及编码,以交点作为裁剪后线段的新端点,重复1)、2)、3)。4编码裁剪算法
直线段在裁剪框外。【例1】用编码法裁剪如下直线段010100100100001000000010000000004编码裁剪算法00100010001001004编码裁剪算法【例2】用编码法裁剪如下直线段(1)端点编码函数设计已知点(x,y),编码??elseif(x>裁剪框右边)code=2;code=0;if(x<裁剪框左边)code=1;if(y<裁剪框底边)code=code+4;else
if(y>裁剪框顶边)code=code+8;0001(1)
0010(2)0100(4)
1000(8)
5编码裁剪程序设计intCode(RECTr,intx,inty){intcode=0;if(x<r.left)code=1;elseif(x>r.right)code=2;if(y<r.bottom)code=code+4;elseif(y>r.top)code=code+8;returncode;}5编码裁剪程序设计(1)端点编码函数设计11
求线段终点(x2,y2)编码c2
(2)线段裁剪函数设计while(1)//起点可能要裁多次5编码裁剪程序设计
{求线段起点(x1,y1)编码c1if(c1==0&&c2==0)(x1,y1)到(x2,y2)画线
,结束;
elseif((c1&c2)!=0)结束;
elseif(c1==0)交换起点与终点的坐标和编码
根据编码值判断,并计算交点作为新起点}
voidClippingLine(CDC*pDC,RECTr,intx1,inty1,intx2,inty2,COLORREFcolor){intt,c1,c2;c2=Code(r,x2,y2); //计算(x2,y2)的区域编码码
while(true){c1=Code(r,x1,y1); //计算(x1,y1)的编码区域码
if(c1==0&&c2==0)
{Line_DDA(pDC,x1,y1,x2,y2,color);return;}//(x1,y1)(x2,y2)在窗口内绘制直线段elseif((c1&c2)!=0)return; //直线不可见
elseif(c1==0){t=x1,x1=x2,x2=t;t=y1,y1=y2,y2=t;t=c1,c1=c2,c2=t;}//交换坐标及编码
if((c1&1)!=0)y1=y1+(y2-y1)*(r.left-x1)/(x2-x1),x1=r.left;//(x1,y1)在裁剪框左边
elseif((c1&2)!=0)y1=y1+(y2-y1)*(r.right-x1)/(x2-x1),x1=r.right;//在;//在裁剪框下边
elseif((c1&8)!=0)x1=x1+(x2-x1)*(r.top-y1)/(y2-y1),y1=r.top;//在裁裁剪框右边
elseif((c1&4)!=0)x1=x1+(x2-x1)*(r.bottom-y1)/(y2-y1),y1=r.bottom剪框上边
}}5编码裁剪程序设计【应用案例】水平滚动的矢量字1)矢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西省九江市中小学教师招聘考试试题及答案详解
- 2026年大庆市萨尔图区中小学教师招聘考试备考题库及答案详解
- 华南理工大学造纸与污染控制国家工程研究中心胡老师团队专技辅助岗-工程实验技术人员招聘考试备考题库及答案详解
- 2026年数字藏品蓝绿部署实践
- 江苏省淮安市三县区2027届四年级数学第一学期期末考试试题含解析
- 2026年珠海市拱北区法检系统书记员招聘考试参考试题及答案详解
- 2026年长春市朝阳区中小学教师招聘考试备考试题及答案详解
- 2026年宜春市袁州区法检系统书记员招聘考试模拟试题及答案详解
- 2025年鹤岗市工农区中小学教师招聘笔试试题及答案详解
- 广东省东莞市东城街道2027届六年级数学第一学期期末联考模拟试题含解析
- 2024年《广西壮族自治区房屋修缮工程消耗量定额(建筑装饰工程)》
- 营地安全应急预案
- 2025年-《中华民族共同体概论》课程教学大纲-大连民族大学-新版
- 《绿色建筑符合性评估标准》
- 采血室感控知识培训计划课件
- 恶劣天气行车安全培训课件
- 浙江省心理b证笔试试题(含答案)
- 2025年《幼儿园3-6岁指南》考试试卷(含答案)
- 2025年初级编辑考试真题及答案
- 自体造血干细胞移植适应症
- 嗜铬细胞瘤的护理
评论
0/150
提交评论