[发明专利]Cyrus‑Beck算法用于凹多边形反射轨迹解算算法在审
申请号: | 201610587598.8 | 申请日: | 2016-07-22 |
公开(公告)号: | CN106600636A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 陈科;林江莉;周美玲 | 申请(专利权)人: | 四川大学 |
主分类号: | G06T7/60 | 分类号: | G06T7/60 |
代理公司: | 成都顶峰专利事务所(普通合伙)51224 | 代理人: | 赵正寅 |
地址: | 610000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | cyrus beck 算法 用于 多边形 反射 轨迹 算算 | ||
技术领域
本发明涉及一种Cyrus-Beck算法用于凹多边形反射轨迹解算算法。
背景技术
Cyrus-Beck算法是1978年Cyrus和Beck提出的一种凸多边形窗口的线裁剪算法,它通过判断直线段的方向矢量与窗口边界法向矢量的点积是否大于零,如果大于零,交点分在上组;如果小于零,则交点分在下组。然后分别取上组中的最小交点和下组中的最大交点,即得到线段可见部分的端点。这是一种参数化的求交方法,只用一次除法和两次乘法就能解出交点的参数。
Cyrus-Beck算法是采用逐边裁剪的方法,使其只适用于凸多边形,不适用于凹多边形。
发明内容
为了改善上述问题,本发明提供一种Cyrus-Beck算法用于凹多边形反射轨迹解算算法。
为了实现上述目的,本发明采用的技术方案如下:
一种Cyrus-Beck算法用于凹多边形反射轨迹解算算法,其特征在于,包括以下步骤:
(1)多边形的顶点按顺时针保存,并将每条边界的外法向量保存;
(2)根据声轨迹线的方向向量c与声轨迹线的外法向量N的积判断声轨迹线与边界是否相交,若相交,求出交点;
(3)判断交点在边界线段上;若交点在边界线段上,而不在边界的延长线上,得到两个交点;
(4)将两个交点保存在一个临时数组,令声轨迹线的起点为A,离A距离最短的即为凹多边形的有效交点。
进一步地,步骤(2)是通过Cyrus-Beck算法求出交点。
本发明较现有技术相比,具有以下优点及有益效果:
本发明提供了一种凹多边形的裁剪算法,能够实现对凹多边形进行裁剪。
附图说明
图1为射线与直线的交点示意图。
图2为凸多边形的线裁剪示意图。
图3为Cyrus-Beck算法直接用于凹多边形求交示意图。
图4为射线与线段求交示意图。
图5为判断声轨迹线在边界线段上的示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
Cyrus-Beck算法原理:
Cyrus-Beck算法是1978年Cyrus和Beck提出的一种凸多边形窗口的线裁剪算法,它通过判断直线段的方向矢量与窗口边界法向矢量的点积是否大于零,如果大于零,交点分在上组;如果小于零,则交点分在下组。然后分别取上组中的最小交点和下组中的最大交点,即得到线段可见部分的端点。这是一种参数化的求交方法,只用一次除法和两次乘法就能解出交点的参数。
Cyrus-Beck算法数学基础:
在图形学中,求一条直线与另一条直线或者一个平面的交点问题是十分常 见的,例如直线与直线的求交,即二维平面上,直线与多边形边的交点求解问题。首先假设一条射线的参数表达式:
R(t)=A+ct(0≤t<∞)(2-1)
式(2-1)中,A表示射线的起始点位置,c表示射线的方向向量,参数t用于区分射线上的每一个点,所以在t=0时,R(t)的位置在A点,t变化时,R(t)则表示为在t处的点的位置。
如图1所示,假设有另一直线,点P是直线上任意一点且由向量n与直线正交。则该直线可表示为:
n·(P-B)=0(点-发向量表达式)(2-2)
直线的点-法向量表达式说明:对于直线上的任意一点P,都能使式(2-2)所表示的点积结果为0。
接下来计算图1中射线与直线的交点,假设在t=thit处,R(t)与直线相交(在此,我们将参数t看成时间,thit作为击中时间,交点看作击中点)。二维情况下,两线在thit处的点的坐标必然相同,所以A+cthit一点满足n·(P-B)=0,则有:
n·(A+cthit-B)=0(2-3)
最终可以得到thit的一个表达式:
式(2-4)中,分母n·c=0表示两直线平行,这种情况下,两线没有交点。
得到击中时间后,击中点即两直线的交点便很容易得到,将thit代入到射线的参数表达式中:
Phit=A+cthit(2-5)
Cyrus-Beck裁剪算法:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610587598.8/2.html,转载请声明来源钻瓜专利网。