[发明专利]用户可控的二维形状遮挡处理方法有效
申请号: | 201410007541.7 | 申请日: | 2014-01-07 |
公开(公告)号: | CN103778653A | 公开(公告)日: | 2014-05-07 |
发明(设计)人: | 杨文武 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06T13/80 | 分类号: | G06T13/80 |
代理公司: | 杭州杭诚专利事务所有限公司 33109 | 代理人: | 尉伟敏 |
地址: | 310018 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用户 可控 二维 形状 遮挡 处理 方法 | ||
技术领域
本发明涉及二维形状显示技术领域,尤其是涉及一种可以高效且准确地实现二维形状上不同部分的遮挡处理的用户可控的二维形状遮挡方法。
背景技术
在计算机二维矢量动画等应用领域中,一般使用一个二维形状来表示一个二维角色。通常,一个二维形状由多条平面曲线组成,这些曲线可以是闭曲线也可以是开曲线,每条曲线对应着角色的一个特征。为了显示二维角色,只需逐条绘制对应的二维形状中的曲线。但是,由于各条曲线对应的角色特征之间可能相互遮挡,简单地绘制出每条曲线会产生出不正确的显示结果(如图1)。因此,需要对形状中的曲线进行遮挡处理,即:为每条曲线计算出它被其它曲线遮挡的部分,并在绘制时把曲线上被遮挡的部分设为不可见(如图2)。
平面曲线的遮挡处理一般包含两个步骤:
(1)设置曲线两两之间的遮挡关系,即哪条是遮挡曲线,哪条是被遮挡曲线,该步骤一般由用户交互指定完成;
(2)计算出被遮挡曲线上的被遮挡部分,并把该部分设置为绘制不可见。
为了计算被遮挡曲线上的被遮挡部分,一种简单直观的方法是让用户交互地标记出曲线上被遮挡的不可见部分,但是该方法需要较多的用户手工交互量。另一种方法是采用曲线裁剪技术来自动地计算出被遮挡曲线上的被遮挡部分。但是,曲线裁剪技术仅适用于遮挡曲线为封闭曲线的情况。
因此,如何正确且高效地为任意一组遮挡曲线和被遮挡曲线计算出被遮挡曲线上的被遮挡部分是二维形状遮挡处理亟需解决的问题。
中国专利授权公开号:CN101441772,授权公开日2009年5月27日,公开了一种三维辅助的二维图形绘制方法,步骤包括:步骤一、读入三维模型,获取三维模型的顶点的法向量、顶点的主曲率、顶点的高斯曲率和顶点的主曲率方向;步骤二、将所述三维模型安放在三维空间中,允许对所述三维模型的位置进行平移和旋转,用户可以方便的确定所述三维模型之间的空间位置关系及视角,并将所述三维模型投影在二维动画场景中;步骤三、绘制所述三维模型的边缘轮廓线;步骤四、获取与视点相关的特征线;步骤五、对步骤四所述与视点相关的特征线进行绘制。该发明的不足之处是,需要较多的用户手工交互量,遮挡处理的效率低。
发明内容
本发明的发明目的是为了克服现有技术中的遮挡处理方法需要较多的用户手工交互量,遮挡处理的效率低并且仅适用于对封闭曲线进行遮挡处理的不足,提供了一种可以高效且准确地实现二维形状上不同部分的遮挡处理的用户可控的二维形状遮挡方法。
为了实现上述目的,本发明采用以下技术方案:
一种用户可控的二维形状遮挡处理方法,包括如下步骤:
(1-1)在计算机中输入一个由多条曲线组成的二维形状,每条曲线与二维形状的一个特征相对应;
(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为曲线的末端点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410007541.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实时获取服务器动态IP地址的方法
- 下一篇:偏差补偿的多晶片封装