一种计算机图像绘制优化方法

文档序号:8943771阅读:327来源:国知局
一种计算机图像绘制优化方法
【技术领域】
[0001]本发明涉及计算机图像绘制领域,且特别涉及一种计算机图像绘制优化方法。
【背景技术】
[0002]随着计算机的广泛应用,计算机图像绘制技术也日益发展,涉及美术、设计、教育以及会议等领域,越来越多的设计师以及计算机应用的使用人员开始利用计算机进行绘制图像,绘制图像的过程中往往涉及到线条的绘制。
[0003]计算机绘制图像是通过识别画笔(通过鼠标、手指或手写笔等输入设备进行控制)移动过程中的多个采集点,将这些点通过直线连接的方式按照画笔轨迹相连,得到一条画笔折线,所述折线可以粗略地表示出画笔的路径。
[0004]但是,由于每一条折线的斜率不同,在两条直线相连接的地方会出现尖点,当采样点数量不够时,会导致画笔轨迹出现很多尖点,使得曲线轨迹产生锯齿现象,线条波动拐点比较突兀,绘制的曲线不平滑,从而影响图像绘制的美观性和平滑性。当取样点的数量足够多的情况下,得到的折线会在显示时显得尽可能的平滑,但这需要获取大量的采样点数据,增加了数据传输和数据处理的负担,降低了图像绘制的效率。
[0005]特别是在在线教育、在线会议系统等直播环境下,由于实时性的要求,对图像绘制的算法有着高效、简洁、操作简单的需求,避免出现尖点锯齿现象或者需要使用者涂改绘制的图像而影响直播效果。

【发明内容】

[0006]本发明提出一种计算机图像绘制优化方法,提高图像绘制的美观性和平滑性,同时减少了采样数据传输量,提高了传输效率并且减轻了服务器的处理负担和内存开销。
[0007]为了达到上述目的,本发明提出一种计算机图像绘制优化方法,包括下列步骤:
[0008]获取画笔轨迹路径上的采样点的位置坐标数据;
[0009]对所述获取的采样点采用间隔舍弃的方式进行处理,并将处理结果存入采样点位置坐标集合中;
[0010]在所述采样点位置坐标集合中每两点采样点之间生成控制点;
[0011]将所述采样点位置坐标集合中的首尾两个采样点分别和相邻的两个控制点进行直线连接;
[0012]在剩余控制点中,将每两个控制点之间的采样点作为拐点,并将所述三个点进行曲线连接。
[0013]进一步的,所述控制点生成采用下列公式:
[0014]Xc=(XJXw)/^;
[0015]Yc= (Υι+Υι+1)/2 ;
[0016]其中,(Xc, Yc)为控制点位置坐标数据,(XJ1)和(Χ1+1,Υ1+1)分别为采样点位置坐标集合中相邻两个采样点的位置坐标数据。
[0017]进一步的,所述两个控制点和它们之间的采样点的曲线连接采用二次方贝塞尔曲线绘制。
[0018]进一步的,所述获取画笔轨迹路径上的采样点步骤为根据固定采样周期或采样间隔进行轨迹坐标点采样。
[0019]进一步的,所述画笔轨迹由鼠标、手指或者手写笔进行绘制。
[0020]进一步的,所述采样点位置坐标数据获取、采样点间隔舍弃处理、控制点生成和线条连接绘制在进行图像绘制的客户端完成,并将经过间隔舍弃处理的采样点位置坐标集合发送给服务端。
[0021]进一步的,所述服务端将收到的采样点位置坐标集合同步发送给其他客户端,在相应的客户端上生成控制点并进行线条连接绘制,实现图像绘制直播。
[0022]本发明提出的计算机图像绘制优化方法,采样间隔舍弃的方式对原始采样点进行处理,并在处理后的采样点间生成控制点,之后通过曲线连接完成线条绘制。通过上述优化方法绘制的线条,减少了采样点的密集度,减少了线条的凹凸情况,避免在线条拐点处出现尖点及锯齿现象,使得线条绘制更加平滑美观。通过间隔舍弃采样点,减少了上传至服务器的数据传输量,减轻网络传输压力和服务器处理负担,同时减少了服务器的内存开销。
【附图说明】
[0023]图1所示为本发明较佳实施例的计算机图像绘制优化方法流程图。
[0024]图2所示为根据原始采样点绘制的线条图像示意图。
[0025]图3所示为经过优化处理后绘制的线条图像示意图。
【具体实施方式】
[0026]以下结合附图给出本发明的【具体实施方式】,但本发明不限于以下的实施方式。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用于方便、明晰地辅助说明本发明实施例的目的。
[0027]请参考图1,图1所示为本发明较佳实施例的计算机图像绘制优化方法流程图。本发明提出一种计算机图像绘制优化方法,包括下列步骤:
[0028]步骤SlOO:获取画笔轨迹路径上的采样点的位置坐标数据;
[0029]步骤S200:对所述获取的采样点采用间隔舍弃的方式进行处理,并将处理结果存入采样点位置坐标集合中;
[0030]步骤S300:在所述采样点位置坐标集合中每两点采样点之间生成控制点;
[0031]步骤S400:将所述采样点位置坐标集合中的首尾两个采样点分别和相邻的两个控制点进行直线连接;
[0032]步骤S500:在剩余控制点中,将每两个控制点之间的采样点作为拐点,并将所述三个点进行曲线连接。
[0033]根据本发明较佳实施例,所述获取画笔轨迹路径上的采样点步骤为根据固定采样周期或采样间隔进行轨迹坐标点采样。进一步的,所述画笔轨迹由鼠标、手指或者手写笔进行绘制。原始采样是一组实时点的集合,以鼠标控制画笔轨迹进行绘制为例,在鼠标按下和本次鼠标释放之间采集的鼠标移动点的集合(MouseX,MouseY),采样点的获取是一次鼠标按下---移动---释放的过程中采集的鼠标在绘制区域平面上的坐标,所用到的事件有MouseEvent.M0USE_D0WN、MouseEvent.M0USE_M0VE、MouseEvent.M0USE_UPo
[0034]数据采样完成后,在线条绘制的客户端直接进行处理,将处理的结果发送到服务器,然后派送到其他客户端。处理方式是对原始采样点数据进行间隔舍弃,即从第一个采样点(线条绘制起始点)开始,每隔一个采样点就丢弃下一个采样点的数据,理论上剩余采样点的数量为原始采样点数量的一半或者一半多一个,将剩余的采样点数据存入采样点位置坐标集合中,以便实时发送给服务端并同步转发给其他客户端。
[0035]之后客户端会对剩余的采样点进行优化处理,即在所述采样点位置坐标集合中每两点采样点之间生成控制点,通过控制点的加入优化线条绘制。
[0036]根据本发明较佳实施例,所述控制点生成采用下列公式:
[0037]Xc=(XJXw)/^;
[0038]Y。= (Υι+Υι+1)/2 ;
[0039]其中,(Xc, Yc)为控制点位置坐标数据,(XJ1)和(Χ1+1,Υ1+1)分别为采样点位置坐标集合中相邻两个采样点的位置坐标数据,即所述控制点为相邻两个采样点的中点。
[0040]然后将所述采样点位置坐标集合中的首尾两个采样点分别和相邻的两个控制点进行直线连接,即整个线条绘制的开始和结尾两处为直线段连接。在剩余控制点中,将每两个控制点之间的采样点作为拐点,并将所述三个点进行曲线连接。进一步的,所述两个控制点和它们之间的采样点的曲线连接采用二次方贝塞尔曲线绘制。
[0041]贝塞尔曲线(B6zier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,贝塞尔曲线是计算机图形学中相当重要的参数曲线。二次贝塞尔曲线包含两个锚点和一个控制点,该曲线内插这两个锚点,并向控制点弯曲。依次对剩余的采样点和控制点进行二次贝塞尔曲线连接,最终达到线条绘制优化处理。
[0042]举一较佳实施例作为说明,请参考图2,图2所示为根据原始采样点绘制的线条图像示意图。其具体采样点数据如下:
[0043](X = 89, y = 324), (x = 89, y = 321), (x = 89, y = 320), (x = 90, y = 317), (x=93, y = 312), (x = 94, y = 308), (x = 94, y = 303), (x = 97, y = 296), (x = 97, y =293), (x = 98, y = 287), (x = 99, y = 280), (x = 100, y = 273), (x = 100, y = 264), (x =102, y = 256), (x = 103, y = 247), (x = 104, y = 238), (x = 105, y = 228), (x = 107, y =221), (x = 108, y = 213), (x = 109, y = 204), (x = 110, y = 196), (x = 112, y = 187), (x=113, y = 180),(x = 115, y = 174),(x = 118, y = 167),(x = 120,y = 161),(x = 125,y=155),(x = 130, y = 147),(x = 133, y = 144),(x = 137, y = 140), (x = 145, y =137), (x = 149, y = 135), (x = 157, y = 131), (x = 163, y = 130), (x = 168, y = 129), (x=173, y = 129), (x = 178, y = 129), (x = 182, y = 129), (x = 185, y = 129), (x = 191, y=131), (x = 197, y = 136), (x = 205, y = 143),(x = 211, y = 152), (x = 218, y
t , (x = 224, y = 173), (x = 231, y = 184), (x = 236, y = 193), (x = 242, y = 203), (x=247, y = 213), (x = 253, y = 219), (x = 258, y = 226), (x = 261, y = 230), (x =261, y = 2
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1