计算机图形学-NLN线段剪裁算法_第1页
计算机图形学-NLN线段剪裁算法_第2页
计算机图形学-NLN线段剪裁算法_第3页
计算机图形学-NLN线段剪裁算法_第4页
计算机图形学-NLN线段剪裁算法_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机图形学线段剪裁算法Nicholl-Lee-Nicholl线段剪裁算法NLN直线段剪裁算法的特点直线段剪裁算法的特点 相对于其它两种算法,NLN直线段剪裁算法的特点是在进行求交点计算之前进行更多的区域测试,所谓的区域测试就是判断端点可能在那个区域,更多的区域测试可以减少求交点的运算。 在NLN直线段剪裁算法中,利用斜率将平面划分成若干区域。 首先,对于端点为p1和p2的直线段,我们要确定端点p1在前面划分的9个区域中的哪一个。我们只考虑如图的三种,其他6个区域可以通过对称变换转到我们讨论的三种。端点p1端点P1端点p1P1在裁剪窗口内部P1在一个边区域中P1在一个角区域中三种情况三种情况1

2、、端点、端点P1在裁剪窗口内部在裁剪窗口内部 此时端点P2一定是在裁剪窗口外面,因为两个端点都在裁剪窗口内的情况以讨论过。p1LRTBp2L1L2L3L4如果端点p1和p2连线的斜率大小(待裁剪的直线段的斜率)在射线L2和L3的斜率之间,那么另一端点p2在直线L2和L3之间的区域。此时我们再采用求交点运算。 设p1(x1,y1)和p2(x2,y2),待裁剪的直线段的斜率k=(y2-y1)/(x2-x1),那么该直线段方程是y=y1+k*(x-x1)。 p2点在直线L2和L3之间的区域时,待裁剪的直线段与裁剪窗口的右边界(x=XR)相交。交点的横坐标是x=XR,将横坐标带入直线方程就得到了交点的

3、纵坐标; 当p2在L1和L2围成的区域时,待裁剪的直线段与上边界(y=YT)相交,将直线方程改写为x-x1=(y-y1)/k,同样我们解出交点的横坐标。 通过画线方法将两个端点连接,进而得到在窗口可见的直线段。端点端点P1在裁剪窗口内部具体判别方法在裁剪窗口内部具体判别方法p1L1L2L3L4p22、点、点p1在裁剪窗口的正左边在裁剪窗口的正左边 端点p2的位置有两种选择,在裁剪窗口内部或在裁剪窗口的外面,利用点p2的编码来判断,即如果codep2=0,那么点p2在裁剪窗口内部;否则点p2在裁剪窗口外部。? (1)当k=k2 & kkab,p1为下图a所示;Kp1a=k1 & k=k2时,当p2在裁剪窗口的内部,求交点y=YT; x=(y-y1)/(y2-y1)*(x2-x1) ;交点(x,y),那么点p2与交点的连线就是我们的裁剪结果当p2在裁剪窗口的外部,此时我们需要求两个交点x0=XR; y0 =(y2-y1)/(x2-x1) *(x0-x1);交点(x0,y0)y=YT; x=(y-y1)/(y2-y1)*(x2-x1) ;交点(x,y),那么两个交点的连线就是我们的裁剪结果。如果靠近上边界如果靠近上边界p1L1L2L3L4 如果k不满足以上三种情况,那么待裁剪的直线段是完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论