[发明专利]2D图形任意角度旋转的实现方法及介质在审
申请号: | 202110419500.9 | 申请日: | 2021-04-19 |
公开(公告)号: | CN113284053A | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 方宁;原顺 | 申请(专利权)人: | 广州匠芯创科技有限公司 |
主分类号: | G06T3/60 | 分类号: | G06T3/60;G06T1/60 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 尹凡华 |
地址: | 510700 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 图形 任意 角度 旋转 实现 方法 介质 | ||
1.一种2D图形任意角度旋转的实现方法,用于2D引擎,其特征在于,包括:
对原图按NxN大小进行分块,所述分块包括四个顶点以及四条边界;N为行列数;
从DDR中将所述分块读取到SRAM中;
基于设定角度对原图分块进行正向映射,将原图分块中四个顶点的坐标通过坐标映射得到所述四个顶点在目标图中的坐标;
基于所述四个顶点在目标图中的坐标,通过Bresenham画线算法计算出所述四条边界在目标图中的边界点的所有坐标,得到目标块的边界坐标;
根据所述目标块的边界坐标,逐行扫描目标像素点的坐标;扫描过程中,每个目标像素点反向映射得到在原图中对应的4个相邻像素点,从SRAM中读出这4个相邻像素点,并通过双线性插值运算,计算出当前目标像素点的像素;
将目标像素点的像素写回DDR中。
2.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述四条边界中的第一边界和第二边界的像素点包含在所述分块内,第三边界和第四边界的像素点不包含在所述分块内,其中,所述第一边界和第二边界相邻。
3.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述基于设定角度对原图分块进行正向映射,将原图分块中四个顶点的坐标通过坐标映射得到所述四个顶点在目标图中的坐标包括:
获取各个顶点的坐标,基于旋转中心和旋转半径通过旋转公式将所述顶点的坐标进行正向映射,得到所述顶点在目标图中对应的坐标;
若原图的旋转中心与目标图的旋转中心坐标相同,所述旋转公式如下:
x1=x0*cosa+y0*sina
y1=-x0*sina+y0*cosa
其中,x1和y1分别为顶点目标图中的横纵坐标,x0和y0分别为顶点在原图中的横纵坐标,a为旋转角度。
4.根据权利要求3所述的2D图形任意角度旋转的实现方法,其特征在于,所述方法还包括:
若原图与目标图的旋转中心坐标不同,则旋转公式为:
x1=x0*cosa-y0*sina-m*cosa+n*sina+c
y1=x0*sina+y0*cosa-m*sina-n*cosa+d
其中,m和n分别为原图旋转中心的横纵坐标,c和d分别为目标图旋转中心的横纵坐标。
5.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述方法还包括:在目标像素点逐行扫描过程中,通过当前行中的两个边界坐标点,计算出当前行的起始坐标和长度。
6.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述方法还包括:在目标像素点逐行扫描过程中,去除不属于当前分块的边界点。
7.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述方法还包括:将计算出来的当前目标像素点的像素以行为单位缓存到SRAM中,然后以行为单位写回DDR中。
8.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述方法还包括:若计算得到的目标图的顶点坐标值为小数,对小数部分进行四舍五入取整。
9.根据权利要求1所述的2D图形任意角度旋转的实现方法,其特征在于,所述方法还包括:读取原图的分块到SRAM中时,将所述分块四个方向的多行多列像素点读取到SRAM中,得到M×M大小的分块,其中,M>N。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9中任一项的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州匠芯创科技有限公司,未经广州匠芯创科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110419500.9/1.html,转载请声明来源钻瓜专利网。