CN112115679A - 绘制线条的方法、装置、终端设备和存储介质 - Google Patents

绘制线条的方法、装置、终端设备和存储介质 Download PDF

Info

Publication number
CN112115679A
CN112115679A CN202010816357.2A CN202010816357A CN112115679A CN 112115679 A CN112115679 A CN 112115679A CN 202010816357 A CN202010816357 A CN 202010816357A CN 112115679 A CN112115679 A CN 112115679A
Authority
CN
China
Prior art keywords
line
track
function
track segment
lines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010816357.2A
Other languages
English (en)
Other versions
CN112115679B (zh
Inventor
陆永健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Photool Vision Co ltd
Original Assignee
Shenzhen Photool Vision Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Photool Vision Co ltd filed Critical Shenzhen Photool Vision Co ltd
Priority to CN202010816357.2A priority Critical patent/CN112115679B/zh
Publication of CN112115679A publication Critical patent/CN112115679A/zh
Application granted granted Critical
Publication of CN112115679B publication Critical patent/CN112115679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请适用于计算机技术领域,提供了一种绘制线条的方法、装置、终端设备和存储介质。该绘制线条的方法包括:在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。本申请通过采用不同颜色的画刷绘制不同的轨迹片段对应的线条,能够绘制出带有渐变色的线条,从而对演讲中的重点内容进行标识,提升重点内容标识效果。

Description

绘制线条的方法、装置、终端设备和存储介质
技术领域
本申请属于计算机技术领域,尤其涉及一种绘制线条的方法、装置、终端设备和存储介质。
背景技术
人们在演讲时,往往需要通过投屏展示演讲内容,并对屏幕上的重点内容进行标识。目前常用的标识方法是在演讲的重点内容下方绘制线条,虽然绘制线条能够让重点内容更醒目,但是当线条颜色和背景颜色相同或者相似时,重点内容的标识效果较差。
发明内容
有鉴于此,本申请实施例提供了一种绘制线条的方法、装置、终端设备和存储介质,可以绘制出渐变色的线条,提升重点内容的标识效果。
第一方面,本申请实施例提供了一种绘制线条的方法,包括:
在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;
分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。
本申请实施例通过采用不同颜色的画刷绘制不同的轨迹片段对应的线条,能够获得渐变色线条对演讲中的重点内容进行标识,提升重点内容的标识效果。
进一步的,所述检测线条绘制点的移动轨迹包括:
根据获取到的绘制点移动指令,确定所述线条绘制点的初始位置和当前位置;
根据所述初始位置和所述当前位置,构建所述线条绘制点的移动轨迹;
对所述移动轨迹进行划分,得到所述多个轨迹片段。
在检测到开始绘制线条的操作后,记录线条的起点,并检测绘制点移动指令,每当检测到一个绘制点移动指令,则通过当前的绘制点移动指令和前一个绘制点移动指令(或者线条的起点)确定出所述线条绘制点的初始位置和当前位置。得到线条绘制点的初始位置和当前位置之后,就可以根据两个位置构建线条绘制点的移动轨迹,然后采用设定的方式对该移动轨迹进行划分,可以得到多个轨迹片段。
进一步的,对所述移动轨迹进行划分,得到所述多个轨迹片段包括:
获取所述移动轨迹的多个位置点的坐标值,将所述多个位置点的坐标值依次传入预先构建的回调函数中;
在将一个所述位置点的坐标值传入所述回调函数后,通过所述回调函数对当前传入的位置点的坐标值和上次传入的位置点的坐标值进行处理,得到一个所述轨迹片段。
移动轨迹对应有多个位置点,相邻的两个位置点即可构成一个轨迹片段。因此可以将多个位置点的坐标值依次传入预先构建的回调函数中,回调函数在获取到一个位置点的坐标值后,结合获取到的上一个位置点的坐标值,即可获得一个轨迹片段。
进一步的,分别绘制每个所述轨迹片段对应的线条,包括:
每获取一个所述轨迹片段,在所述回调函数中创建一把画刷;
将所述画刷的颜色参数赋值为预设的颜色变量值;
使用所述画刷绘制当前获取的所述轨迹片段对应的线条;
在绘制完当前获取的所述轨迹片段对应的线条后,更新所述颜色变量值,然后获取下一个所述轨迹片段执行重复的操作。
回调函数除了可以将移动轨迹划分为多个轨迹片段,还可以创建画刷绘制轨迹片段。得到画刷后,会利用预设的颜色变量值为画刷的颜色参数赋值,使用赋值后的画刷绘制轨迹片段对应的线条,绘制出来的线条颜色值和当前的颜色变量值相同。为了使不同的轨迹片段颜色不同,在绘制完一个轨迹片段后,会在更新颜色变量值后绘制下一个轨迹片段。
进一步的,使用所述画刷绘制当前获取的所述轨迹片段对应的线条,包括:
调用第一线条绘制函数绘制覆盖所述轨迹片段的第一线条,所述第一线条连续且具有锯齿边缘;
调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,所述第二线条不连续且不具有锯齿边缘,所述第二线条的宽度大于所述第一线条。
目前常用的线条绘制函数中,一类函数所绘制出来的线条虽然连续性好,但线条的边缘可能存在锯齿问题;而另一类函数虽然能够绘制出边界清晰无锯齿的线条,但线条可能出现中部断裂的问题。因此,可以结合这两类函数绘制线条,从而绘制出连续且边缘无锯齿的线条。
进一步的,所述第二线条绘制函数为Drawline函数,调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,包括:
将所述Drawline函数设置为平滑模式,然后调用所述Drawline函数绘制覆盖所述轨迹片段的第二线条。
具体的,第二线条绘制函数可以是Drawline函数,Drawline函数所绘制的线条本身也会有锯齿边缘,但可以通过设置该函数的设置为平滑模式,从而绘制出边缘清晰无锯齿的第二线条。
进一步的,若检测到结束绘制的操作指令,则退出绘制线条的操作。
当线条绘制完成后,会检测是否有结束绘制的操作指令,例如用鼠标进行绘制的时候,是按住鼠标左键进行绘制,当线条绘制完成后,则松开鼠标左键。那么,松开鼠标左键即为结束绘制的操作指令,当检测到用户松开鼠标左键,则退出线条绘制的操作。
第二方面,本申请实施例提供了一种绘制线条的装置,包括:
轨迹片段获取模块,用于在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;
线条绘制模块,用于分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的绘制线条的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的绘制线条的方法。
本申请实施例与现有技术相比存在的有益效果是:可以绘制出渐变色的线条,提升重点内容的标识效果,且实施简便,实用性强。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种绘制线条的方法的流程图;
图2是本申请实施例提供的绘制线条的方法在一个实际应用场景下的流程图;
图3是本申请实施例提供的一种绘制线条的装置的结构图;
图4是本申请实施例提供的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定装置结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的绘制线条的方法可以应用于手机、平板电脑、医疗设备、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备或者服务器上,本申请实施例对终端设备和服务器的具体类型不作任何限制。
绘制线条是计算机系统所具备的一项基本功能,但是目前的线条大多为纯色线条,在演讲过程中,如果当前展示演讲内容的背景颜色和线条颜色相同或相似,通过画线对演讲内容中的重点内容进行标识,标识效果较差。为了解决该问题,本申请提出一种新的绘制线条的方法,能绘制出渐变色的线条,提升重点内容标识效果。
请参阅图1,图1示出了本申请提供的一种绘制线条的方法的流程图,包括:
101、在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;
首先,获取线条绘制指令,即获取进入线条绘制模式的信号。具体的,当采用鼠标绘制线条时,线条绘制指令可以是按下鼠标左键;当通过画笔或者手指在触控屏上绘制线条时,线条绘制指令可以是画笔或者手指触摸触控屏并持续拖动触碰点。检测到线条绘制指令之后,会记录该指令当前的位置,即线条的起点。之后会检测线条绘制点被拖拽所形成移动轨迹,所述移动轨迹包含了多个轨迹片段。具体的,所述线条绘制点可以是鼠标光标或者触控屏的触碰点。
在一个实施例中,以鼠标绘制线条为例,所述检测线条绘制点的移动轨迹包括:
201、根据获取到的绘制点移动指令,确定所述线条绘制点的初始位置和当前位置;
绘制点移动指令可以是计算机系统在检测到鼠标移动后,所产生的鼠标移动消息(WM_MOUSEMOVE),在一条线条的绘制过程中,会产生多个鼠标移动消息,根据相邻的两个鼠标移动消息即可构建出一个移动轨迹。具体的,每获得一个鼠标移动消息,就可以结合上一个鼠标移动消息,获得线条绘制点在这两个鼠标移动消息之间的移动轨迹。比如,根据当前的鼠标移动消息获取移动轨迹的当前位置,根据上一个的鼠标移动消息获取移动轨迹的初始位置。
202、根据所述初始位置和所述当前位置,构建所述线条绘制点的移动轨迹;
有了移动轨迹的初始位置和当前位置,就能够构建出移动轨迹。这里所说的移动轨迹的初始位置和当前位置是相对的,例如,第一个移动轨迹片段的初始位置为线条的起点,当前位置为第一个鼠标移动消息所对应的位置;而第二个移动轨迹片段的初始位置则为第一个鼠标移动消息所对应的位置,当前位置则为第二个鼠标移动消息对应的位置,以此类推。
203、对所述移动轨迹进行划分,得到所述多个轨迹片段。
在线条的绘制过程中,为了避免移动轨迹过长,低速绘制或者绘制的线条太短时线条渐变效果不明显,可以将移动轨迹拆分成多个轨迹片段,再对轨迹片段分别进行绘制,以增强线条的渐变效果。
在一个实施例中,对所述移动轨迹进行划分,得到所述多个轨迹片段包括:
获取所述移动轨迹的多个位置点的坐标值,将所述多个位置点的坐标值依次传入预先构建的回调函数中;
在将一个所述位置点的坐标值传入所述回调函数后,通过所述回调函数对当前传入的位置点的坐标值和上次传入的位置点的坐标值进行处理,得到一个所述轨迹片段。
在本实施例中,通过移动轨迹的多个位置点的坐标值划分所述移动轨迹,因此划分移动轨迹之前,需要获取到所述移动轨迹的多个位置点的多个坐标值。具体的,可以使用LineDDA函数来获取位置点的坐标值,LineDDA函数是Windows系统的一个接口(API),其主要功能是用来获取已知的两个坐标点之间的移动轨迹数据,也即获取移动轨迹的多个位置点的坐标值。LineDDA函数获得多个位置点的坐标值之后,可以为LineDDA函数定义一个回调函数(LineDDACallback函数),用来拆分移动轨迹并对拆分得到的轨迹片段进行绘制。回调函数是一个通过函数指针调用的函数,在特定事件或条件发生时由另外的一方调用,用于对该特定事件或条件进行响应。在本实施例中,要调用LineDDACallback函数对移动轨迹进行划分,需要在LineDDA函数获得多个坐标值,将坐标值作为参数依次传给LineDDACallback函数,当传入2个及以上位置点的坐标值后,LineDDACallback函数即响应于传入的位置点的坐标值,对移动轨迹进行划分。具体的,在传入一个位置点的坐标值之后,LineDDACallback函数会根据当前传入的参数和上次传入的位置点的坐标值,得到一个所述轨迹片段,随着位置点的坐标值的不断传入,能够获得多个轨迹片段。
102、分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。
每获得一个轨迹片段,即可绘制该轨迹片段对应的线条,为了让所绘制的线条具有颜色渐变效果,可以采用不同颜色的画刷绘制不同的轨迹片段。具体的,在一个实施例中,分别绘制每个所述轨迹片段对应的线条,包括:
(1)每获取一个所述轨迹片段,在所述回调函数中创建一把画刷;
(2)将所述画刷的颜色参数赋值为预设的颜色变量值;
(3)使用所述画刷绘制当前获取的所述轨迹片段对应的线条;
(4)在绘制完当前获取的所述轨迹片段对应的线条后,更新所述颜色变量值,然后获取下一个所述轨迹片段执行重复的操作。
要采用不同颜色的画刷绘制不同的轨迹片段,可以在每次绘制轨迹片段对应的线条时,都单独创建一把画刷,并赋予该画刷一个不同于前一轨迹片段的颜色。具体的,可以将画刷的颜色参数赋值为预设的颜色变量值,颜色变量值在每次绘制完当前获得的轨迹片段之后,会进行更新。优选的所述颜色变量值可以按照预设的颜色变化规律来进行更新。例如,颜色变化规律可以为RGB(250,0,0)->RGB(250,250,0)->RGB(0,250,0)->RGB(0,250,250)->RGB(0,0,250)->RGB(250,0,250)->RGB(250,0,0),优选的,颜色变量值的步长设置为5,可以让线条的颜色渐变效果更明显。
其中,由于创建画刷需要调用操作系统的API,该API需要通过操作系统调用来完成函数功能,而系统调用该API时需要进入内核空间,结束后又切换到用户空间,因此频繁的新建画刷会让系统在用户态和内核态中频繁切换,导致占用过多的系统资源(CPU资源和内存资源)。为了减少系统资源的消耗,可以在每次绘制完获得的轨迹片段之后,释放当前因创建画刷绘制线条所占用的系统资源,从而提高线条绘制的效率。
为了绘制出平滑的线条,在一个实施例中,使用所述画刷绘制当前获取的所述轨迹片段对应的线条,包括:
调用第一线条绘制函数绘制覆盖所述轨迹片段的第一线条,所述第一线条连续且具有锯齿边缘;
调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,所述第二线条不连续且不具有锯齿边缘,所述第二线条的宽度大于所述第一线条。
目前常用的线条绘制函数中,一类函数所绘制出来的线条虽然连续性好,但线条的边缘可能存在锯齿问题;而另一类函数虽然能够绘制出边界清晰无锯齿的线条,但线条可能出现中部断裂的问题。因此,可以结合这两类函数绘制线条,从而绘制出连续且边缘无锯齿的线条。具体的,可以先用第一线条绘制函数,绘制出连续性好,但有锯齿边缘的第一线条;再用第二线条绘制函数,绘制边界清晰无锯齿,但线条中部会有断裂,连续性差的第二线条,使两条线条覆盖当前绘制的轨迹片段,并将第二线条的宽度设置为大于第一线条的宽度,这样当两条线段覆盖轨迹片段后,第二线条的边界可以覆盖第一线条的锯齿部分,第一线条中部的位置可以填补第二线条中部的断裂处,从而绘制出一条平滑的线条。
具体的,在一个实施例中,所述第二线条绘制函数为Drawline函数,调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,可以包括:
将所述Drawline函数设置为平滑模式,然后调用所述Drawline函数绘制覆盖所述轨迹片段的第二线条。
在实际操作中,可以将Drawline函数设置为平滑模式,从而绘制出边界清晰无锯齿的线条。结合第一线条绘制函数,可以让轨迹片段对应的线条平滑且连续性好。为了便于理解,举例说明,假设第一线条绘制函数是MoveToEx函数和LineTo函数。在实际使用中,MoveToEx、LineTo(Fun1)绘制的第一线条边界锯齿严重,但线条中部连续性好;将DrawLine函数设置为平滑模式,绘制出的第二线条边界清晰无锯齿,但中部的连接处会有断裂,导致线条不连续。将两者结合起来使用,让Drawline函数绘制的第二线条宽度大于MoveToEx函数和LineTo函数绘制的第一线条,当两部分线条覆盖轨迹片段后,即可获得一条平滑的连续线条。
当结束一段移动轨迹的绘制,则会检测是否有新的绘制点移动指令。若检测到新的绘制点移动指令,会构建新的移动轨迹,并对该移动轨迹重复上述拆分、绘制等操作。若没有检测到新的绘制点移动指令,则会检测是否有线条结束绘制的操作指令,当获取到线条绘制结束的操作指令,则退出绘制线条的操作。以鼠标进行线条绘制为例,线条结束绘制的操作指令即为松开鼠标左键,当检测到松开鼠标左键,则代表线条绘制完成,退出线条绘制的操作。
本申请实施例通过采用不同颜色的画刷绘制不同的轨迹片段对应的线条,能绘制出渐变色线条对演讲的重点内容进行标识,提升重点内容标识效果。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为便于理解,下面以实际应用场景来说明本申请提出的绘制线条的方法。
本申请提出的绘制线条的方法在一个实际应用场景下的流程图如图2所示。具体的,以鼠标在Windows操作系统下绘制线条为例。
在图2中,首先,软件会检测用户是否按下鼠标左键进行线条绘制,当检测到用户按下鼠标左键,即进入线条绘制模式。进入线条绘制模式后,软件会先记录下线条的起点,并监测操作系统是否生成鼠标移动消息,当检测到第一个鼠标移动消息后,会反馈给软件。软件会根据线条的起点和第一个鼠标移动消息确定出鼠标指针的初始位置和当前位置,根据这两个位置即可构建出移动轨迹,之后软件会调用lineDAA函数获取移动轨迹的多个位置点的坐标值。
然后,获得的多个位置点的坐标值会被依次传入预设的回调函数中,将移动轨迹划分为多个轨迹片段。举例说明,假设总共有8个位置点的坐标值,会依次将第1个、第2个、第3个…第8个位置点的坐标值传给回调函数。当回调函数接收到第2个位置点的坐标值后,会根据已经获得的位置点的坐标值从移动轨迹中划分出第一个轨迹片段,当对第一个轨迹片段完成绘制后,会根据第3个位置点的坐标值和第2个位置点的坐标值从移动轨迹中划分出第二个轨迹片段,依次类推,可以通过8个位置点的坐标值获得7个轨迹片段并对每个轨迹片段进行绘制。
具体的,当获取到第一个轨迹片段后,软件会调用预先构建的回调函数对该片段进行绘制。绘制的具体过程可以是,首先在回调函数中创建一把画刷,并将画刷的颜色参数赋值为颜色变量值,假设颜色变化规律为“红→黄→蓝→绿→青→蓝→紫”,那么此时的画刷颜色是红色,利用画刷绘制的第一个轨迹片段对应的线条颜色即为红色。由于绘制的过程中,所调用函数是MoveToEx函数和LineTo函数,绘制的线条边界锯齿严重,但线条中部连续性好,因此需要调用设置为平滑模式的DrawLine函数再绘制一条边界清晰无锯齿的线条覆盖原来的线条,让绘制出来的线条连续且边缘光滑。同样以获得7个轨迹片段为例,当绘制完第一个轨迹片段后,会释放绘制第一个轨迹片段所占用的系统资源,并将更新颜色变量值为黄色,接着对第二个轨迹片段执行绘制的相应操作。以此类推,当7个轨迹片段都绘制完成后,即可获得和第一个移动轨迹对应的线条,线条颜色的渐变和预设的颜色变化规律相同,都是“红→黄→蓝→绿→青→蓝→紫”的渐变规律。当获得的轨迹片段更多时,可以按照颜色变化规律循环更新所述颜色值变量。其中,可以通过获得的轨迹片段的末端坐标值是否和移动轨迹的当前坐标值相同来判断轨迹片段是否绘制完成,相同则说明一个移动轨迹对应的线条已经绘制完成,即获得的轨迹片段已经绘制完;不相同则说明还有轨迹片段没有进行绘制,会对下一轨迹片段执行绘制的相应操作。
最后,当获得的多个轨迹片段绘制完成后,软件会检测是否接收到系统反馈的新的移动鼠标消息。如果检测到,则会重复执行上述移动轨迹构建、划分和绘制的相应步骤;如果没有检测到新的鼠标移动消息,当检测到松开鼠标左键的操作,则说明线条绘制结束,软件会退出线条绘制模式。
图3示出了本申请实施例提供的绘制线条的装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图3,该装置包括:
轨迹片段获取模块301,用于在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;
线条绘制模块302,用于分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。
进一步的,所述轨迹片段获取模块301可以包括:
移动轨迹端点确定单元,用于根据获取到的绘制点移动指令,确定所述线条绘制点的初始位置和当前位置;
移动轨迹构建单元,用于根据所述初始位置和所述当前位置,构建所述线条绘制点的移动轨迹;
轨迹片段划分单元,用于对所述移动轨迹进行划分,得到所述多个轨迹片段。
进一步的,所述轨迹片段划分单元可以包括:
坐标值传入子单元,用于获取所述移动轨迹的多个位置点的坐标值,将所述多个位置点的坐标值依次传入预先构建的回调函数中;
轨迹片段获取子单元,用于在将一个所述位置点的坐标值传入所述回调函数后,通过所述回调函数对当前传入的位置点的坐标值和上次传入的位置点的坐标值进行处理,得到一个所述轨迹片段。
进一步的,线条绘制模块302可以包括:
画刷创建单元,用于每获取一个所述轨迹片段,在所述回调函数中创建一把画刷;
颜色参数设置单元,用于将所述画刷的颜色参数赋值为预设的颜色变量值;
轨迹片段绘制单元,用于使用所述画刷绘制当前获取的所述轨迹片段对应的线条;
颜色变量值更新单元,用于在绘制完当前获取的所述轨迹片段对应的线条后,更新所述颜色变量值,然后获取下一个所述轨迹片段执行重复的操作。
进一步的,所述轨迹片段绘制单元可以包括:
第一线条绘制子单元,用于调用第一线条绘制函数绘制覆盖所述轨迹片段的第一线条,所述第一线条连续且具有锯齿边缘;
第二线条绘制子单元,用于调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,所述第二线条不连续且不具有锯齿边缘,所述第二线条的宽度大于所述第一线条。
进一步的,所述第二线条绘制子单元还可以用于将所述Drawline函数设置为平滑模式,然后调用所述Drawline函数绘制覆盖所述轨迹片段的第二线条。
进一步的,所述装置还可以包括:
线条绘制退出模块,用于若检测到结束绘制的操作指令,则退出绘制线条的操作。
本申请实施例还提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请提出的各个绘制线条的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请提出的各个绘制线条的方法的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行本申请提出的各个绘制线条的方法的步骤。
图4为本申请一实施例提供的终端设备的结构示意图。如图4所示,该实施例的终端设备4包括:至少一个处理器40(图4中仅示出一个)处理器、存储器41以及存储在所述存储器41中并可在所述至少一个处理器40上运行的计算机程序42,所述处理器40执行所述计算机程序42时实现上述任意绘制线条的方法实施例中的步骤。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,以及智能手表、智能手环等可穿戴设备。该终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的举例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),该处理器40还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41在一些实施例中可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41在另一些实施例中也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储操作装置、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种绘制线条的方法,其特征在于,包括:
在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;
分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。
2.如权利要求1所述的绘制线条的方法,其特征在于,所述检测线条绘制点的移动轨迹包括:
根据获取到的绘制点移动指令,确定所述线条绘制点的初始位置和当前位置;
根据所述初始位置和所述当前位置,构建所述线条绘制点的移动轨迹;
对所述移动轨迹进行划分,得到所述多个轨迹片段。
3.如权利要求2所述的绘制线条的方法,其特征在于,对所述移动轨迹进行划分,得到所述多个轨迹片段包括:
获取所述移动轨迹的多个位置点的坐标值,将所述多个位置点的坐标值依次传入预先构建的回调函数中;
在将一个所述位置点的坐标值传入所述回调函数后,通过所述回调函数对当前传入的位置点的坐标值和上次传入的位置点的坐标值进行处理,得到一个所述轨迹片段。
4.如权利要求3所述的绘制线条的方法,其特征在于,分别绘制每个所述轨迹片段对应的线条,包括:
每获取一个所述轨迹片段,在所述回调函数中创建一把画刷;
将所述画刷的颜色参数赋值为预设的颜色变量值;
使用所述画刷绘制当前获取的所述轨迹片段对应的线条;
在绘制完当前获取的所述轨迹片段对应的线条后,更新所述颜色变量值,然后获取下一个所述轨迹片段执行重复的操作。
5.如权利要求4所述的绘制线条的方法,其特征在于,使用所述画刷绘制当前获取的所述轨迹片段对应的线条,包括:
调用第一线条绘制函数绘制覆盖所述轨迹片段的第一线条,所述第一线条连续且具有锯齿边缘;
调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,所述第二线条不连续且不具有锯齿边缘,所述第二线条的宽度大于所述第一线条。
6.如权利要求5所述的绘制线条的方法,其特征在于,所述第二线条绘制函数为Drawline函数,调用第二线条绘制函数绘制覆盖所述轨迹片段的第二线条,包括:
将所述Drawline函数设置为平滑模式,然后调用所述Drawline函数绘制覆盖所述轨迹片段的第二线条。
7.如权利要求1至6任一项所述的绘制线条的方法,其特征在于,还包括:
若检测到结束绘制的操作指令,则退出绘制线条的操作。
8.一种绘制线条的装置,其特征在于,包括:
轨迹片段获取模块,用于在获取到线条绘制指令后,检测线条绘制点的移动轨迹,所述移动轨迹包含多个轨迹片段;
线条绘制模块,用于分别绘制每个所述轨迹片段对应的线条,且绘制不同的所述轨迹片段对应的线条时采用的画刷的颜色不同。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的绘制线条的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的绘制线条的方法。
CN202010816357.2A 2020-08-14 2020-08-14 绘制线条的方法、装置、终端设备和存储介质 Active CN112115679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010816357.2A CN112115679B (zh) 2020-08-14 2020-08-14 绘制线条的方法、装置、终端设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010816357.2A CN112115679B (zh) 2020-08-14 2020-08-14 绘制线条的方法、装置、终端设备和存储介质

Publications (2)

Publication Number Publication Date
CN112115679A true CN112115679A (zh) 2020-12-22
CN112115679B CN112115679B (zh) 2024-09-06

Family

ID=73804114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010816357.2A Active CN112115679B (zh) 2020-08-14 2020-08-14 绘制线条的方法、装置、终端设备和存储介质

Country Status (1)

Country Link
CN (1) CN112115679B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112634401A (zh) * 2020-12-28 2021-04-09 深圳市优必选科技股份有限公司 一种平面轨迹绘制方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816758A (ja) * 1994-07-05 1996-01-19 Ieroo Shiyaaku:Kk アニメーション画像の線画処理方法
JP2010009277A (ja) * 2008-06-26 2010-01-14 Celsys:Kk 線画のための彩色方法及びプログラム
TW201129919A (en) * 2010-02-24 2011-09-01 guo-shu Zheng Method of using a mouse to draw lines on a computer display device
CN102446360A (zh) * 2010-10-08 2012-05-09 香港城市大学 在数字画布上生成并显示二维和三维图像的方法
JP2017117331A (ja) * 2015-12-25 2017-06-29 株式会社リコー 画像処理装置、画像処理方法およびプログラム
CN107103634A (zh) * 2017-04-20 2017-08-29 广州视源电子科技股份有限公司 图形轨迹绘制方法、装置、设备及计算机存储介质
CN109324749A (zh) * 2018-09-10 2019-02-12 Oppo(重庆)智能科技有限公司 绘图方法、装置、存储介质及电子设备
CN110570501A (zh) * 2018-06-06 2019-12-13 腾讯科技(深圳)有限公司 一种线条动画绘制方法及其设备、存储介质、电子设备
CN111145315A (zh) * 2019-12-14 2020-05-12 中国科学院深圳先进技术研究院 绘画方法、装置、玩具机器人及可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816758A (ja) * 1994-07-05 1996-01-19 Ieroo Shiyaaku:Kk アニメーション画像の線画処理方法
JP2010009277A (ja) * 2008-06-26 2010-01-14 Celsys:Kk 線画のための彩色方法及びプログラム
TW201129919A (en) * 2010-02-24 2011-09-01 guo-shu Zheng Method of using a mouse to draw lines on a computer display device
CN102446360A (zh) * 2010-10-08 2012-05-09 香港城市大学 在数字画布上生成并显示二维和三维图像的方法
JP2017117331A (ja) * 2015-12-25 2017-06-29 株式会社リコー 画像処理装置、画像処理方法およびプログラム
CN107103634A (zh) * 2017-04-20 2017-08-29 广州视源电子科技股份有限公司 图形轨迹绘制方法、装置、设备及计算机存储介质
CN110570501A (zh) * 2018-06-06 2019-12-13 腾讯科技(深圳)有限公司 一种线条动画绘制方法及其设备、存储介质、电子设备
CN109324749A (zh) * 2018-09-10 2019-02-12 Oppo(重庆)智能科技有限公司 绘图方法、装置、存储介质及电子设备
CN111145315A (zh) * 2019-12-14 2020-05-12 中国科学院深圳先进技术研究院 绘画方法、装置、玩具机器人及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
彭冬玲;: "矢量画刷的设计与实现", 微计算机信息, no. 05, 15 May 2011 (2011-05-15) *
谢党恩;赵杨;张志立;徐丹;: "交互式着色的彩色铅笔画生成方法", 计算机工程与应用, no. 28, 1 October 2009 (2009-10-01) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112634401A (zh) * 2020-12-28 2021-04-09 深圳市优必选科技股份有限公司 一种平面轨迹绘制方法、装置、设备及存储介质
CN112634401B (zh) * 2020-12-28 2023-10-10 深圳市优必选科技股份有限公司 一种平面轨迹绘制方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112115679B (zh) 2024-09-06

Similar Documents

Publication Publication Date Title
CN109102264B (zh) 一种电子红包检测方法、装置及终端设备
DE102013102285A1 (de) Benutzerinterface-Navigation unter Verwendung druckempfindlicher Berührung
CN108965575B (zh) 一种手势动作识别方法、装置和终端设备
CN103955334A (zh) 一种信息处理方法及电子设备
WO2016107229A1 (zh) 图标显示方法、装置和计算机存储介质
CN113179205A (zh) 图像分享方法、装置及电子设备
CN106155542A (zh) 图片处理方法及装置
CN113655929A (zh) 界面显示的适配处理方法、装置和电子设备
CN112115679A (zh) 绘制线条的方法、装置、终端设备和存储介质
US9939922B2 (en) Input method of Chinese pinyin and terminal
CN110188074B (zh) 一种文件编辑标记显示方法和设备
CN111597009B (zh) 应用程序显示的方法、装置及终端设备
CN107451548B (zh) 一种图像处理方法、移动终端及计算机可读存储介质
CN106951168A (zh) 一种文字处理方法及移动终端
CN114863008B (zh) 图像处理方法、装置、电子设备及存储介质
CN112596643A (zh) 应用图标的管理方法及装置
CN112764606A (zh) 标识显示方法、装置和电子设备
CN111107264A (zh) 图像处理方法、装置、存储介质以及终端
CN105824694A (zh) 应用的资源的调整方法及装置
CN115134317A (zh) 消息显示方法、装置、存储介质和电子装置
CN105493145A (zh) 基于用户手指甲或脚趾甲上的视觉信息来确定用户输入的方法和设备
CN113114559B (zh) 信息显示方法、装置及设备
CN113902841A (zh) 一种图像绘制方法、装置、电子设备及可读存储介质
CN110881001B (zh) 一种电子红包检测方法、系统及终端设备
CN114546375A (zh) 页面配置方法、页面配置装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Lu Yongjian

Inventor after: Li Chao

Inventor before: Lu Yongjian

GR01 Patent grant
GR01 Patent grant