2022年实验4编码裁剪算法.pdf
《2022年实验4编码裁剪算法.pdf》由会员分享,可在线阅读,更多相关《2022年实验4编码裁剪算法.pdf(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、实验 4 编码裁剪算法1. 实验目的了解二维图形裁剪的原理(点的裁剪、直线的裁剪、多边形的裁剪),利用VC+OpenGL 实现直线的裁剪算法。2. 实验内容(1) 理解直线裁剪的原理(Cohen-Surtherland算法、梁友栋算法)(2) 利用 VC+OpenGL 实现直线的编码裁剪算法,在屏幕上用一个封闭矩形裁剪任意一条直线。(3) 调试、编译、修改程序。(4) 尝试实现梁友栋裁剪算法。实验原理编码裁剪算法中,为了快速判断一条直线段与矩形窗口的位置关系,采用了如图所示的空间划分和编码方案。裁剪一条线段时,先求出两端点所在的区号code1 和 code2,若 code1 = 0 且 cod
2、e2 = 0,则说明线段的两个端点均在窗口内,那么整条线段必在窗口内,应取之;若code1 和 code2经按位与运算的结果不为0,则说明两个端点同在窗口的上方、下方、左方或右方。这种情况下, 对线段的处理是弃之。如果上述两种条件都不成立,则按第三种情况处理。求出线段与窗口某边的交点,在交点处把线段一分为二,其中必有一段完全在窗口外,可弃之,对另一段则重复上述处理。实验代码#include #include #include #define LEFT_EDGE 1精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - -
3、-第 1 页,共 9 页 - - - - - - - - - - #define RIGHT_EDGE 2#define BOTTOM_EDGE 4#define TOP_EDGE 8void LineGL( int x0, int y0, int x1, int y1)glBegin(GL_LINES);glColor3f,;glVertex2f(x0,y0);glColor3f,;glVertex2f(x1,y1);glEnd();struct Rectanglefloat xmin,xmax,ymin,ymax;Rectangle rect;int x0,y0,x1,y1;int Com
4、pCode( int x, int y,Rectangle rect)/ 求端点所在区号int code=0 x00;if (ycode=code|8; /1000 上if (xcode=code|2; /0010 右if (xcode=code|1; /0001 左精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 9 页 - - - - - - - - - - return code;int cohensutherlandlineclip(Rectangle rect,int &x0, int
5、 &y0, int &x1, int &y1)int accept,done;float x,y;accept=0;done=0;int code0,code1,codeout;code0=CompCode(x0,y0,rect);code1=CompCode(x1,y1,rect);doif (!(code0|code1)/ 端点均在视区内accept=1; / 取done=1;elseif (code0&code1) / 端点在视区外侧x0=y0=x1=y1=0;done=1;accept=1;else if (code0!=0)codeout=code0; else codeout=co
6、de1;if (codeout&LEFT_EDGE)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 9 页 - - - - - - - - - - y=y0+(y1-y0)*/(x1-x0);/ 直线与视区边界的交点x=(float); elseif (codeout&RIGHT_EDGE)y=y0+(y1-y0)*/(x1-x0);x=(float); elseif (codeout&BOTTOM_EDGE)x=x0+(x1-x0)*/(y1-y0);y=(float); elseif (c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 实验 编码 裁剪 算法
限制150内