裁剪算法实验

一、 实验目的:

直线段的裁剪:编码裁剪算法,中点分割裁剪算法。

二、实验内容:

//BasicGraph.cpp

//请将下列裁剪程序补充完整,并用注释说明是何种裁剪算法

void Encode (int x,int y,int *code,int XL,int XR,int YB,int YT) {

//请将此程序补充完整

int c=0;

if(x

else if(x>XR) c=c|RIGHT;

if(y

else if(y>YT) c=c|TOP;

(*code)=c;

}

//编码裁剪算法:

void C_S_Line(POINT &p1,POINT &p2,int XL,int XR,int YB,int YT) {

//请将此程序补充完整

int x1,x2,y1,y2,x,y,code1,code2,code;

x1=p1.x; x2=p2.x; y1=p1.y; y2=p2.y;

Encode(x1,y1,&code1,XL,XR,YB,YT);

Encode(x2,y2,&code2,XL,XR,YB,YT);

while(code1!=0||code2!=0)

{

if((code1&code2)!=0) return;

code=code1;

if(code1==0) code=code2;

if((LEFT&code)!=0)

{x=XL;y=y1+(y2-y1)*(XL-x1)/(x2-x1);}

else if((RIGHT&code)!=0)

{x=XR;y=y1+(y2-y1)*(XR-x1)/(x2-x1);}

if((BOTTOM&code)!=0)

{y=YB;x=x1+(x2-x1)*(YB-y1)/(y2-y1);}

else if((TOP&code)!=0)

{y=YT;x=x1+(x2-x1)*(YT-y1)/(y2-y1);}

if(code==code1)

{x1=x;y1=y;Encode(x,y,&code1,XL,XR,YB,YT);}

else

{x2=x;y2=y;Encode(x,y,&code2,XL,XR,YB,YT);}

}

计算机图形剪裁程序说明,计算机图形学实验报告实验2裁剪算法实验相关推荐

  1. 计算机图形学实验报告 裁剪,计算机图形学-实验报告三-图形裁剪算法

    <计算机图形学-实验报告三-图形裁剪算法>由会员分享,可在线阅读,更多相关<计算机图形学-实验报告三-图形裁剪算法(9页珍藏版)>请在人人文库网上搜索. 1.图形裁剪算法1. ...

  2. 《计算机图形学》实验报告 Cohen Sutherland裁剪算法

    一.实验目的和要求 熟悉光栅图形学中的相关直线段裁剪算法.理解Cohen-Sutherland裁剪算法. 二.实验内容 实现Cohen-Sutherland编码线段裁剪算法,能看到裁剪前后的屏幕显示效 ...

  3. 计算机图形学 裁剪算法源代码,OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc...

    OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分  .<计算 ...

  4. 计算机图形学学习报告,计算机图形学学习报告.pdf

    精选公文范文 计算机图形学学习 报告 篇一:计算机图形学学习心得体会 计算机图形学学习心得体会 计算机科学与技术与技术 班 学号: 1.计算机图形学 计算机图形学(Computer Graphics, ...

  5. 计算机图形学学习报告,计算机图形学学习报告.doc

    计算机图形学学习报告 篇一:计算机图形学学习心得体会 计算机图形学学习心得体会 计算机科学与技术与技术 班 学号: 1.计算机图形学 计算机图形学(Computer Graphics,简称CG),狭义 ...

  6. 计算机微程序控制器实验报告,计算机组成原理实验报告三:微程序控制器实验.doc...

    计算机组成原理实验报告三:微程序控制器实验.doc 微程序控制器实验报告一. 实验目的1 掌握微程序控制器的功能.组成知识.(2)掌握为程序的编制.写入.观察微程序的运行二.实验设备PC机一台,TD- ...

  7. 计算机操作系统存储管理实验报告,《操作系统》存储管理实验报告

    <操作系统>存储管理实验报告 ____大学____学院实验报告课程名称: 计算机操作系统 实验名称: 存储管理实验 实验日期: 班级: 姓名: 学号: 仪器编号: XX 实验报告要求:1. ...

  8. 计算机组成原理算术运算实验报告,《计算机组成原理》实验报告---8位算术逻辑运算实验.doc...

    <计算机组成原理>实验报告---8位算术逻辑运算实验 计算机专业类课程 实验报告课程名称:计算机组成原理 学 院:信息与软件工程学院 专 业:软件工程 学生姓名: 学 号: 指导教师:日 ...

  9. 《程序设计基础》实验报告(第6次实验)

    <程序设计基础>实验报告(第6次实验) 学号 姓名 班级 实验名称:组合类.继承与多态 实验目的:掌握组合类.继承与多态的概念和使用 实验内容:(1)字符串类Mystring定义如下: c ...

最新文章

  1. 【转帖】Nginx优化use参数epoll,kqueue,rtsig,eventport,poll
  2. MySQL 插入数据时,中文乱码问题的解决
  3. Visual Studio 2019预览,净生产力
  4. 超赞!机器学习画图模板ML Visuals更新了
  5. 6.Java 面试题整理(XML)
  6. python跳出循环重新开始_python怎么跳出循环
  7. 【Tomcat】安装Tomcat服务器Tomcat的目录结构
  8. execl执行linux命令,Excel 调用Shell命令执行bash脚本和命令行代码
  9. 跟CSDN客服反馈的交流
  10. golang 如何通过cron 表达式解析出上一次触发时间
  11. 离散数学思维导图笔记
  12. 【点云阅读笔记】Learned Point Cloud Geometry Compression
  13. Birt报表开发工具及Birt runtime部署
  14. (自用随笔)PAT A1010
  15. 魅族手机里的便签怎么导出转移到新的手机上?
  16. R语言ggplot2可视化:使用patchwork包将两个ggplot2可视化结果图像垂直堆叠排列进行组合构图(vertically stack the plots)
  17. SCAU 18942 偏爱字母
  18. SQLserver主从同步报错:Message: 无法创建 AppDomain “mssqlsystemresource.dbo[runtime].
  19. VC2005断点进阶
  20. 联盟链和公有链混合架构如何实现?Hyperledger核心开发者陈昌访谈

热门文章

  1. 今日添加ubuntu7.10配置
  2. java 编译器原理_作业5:Java编译原理
  3. matlab绘图实例-绘制双纵轴曲线图
  4. Kali下卸载程序和安装程序的方法
  5. 微信开发者工具source看不了代码_微信开发者工具和开发
  6. 老九学堂-删除重复值
  7. 中止执行后超过2年_在法院中止执行后怎么办
  8. 阿里云 mysql 100_MySQL服务进程占用系统CPU达100%-阿里云开发者社区
  9. 设置谷歌浏览器安全级别
  10. microsoft store 安装包_Microsoft 办公软件免费了?