用户可控的二维形状遮挡处理方法技术

技术编号:10016611 阅读:152 留言:0更新日期:2014-05-08 12:37
本发明专利技术公开了一种用户可控的二维形状遮挡处理方法,本发明专利技术允许用户对任意两条开曲线或封闭曲线之间的遮挡关系以及曲线上被遮挡部分进行设置,最终仅需少量的用户交互即可实现曲线之间的遮挡处理。适用于对开曲线和封闭曲线进行遮挡处理。本发明专利技术具有遮挡处理更加准确、高效的特点。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种,本专利技术允许用户对任意两条开曲线或封闭曲线之间的遮挡关系以及曲线上被遮挡部分进行设置,最终仅需少量的用户交互即可实现曲线之间的遮挡处理。适用于对开曲线和封闭曲线进行遮挡处理。本专利技术具有遮挡处理更加准确、高效的特点。【专利说明】
本专利技术涉及二维形状显示
,尤其是涉及一种可以高效且准确地实现二维形状上不同部分的遮挡处理的用户可控的二维形状遮挡方法。
技术介绍
在计算机二维矢量动画等应用领域中,一般使用一个二维形状来表示一个二维角色。通常,一个二维形状由多条平面曲线组成,这些曲线可以是闭曲线也可以是开曲线,每条曲线对应着角色的一个特征。为了显示二维角色,只需逐条绘制对应的二维形状中的曲线。但是,由于各条曲线对应的角色特征之间可能相互遮挡,简单地绘制出每条曲线会产生出不正确的显示结果(如图1)。因此,需要对形状中的曲线进行遮挡处理,即:为每条曲线计算出它被其它曲线遮挡的部分,并在绘制时把曲线上被遮挡的部分设为不可见(如图2)。平面曲线的遮挡处理一般包含两个步骤:(I)设置曲线两两之间的遮挡关系,即哪条是遮挡曲线,哪条是被遮挡曲线,该步骤一般由用户交互指定完成;(2)计算出被遮挡曲线上的被遮挡部分,并把该部分设置为绘制不可见。为了计算被遮挡曲线上的被遮挡部分,一种简单直观的方法是让用户交互地标记出曲线上被遮挡的不可见部分,但是该方法需要较多的用户手工交互量。另一种方法是采用曲线裁剪技术来自动地计算出被遮挡曲线上的被遮挡部分。但是,曲线裁剪技术仅适用于遮挡曲线为封闭曲线的情况。因此,如何正确且高效地为任意一组遮挡曲线和被遮挡曲线计算出被遮挡曲线上的被遮挡部分是二维形状遮挡处理亟需解决的问题。中国专利授权【专利技术者】杨文武 申请人:浙江工商大学本文档来自技高网...

【技术保护点】
一种用户可控的二维形状遮挡处理方法,其特征是,包括如下步骤:(1‑1)在计算机中输入一个由多条曲线(1)组成的二维形状(2),每条曲线与二维形状的一个特征相对应;(1‑2)对于二维形状中存在遮挡关系的每两条曲线,用户先使用鼠标选中被遮挡曲线C2上未被遮挡部分的任一点P,然后使用鼠标选中遮挡曲线C1上的任一点E,从而确定C2和C1两条曲线之间存在一组遮挡关系;(1‑3)根据用户指定的每一组遮挡关系中被遮挡曲线C2上标记的未被遮挡点P的位置,计算机计算得到C2上的被遮挡部分,进而实现对二维形状上曲线之间的遮挡处理:(1‑3‑1)计算出被遮挡曲线C2与遮挡曲线C1之间的交点;(1‑3‑2)从P出发并沿着顺时针方向遍历C2,把C2上的交点依次放入有序集合A中;(1‑3‑3)当A中的交点个数为偶数,则依次取出有序集合A中的每对曲线交点;步骤a,将C2上按顺时针方向处于每对曲线交点之间的部分设为被遮挡部分,并把被遮挡部分设置为绘制时不可见;步骤b,当C2为开曲线,则再从P出发,沿着逆时针方向遍历C2,把C2上的交点依次放入有序集合B中,依次取出有序集合B中的每对曲线交点,将C2上按逆时针方向处于每对曲线交点之间的部分设为被遮挡部分,并把被遮挡部分设置为绘制不可见;(1‑3‑4)当A中的交点个数为奇数,先按照(1‑3‑3)中所述步骤对A中的交点进行处理,再对A中剩下的最后一个交点I进行如下处理:步骤c,计算出被遮挡曲线C2与用户为其指定的所有遮挡曲线C1之间的交点,并放入集合D中;步骤d,在集合D中,找到未被处理交点I在被遮挡曲线C2上的前一个交点X和后一个交点Y;当被遮挡曲线C2为开曲线并且X不存在,设定X为曲线的首端点;当被遮挡曲线C2为开曲线并且Y不存在,设定Y为曲线的末端点;步骤e,在被遮挡曲线C2上,若P位于I和X的连线之外,则设定I和X之间的曲线部分为被遮挡部分,并把被遮挡部分设置为绘制时不可见;步骤f,在被遮挡曲线C2上,若P位于I和Y的连线之外,则设定I和Y之间的曲线部分为被遮挡部分,并把被遮挡部分设置为绘制时不可见。...

【技术特征摘要】

【专利技术属性】
技术研发人员:杨文武
申请(专利权)人:浙江工商大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1