博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
裁剪算法——多边形裁剪/文字裁剪
阅读量:5312 次
发布时间:2019-06-14

本文共 750 字,大约阅读时间需要 2 分钟。

 

五、多边形裁剪

多边形裁剪算法的输出应该是裁剪后的多边形边界的【定点序列】
5.1Sutherland—Hodgeman多边形裁剪——>【分而治之】
基本思想:
将多边形边界作为一个整体,每次用窗口的一条边对要裁剪的多边形和中间结果多边形进行裁剪。
把平面分为两个区域:包含有窗口区域的一个域称为可见侧;不包含窗口区域的域为不可见侧。
裁剪得到的结果多边形的顶点有两部分组成:
    (1)落在可见一侧的原多边形顶点;
    (2)多边形的边与裁剪窗口边界的交点。
根据多边形每一边与窗口所形成的位置关系,沿着多边形依次处理顶点会遇到四种情况:
(1)第一点S在不可见侧面,第二点P在可见侧面,则交点I与点P均被加入到输出顶点表中;
(2)第一点S和第二点P都在可见侧,则点P被加入到输出顶点表中;
(3)第一点S在可见侧,而第二点P在不可见侧,则交点I被加入到输出顶点表中;
(4)第一点S和第二点P都在不可见侧,则输出顶点表中不增加任何顶点
【不足之处】
Sutherland—Hodgeman算法对凸多边形进行裁剪可以获得正确的裁剪结果,但是对凹多边形进行裁剪的结果可能存在问题。
六、文字裁剪
文字裁剪包括:串精度裁剪/字符精度裁剪/笔画/象素精度裁剪
6.1串精度裁剪
当字符串中的【所有】字符都在裁剪窗口内时,就全部保留它,否则舍弃整个字符串。
6.2字符精度裁剪
在进行裁剪时,任何与窗口有【重叠或落在窗口边界以外】的字符都被裁剪掉
6.3笔画/象素精度裁剪
将笔划分解成直线段对窗口坐裁剪,需要判断字符串中各字符的哪些象素、笔画的【哪一部分】在窗口内,保留窗口内部分,裁剪掉窗口外的部分。

转载于:https://www.cnblogs.com/Penglimei/p/9690418.html

你可能感兴趣的文章
Linux笔记_Linux系统下如何查看及修改文件读写权限
查看>>
前端读者 | 前端面试基础手册(HTML+CSS)
查看>>
(五)归一化
查看>>
【SERVER_NAME】PHP中的SERVER_NAME【原创】
查看>>
hdu 5884 Sort 队列+多叉哈夫曼树
查看>>
hdu 4737 A Bit Fun 尺取法
查看>>
使用信号量
查看>>
《数据分析实战》--第三章 python实现
查看>>
crontab command not found
查看>>
记录-springMVC访问web-inf下文件问题+在jsp页面导入jquery插件路径不对问题
查看>>
对于C语言中数组名是指针的理解
查看>>
实验八 接口与实现接口的类
查看>>
mac OSx 安装 mysqlclient
查看>>
Scala for the Impatients---(10)Traits
查看>>
简单的姓名号码查询系统
查看>>
PostgreSQL 保留关键字添加方法之一,不带参数的函数
查看>>
你的博客可能被爬了
查看>>
赛前热手 (天梯赛暴力题)
查看>>
Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(终结版)...
查看>>
在线集成开发环境
查看>>