- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多边形的偏移填充算法多边形偏移(polygon offset)算法可能我们印象不深,不过用过autoCAD的同学也印象autoCAD上面也还是有这个功能的。我们可以用autoCAD上的“正多边形”功能画一个多边形,然后用修改工具中“偏移”按钮,对多边形进行偏移,见图1,从外面的一个大的5边形按照边偏移至里面小的5边形,其中相应边偏移的距离定义为offset值。
图1 AutoCAD中的多边形偏移效果图
? ? ? ? 当然,这只是简单的情况,复杂的情况可能是有多个多边形,其中1个outer多边形,多个inner多边形,然后offset的时候应该是outer多边形向内offset,inner多边形向外offset。当一个多边形(特别是凹多边形)初步offset时,可能会发生自交;然后多边形之间也可能会发生相交。大概思路:这里就需要首先将自交的多边形分裂出来,并选择正确的多边形;然后将选择出来的多边形进行求交计算,再一次将有相交的多边形合并分裂出来,并且选择正确的多边形,这个时候得到的全部多边形就是一次offset出来的结果。
1、为了保证outer多边形能向内offset,inner多边形能向外offset,这里需要保证outer多边形是逆时针方向旋转的,inner多边形是顺时针方向旋转的。
1.1 这里就稍稍讲下多边形的顺逆判断。
在多边形是简单多边形的前提下,其实还是挺简单的,只要找出多边形左下角的一个顶点,然后判断与这个顶点相连的两条边的叉积是否大于0就行了;如果多边形不是简单多边形,比如有自相交,有顶点夹角为0的情况等等,这个时候多边形就不应该有顺逆这种属性吧
2、对单个多边形,根据角平分线初步偏移得到角点
对于一个角点,可以设这个顶点为curPoint,相连的前一个点为prePoint,下一个点为nexPoint,于是可以得到两个向量a = prePoint – curPoint,b=nexPoint – curPoint。将向量a和b设置为单位向量之后,相加就能得到角平分线的方向向量c。然后对单位向量a和b做点乘和叉乘,就能得到这个角度的cos和sin值了,我们假设这个角度的一般为Θ,则cos=cos2Θ,sin=sin2Θ。根据三角函数,就能得到sinΘ值,之后将就能得到该顶点的角平分线方向的偏移向量d=c/|c|×offset÷sinΘ。
3、考虑到有些边在偏移的过程中会消失,即一些边有退化的offset值,见图3。如果初步偏移的值大于它的退化offset值,则该边就会反向出现,见图3中的边【4,5】,会给后面的程序带来很大的麻烦。
图2
图3
? ? ? ? ?由此对于一个特定的offset值,需要当前多边形每条边的退化offset值,当然有些边是没有退化offset值的,比如凸的inner多边形,offset的时候是向外扩张的,如果没有outer多边形限制的话,是不会结束offset的。我们就假设被有退化offset值的边的offset值为无穷大。而对于会退化的边来说,只需要将该边的两个顶点做的角平分线做求交计算得到交点,计算该交点到边的距离就得到这条边的退化offset值了。由此遍历每条边,得到最大的offset值和最小的offset值。
3.1、如果当前的offset值≥最大的退化offset值,多边形的offset操作就结束了
3.2、如果当前offset值≤最小的退化offset值,那就直接使用当前offset值做角平分线求初步offset角点
3.3、如果当前offset值在最小和最大退化offset值之间,则先使用最小offset值做初步offset角点,然后将当前offset值减去最小offset值,并重新计算全部的边的最小和最大offset值,重复上面过程,直至当前offset值≤最小offset值,进入3.2
4、第3步之后,多边形的初步offset已经完成,并且不存在反向边的情况。但此时的多边形可能存在自相交的情况以及顶点夹角为0的情况,见图4,5。
图4 初步偏移多边形自相交
图5 初步偏移多边形的一个顶点夹角为0
? ? ? ? ?4.1 检测顶点夹角为0的全部顶点,并将该点以及相关的边分裂出来
4.2 计算多边形的每条边的相交关系,并将全部的交点信息记录下来,其中包含交点坐标point(x, y),交点在所在的两条边的id0和id1,交点在两条边的位置rate0,rate1,其中point = edge0.Start+(edge0.End-edge0.Start)*rate0=edge1.Start+(edge1.End-edge1.Start)*rate1;
4.3 以其中一个初步偏移多边形的顶点为起点,顺着多边形的方向开始行进,遇到交点则行进方向改变,跳到交点
您可能关注的文档
- 外联商务礼仪.ppt
- 多加热炉炉温检测课程设计报告.doc
- 外贸片P4P操作.pptx
- 多因子检测产品资料.pptx
- 多壁碳纳米管填充丁苯橡胶的增强改性.doc
- 多元史观的运用(中国近代史).ppt
- 多媒体技术课程整理.docx
- 外墙石材、面砖拼砖设计指引——修改版.doc
- 多层线性模型概述1.ppt
- 多年来骑自行车的一些经验和体会.doc
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
最近下载
- 教师家访记录内容50篇.docx VIP
- 全国辅警考试题库+答案(2025版).docx VIP
- 项目成本管理(估算、预算、控制).ppt VIP
- 2024年广东省基层住院医师线上岗位培训《针灸技术》答案-中医学专业培训课程专业课.docx VIP
- DB44T2614.2-2025 农业面源污染监测及测算技术规范 第二部分:畜禽养殖业面源污染监测.pdf VIP
- 高考被动语态专项练习.pdf VIP
- 景观常用灌木.doc VIP
- 2025年储能电池热管理系统在光伏储能电站的集成与应用报告.docx VIP
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024) .pdf VIP
- 华为存储双活规划设计指南.pdf VIP
文档评论(0)