发明内容
针对上述存在的问题,本发明提供一种基于触摸屏的毛笔笔形校正方法、装置,用以克服现有的毛笔字笔形校正过程中存在的工作量繁重且校正效率较低的缺陷。
本发明提供了一种基于触摸屏的毛笔笔形校正方法,包括:
根据用户在待矫正电子设备的触摸屏上操作的笔形的触摸点位置对应的第一坐标点序列,以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定在所述标准电子设备的触摸屏上与所述第一坐标点序列对应的第二坐标点序列;
根据所述第二坐标点序列以及与所述第二坐标点序列对应的渲染点位置的坐标点序列,确定标准笔形宽度;
根据所述标准笔形宽度以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定矫正笔形宽度;
根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列;
根据所述矫正笔形宽度,以及与所述第一坐标点序列对应的渲染点位置的坐标点序列以进行毛笔笔形绘制和显示。
本发明还提供了一种基于触摸屏的毛笔笔形校正装置,包括:
第一确定模块,用于根据用户在待矫正电子设备的触摸屏上操作的笔形的触摸点位置对应的第一坐标点序列,以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定在所述标准电子设备的触摸屏上与所述第一坐标点序列对应的第二坐标点序列;
第二确定模块,用于根据所述第二坐标点序列以及与所述第二坐标点序列对应的渲染点位置的坐标点序列,确定标准笔形宽度;
第三确定模块,用于根据所述标准笔形宽度以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定矫正笔形宽度;
第四确定模块,用于根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列;
绘制模块,用于根据所述矫正笔形宽度,以及与所述第一坐标点序列对应的渲染点位置的坐标点序列以进行毛笔笔形绘制和显示。
本发明根据用户在待矫正电子设备的触摸屏上操作的笔形的触摸点位置对应的第一坐标点序列,以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定在所述标准电子设备的触摸屏上与所述第一坐标点序列对应的第二坐标点序列;进而根据所述第二坐标点序列以及与所述第二坐标点序列对应的渲染点位置的坐标点序列,确定标准笔形宽度;进而根据所述标准笔形宽度以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定矫正笔形宽度;进一步地,根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列;之后,根据所述矫正笔形宽度,以及与所述第一坐标点序列对应的渲染点位置的坐标点序列以进行毛笔笔形绘制和显示。从而可以实现在不同屏幕尺寸或不同分辨率的电子设备上书写毛笔字时,毛笔字的笔形粗细变化统一,书写效果一致。克服了现有的毛笔字笔形校正过程中存在的工作量繁重且校正效率较低的缺陷。
具体实施方式
图1为本发明基于触摸屏的毛笔笔形校正方法实施例的流程图,如图1所示,本实施例的方法可以包括:
步骤101、检测用户在待矫正电子设备的触摸屏上操作的笔形的触摸点位置对应的第一坐标点序列。
具体来说,当用户需要在待矫正电子设备的触摸屏上写出毛笔笔形的字体时,用户可以在触摸屏上进行触摸操作,相应的,处理器可以检测用户在该触摸屏上操作的触摸点位置。
本实施例并不限定检测该触摸点位置的具体算法,本领域技术人员可以根据需要自行选择或设计出所需精度的检测算法。
本实施例中,可以将检测到的第一坐标点序列记T1,T2,T3…Tn,n为一正整数,表示触摸点个数,坐标点Tn的横坐标为XTn,纵坐标为YTn。
步骤102、根据第一坐标点序列以及待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定在标准电子设备的触摸屏上与第一坐标点序列对应的第二坐标点序列;
其中,本实施例的触摸屏的硬件特征信息包括屏幕横向尺寸、纵向尺寸,横向分辨率、纵向分辨率。
其中,本实施例中,待矫正电子设备为用户当前进行毛笔字书写的电子设备,标准电子设备为具有最佳笔形渲染效果的设备。
具体来说,确定在所述标准电子设备的触摸屏上与所述第一坐标点序列对应的第二坐标点序列,包括:
利用公式确定第二坐标点的横坐标,其中,XTn为第一坐标点序列中任一坐标点的横坐标,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸,PHS为标准电子设备的触摸屏的纵向分辨率,n为一正整数,表示笔形中触摸点的个数;
利用公式确定第二坐标点的纵坐标,其中,YTn为第一坐标点序列中任一坐标点的纵坐标,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸,PHS为标准电子设备的触摸屏的纵向分辨率,n为一正整数,表示笔形中触摸点的个数。
步骤103、根据所述第二坐标点序列以及与所述第二坐标点序列对应的渲染点位置的坐标点序列,确定标准笔形宽度。
为了逼真地呈现出毛笔渲染的效果,本实施例需要根据第二坐标点序列来确定与所述第二坐标点序列对应的渲染点位置的坐标点序列。
具体来说,毛笔在宣纸上书写时,在运笔过后,宣纸上的墨迹逐渐扩散,墨迹的轨迹与毛笔运动轨迹有一定延迟,既毛笔书写过后宣纸上的墨迹逐渐扩散开形成最终笔画,因此,本实施例需要采用触摸点来得出具有一定时延的渲染点,从而可以逼真地模拟毛笔笔形有延时渲染的效果。
在具体实现时,可以采用下述公式来确定渲染点的坐标(X'Sn,Y'Sn):
其中,n为触摸点的个数,x′sn-1,x′sn-2,x′sn-3分别为前一个、前两个、前三个渲染点的横坐标,y′sn-1,y′sn-2,y′sn-3分别为前一个、前两个、前三个渲染点的纵坐标。
本领域技术人员可以理解的是,上述公式也可以进行合理变形,例如所乘的系数可以改变,或者,在n≥3时,均采用1/4(xsn+2x′sn-1+x′sn-2)。
为了逼真地呈现出毛笔笔形向周围渲染的效果,本实施例在确定标准笔形宽度时可以考虑笔形中所包含的触摸点的个数、笔形基本宽度、笔形起笔处的触摸点的个数、当前触摸点和前一个渲染点之间的距离。
在具体实现时,可以采用下述公式来确定标准笔形宽度WidthS:
其中,n为触摸点的个数,K为笔形变化系数,baseWidth为笔形基本宽度,startcount为起笔处的触摸点的个数,q为变化指数,distance为当前触摸点对应的第二坐标点和该第二坐标点的前一个渲染点之间的距离,
本领域技术人员可以理解的是,上述公式也可以进行合理变形,例如,不管n与startcount之间的大小关系,均可以采用其中一个表达式来计算笔形宽度widths;优选的,K的取值可以为30,baseWidth的取值可以为20,q取值可以为0.6。
步骤104、根据所述标准笔形宽度以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定矫正笔形宽度。
在具体实现时,采用下述公式来确定矫正笔形宽度Width:
其中,WidthS为标准笔形宽度,PHS为标准电子设备的触摸屏的纵向分辨率,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸。
步骤105、根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列;
为了使得在待矫正电子设备上书写的毛笔字笔形具有与在标准设备上书写的毛笔字笔形相同的最佳显示效果,本实施例中,根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列。
在具体实现时,根据公式确定与第一坐标点横坐标对应的渲染点位置的坐标点的横坐标,其中,XSn为第二坐标点的横坐标,PHS为标准电子设备的触摸屏的纵向分辨率,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸;
根据公式确定与第一坐标点纵坐标对应的渲染点位置的坐标点的纵坐标;YSn为第二坐标点的纵坐标,PHS为标准电子设备的触摸屏的纵向分辨率,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸。
进一步地,为了在待矫正电子设备上书写的毛笔字笔形具有最佳的显示效果,本实施例中,还可以计算横向渲染延时比若Kx大于最大渲染延时阈值ΔMax时,重新赋值X'Tn为(1+c)X'Tn-cXTn,重新计算横向渲染延时比Kx,直至Kx小于等于最大渲染延时阈值ΔMax,将重新赋值后的X'Tn确定为修正完成后的渲染点位置的坐标点的横坐标;ΔMax为一预设常数(如0.2),c为渲染延时调整单步比,为一预设常数(如0.01);
计算纵向渲染延时比若Ky大于最大渲染延时阈值ΔMax,重新赋值Y'Tn为(1+c)Y'Tn-cYTn,重新计算纵向渲染延时比Ky,直至Ky小于等于最大渲染延时阈值ΔMax,将重新赋值后的Y'Tn确定为修正完成后的渲染点位置的坐标点的纵坐标,ΔMax为一预设常数(如0.2),c为渲染延时调整单步比,为一预设常数(如0.01)。
步骤106、根据所述矫正笔形宽度,以及与所述第一坐标点序列对应的渲染点位置的坐标点序列以进行毛笔笔形绘制和显示。
具体来说,若当前渲染点不为最后一点,则可以用宽度为矫正笔形宽度width的连接线连接前一渲染点及当前渲染点,其中连接线起始处及结尾处连接有直径为矫正笔形宽度width的半圆,该半圆能够使得连接线接缝处较为平滑。
若当前渲染点为最后一点,且笔形的个数小于等于3个,则用宽度为矫正笔形宽度width的连接线连接前一渲染点及当前渲染点,其中连接线起始处及结尾处连接有直径为矫正笔形宽度width的半圆;若当前渲染点是最后一点且渲染点的个数大于3个,则在当前渲染点后添加至少一个收笔渲染点,并以连接线连接最末渲染点及各个收笔渲染点,连接线的宽度为上次连接线宽度乘以收笔宽度衰减系数G(G可以取0.8),增加毛笔结尾处拖拽的效果。
本发明根据用户在待矫正电子设备的触摸屏上操作的笔形的触摸点位置对应的第一坐标点序列,以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定在所述标准电子设备的触摸屏上与所述第一坐标点序列对应的第二坐标点序列;进而根据所述第二坐标点序列以及与所述第二坐标点序列对应的渲染点位置的坐标点序列,确定标准笔形宽度;进而根据所述标准笔形宽度以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定矫正笔形宽度;进一步地,根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列;之后,根据所述矫正笔形宽度,以及与所述第一坐标点序列对应的渲染点位置的坐标点序列以进行毛笔笔形绘制和显示。从而可以实现在不同屏幕尺寸或不同分辨率的电子设备上书写毛笔字时,毛笔字的笔形粗细变化统一,书写效果一致。不需要专业技术人员针对不同的电子设备进行实际测试后并重新校正毛笔笔形模拟方法的参数,提高了毛笔字笔形校正效率,因此,克服了毛笔字笔形校正过程中存在的工作量繁重且校正效率较低的缺陷。
图2为本发明基于触摸屏的毛笔笔形校正装置实施例的结构示意图,如图2所示,本实施例的装置可以包括:
第一确定模块21,用于根据用户在待矫正电子设备的触摸屏上操作的笔形的触摸点位置对应的第一坐标点序列,以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定在所述标准电子设备的触摸屏上与所述第一坐标点序列对应的第二坐标点序列;
第二确定模块22,用于根据所述第二坐标点序列以及与所述第二坐标点序列对应的渲染点位置的坐标点序列,确定标准笔形宽度;
第三确定模块23,用于根据所述标准笔形宽度以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定矫正笔形宽度;
第四确定模块24,用于根据所述第二坐标点序列以及所述待矫正电子设备的触摸屏的硬件特征信息和标准电子设备的触摸屏的硬件特征信息,确定与所述第一坐标点序列对应的渲染点位置的坐标点序列;
绘制模块25,用于根据所述矫正笔形宽度,以及与所述第一坐标点序列对应的渲染点位置的坐标点序列以进行毛笔笔形绘制和显示。
其中,本实施例中所述的硬件特征信息包括屏幕横向尺寸、纵向尺寸,横向分辨率、纵向分辨率;
其中,所述第一确定模块具体用于:
利用公式确定第二坐标点的横坐标,其中,XTn为第一坐标点序列中任一坐标点的横坐标,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸,PHS为标准电子设备的触摸屏的纵向分辨率,n为一正整数,表示笔形中触摸点的个数;
利用公式确定第二坐标点的纵坐标,其中,YTn为第一坐标点序列中任一坐标点的纵坐标,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸,PHS为标准电子设备的触摸屏的纵向分辨率,n为一正整数,表示笔形中触摸点的个数。
其中,所述第三确定模块具体用于:
采用下述公式来确定矫正笔形宽度Width:
其中,WidthS为标准笔形宽度,PHS为标准电子设备的触摸屏的纵向分辨率,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸。
其中,所述第四确定模块具体用于:
根据公式确定渲染点位置的坐标点的横坐标,其中,XSn为第二坐标点的横坐标,PHS为标准电子设备的触摸屏的纵向分辨率,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸;
根据公式确定渲染点位置的坐标点的纵坐标;YSn为第二坐标点的纵坐标,PHS为标准电子设备的触摸屏的纵向分辨率,PHT为待矫正电子设备的触摸屏的纵向分辨率,HS为标准电子设备的纵向尺寸,HT为待矫正电子设备的纵向尺寸。
其中,所述第四确定模块具体还用于:
计算横向渲染延时比若Kx大于最大渲染延时阈值ΔMax时,重新赋值X'Tn为(1+c)X'Tn-cXTn,重新计算横向渲染延时比Kx,直至Kx小于等于最大渲染延时阈值ΔMax,将重新赋值后的X'Tn确定为修正完成后的渲染点位置的坐标点的横坐标;ΔMax为一预设常数,c为渲染延时调整单步比,为一预设常数;
计算纵向渲染延时比若Ky大于最大渲染延时阈值ΔMax,重新赋值Y'Tn为(1+c)Y'Tn-cYTn,重新计算纵向渲染延时比Ky,直至Ky小于等于最大渲染延时阈值ΔMax,将重新赋值后的Y'Tn确定为修正完成后的渲染点位置的坐标点的纵坐标,ΔMax为一预设常数,c为渲染延时调整单步比,为一预设常数。
本实施例的装置可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。