CN111063009A - 一种汉字书写动画演示方法及装置 - Google Patents
一种汉字书写动画演示方法及装置 Download PDFInfo
- Publication number
- CN111063009A CN111063009A CN201911310197.8A CN201911310197A CN111063009A CN 111063009 A CN111063009 A CN 111063009A CN 201911310197 A CN201911310197 A CN 201911310197A CN 111063009 A CN111063009 A CN 111063009A
- Authority
- CN
- China
- Prior art keywords
- drawing board
- stroke
- scanning
- pixel
- chinese character
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/02—Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip
Abstract
本公开提供了一种汉字书写动画演示方法及装置。其中,一种汉字书写动画演示方法包括:创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
Description
技术领域
本公开属于汉字字符显示领域,尤其涉及一种汉字书写动画演示方法及装置。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
目前在汉字学习中,无论是教科书、字典等出版的汉字学习教材都是用笔画的组合表示汉字,因此汉字的学习首先从正确书写笔画开始。一般汉字教学过程中,需要教师一笔一划地给学生演示汉字笔画,并需要反复告诉学生先写哪一笔,后写哪一笔,每一笔该如何起笔、转折、收笔,并对书写笔画不正确的学习者需要看着对方书写并对书写错误处进行实时纠正,这导致了教师工作量大,而且效果不明显。随着计算机技术和教育工作的结合,通过计算机编程,实现汉字笔画书写的动态演示,汉字学习者通过观看演示,发现自己笔画书写的错误处,并模仿动画进行汉字的正确书写,提高汉字学习的效率。
有签于此,一种利用计算机实现高效汉字书写笔顺的表示方法(专利申请号:201310496342.2),该发明规定汉字笔顺所用颜色,按照规定的不同颜色标注不同的汉字笔顺,使用者通过笔顺和颜色的映射关系进行汉字的查询与记忆,从而在计算机上高效录入汉字。发明人发现,虽然该方法可以帮助汉字学习者或使用者掌握汉字笔顺的构成,实现汉字在计算机上的高效录入,但该方法无法动态演示具体的单个笔画书写时如何起笔、转折、收笔,无法直观地将汉字书写过程呈现给学习者或使用者。
发明专利:一种利用向量字体实现汉字书写动态及电子描红的方法(专利申请号:200710017222.4)在不增加原始向量字体的数据大小,不破坏原始数据的情况下,提供一种利用向量字体实现汉字书写动态演示与描红的方法。发明人发现,该方法虽然通过单笔的向量曲线实现汉字的平滑显示,但实现过程复杂。
综上所述,发明人发现,现有汉字书写动画演示程序存在设计复杂,演示书写过程不够直观的问题。
发明内容
为了解决上述问题,本公开的第一个方面提供一种汉字书写动画演示方法,其能够直观简洁地实现汉字书写动画演示。
为了实现上述目的,本公开采用如下技术方案:
一种汉字书写动画演示方法,包括:
创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;
按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;
根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
为了解决上述问题,本公开的第二个方面提供一种汉字书写动画演示装置,其能够直观简洁地实现汉字书写动画演示。
为了实现上述目的,本公开采用如下技术方案:
一种汉字书写动画演示装置,包括:
画板创建模块,其用于创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;
笔画顺序扫描模块,其用于按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;
笔画顺序演示模块,其用于根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
本公开的第三个方面提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述的汉字书写动画演示方法中的步骤。
本公开的第四个方面提供一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述的汉字书写动画演示方法中的步骤。
本公开的有益效果是:
本公开创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示,这样能够经过简单的程序设计,就能很好地实现单个汉字逐个笔画的顺序演示;汉字初学者通过观看该演示,能够实时发现自己笔画书写的错误之处;通过模仿演示,可以高效地掌握正确的汉字笔画书写过程。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1是本公开实施例的一种汉字书写动画演示方法流程图。
图2是本公开实施例的一种汉字书写动画演示方法的实现具体流程图。
图3是本公开实施例的汉字“十”第一个笔画“一”的第一条演示直线坐标。
图4是本公开实施例的汉字“十”第一个笔画“一”的第N条演示直线坐标(N>1)。
图5是本公开实施例的汉字“十”第二个笔画”丨”的第一条演示直线坐标。
图6是本公开实施例的汉字“十”第二个笔画”丨”的第N条演示直线坐标(N>1)。
图14是本公开实施例的一种汉字书写动画演示装置结构示意图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一
如图1所示,本实施例的一种汉字书写动画演示方法,包括:
S101:创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;
在本实施例中,第一画板和第二画板的大小相同,而且两者坐标一一对应。
需要说明的是,在其他实施例中,第一画板和第二画板的大小也可以不同,但两者的坐标点具有一一对应关系即可。
S102:按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;
在一个实施例中,按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示的步骤包括:
步骤a:从字符集中调取待演示汉字的第一个笔画至第一画板中显示;
步骤b:扫描第一个笔画,获取第一个笔画轮廓对应的坐标点;
步骤c:擦除当前笔画,从字符集中调取待演示汉字的下一个笔画,再扫描获取相应笔画的坐标点,重复步骤c,直至待演示汉字的所有笔画调取完毕。
在另一实施例中,在按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板的过程中,每个笔画均不进行擦除,且相应笔画逐次叠加显示在第一画板中。
具体地,在扫描获取各个笔画轮廓对应的坐标点的过程中,第一画板的背景像素点RGB值与显示在第一画板上待演示汉字的笔画的像素点RGB值不同。
S103:根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
如图2所示,汉字书写动画演示方法的具体步骤如下:
步骤1:创建画板且扫描待演示汉字。创建两个同样大小的空白画板分别为第一画板和第二画板,调取待演示汉字在第一画板显示,第一画板对用户不可见;第二画板为笔画动画演示用,该画板对用户可见,两个画板的坐标存在映射关系。
步骤2:调出第一个笔画。
步骤3:获得演示第一个笔画的坐标。
根据预设的笔画起笔位置、扫描方向、搜索方向,对第一个画板进行扫描。从起笔位置开始,先进行扫描方向的扫描,如果没有找到像素点,再往搜索方向平移一个像素点,再次进行扫描。根据构成笔画的像素点的RGB值和画板背景像素的RGB值不同,找到笔画的起点像素,其坐标记为(x11,y11),再根据预设的横向或纵向的扫描方向,进行逐像素点扫描,直到扫描到的像素点为背景的像素点。如第一个笔画为直线,则该过程中最后得到的笔画像素点坐标为(x12,y12),此时在本步骤中已扫描完成的像素点构成一条扫描方向的直线,该直线两端的坐标组1(x11,y11)、(x12,y12)。
步骤4:呈现演示第一个笔画。
将第一画板中直线两端的坐标组1((x11,y11)、(x12,y12))映射到第二个画板中,根据坐标组1绘出直线并显示。
步骤5:绘下一条直线演示,演示直线两端点往搜索方向各平移一个像素。在第一个画板中将记录的直线两端点(其坐标组1((x11,y11)、(x12,y12)))往搜索方向各平移一个像素。
步骤6:获取待演示直线端点坐标。对平移后的直线两端在扫描方向上逐像素点进行直线外部像素点扫描,也就是坐标为(x11,y11)像素点往扫描方向的反方向,坐标为(x12,y12)像素点往扫描方向,获取扫描到的像素点的RGB值,如果该RGB值和笔画像素的RGB值相等,继续扫描,直到扫描得到的像素RGB值不等于笔画像素RGB值,坐标为(x11,y11)、(x12,y12))的像素出发检索到的像素点坐标分别为(x21,y21)、(x22,y22)。
步骤7:根据像素直线长度判断演示是否到了笔画拐角处。计算步骤6得到的新的坐标组2((x21,y21)、(x22,y22))构成的像素直线长度,当该长度小于等于像素直线长度阈值但不等于0时,用坐标组2((x21,y21)、(x22,y22))替换坐标1((x11,y11)、(x12,y12)),执行步骤4。当该长度大于像素直线长度阈值时,执行步骤8。等于0时,执行步骤13。
步骤8:找出分割拐角的直线。通过在扫描方向上比较两像素点增加的长度判断像素直线长度增加的方向,比如扫描方向为y方向,(y22-y12)的绝对值大于(y21-y11)的绝对值,像素直线长度增加的方向即为y方向。(x11,y11)、(x12,y12)中离增加方向较远的坐标点,标记为(x31,y31),离增加方向较近的坐标点,其坐标记为(x32,y32),坐标点(x32,y32)继续沿搜索方向(扫描方向为横向时,搜索方向为纵向,反之亦然。)扫描像素点,并判断该像素点是否在笔画内,一直搜索到该方向最后一个笔画内的像素点,其坐标记为(x33,y33),(x32,y32)和(x33,y33)构成一条搜索方向的直线。
步骤9:获取拐角区域演示直线坐标。坐标点(x31,y31)往搜索方向平移一个像素,并往像素直线长度增加相反方向进行扫描,获取扫描到的像素点的RGB值,如果该RGB值和笔画像素RGB值相等,继续扫描,直到扫描得到的像素RGB值不等于笔画像素RGB值;如果像素直线长度增加相反方向没有检索到笔画的像素点,则向像素直线长度增加方向扫描,直到找到笔画内的像素点。扫描完成后得到的像素点的坐标(x35,y35)。像素(x35,y35)往扫描方向逐像素点进行检索,直到被检索的像素点位于(x32,y32)和(x33,y33)构成的直线上或者扫描得到的像素RGB值不再等于笔画像素RGB值,此时被检索到的像素点坐标为(x36,y36)。
步骤10:判断能否获取到演示直线坐标。如果上一步骤中检索不到像素点,执行步骤12。
步骤11:呈现演示直线。将第一画板中(x35,y35)、(x36,y36)构成的直线两端的坐标组映射到第二个画板中,绘出直线并显示。将坐标(x31,y31)用坐标(x35,y35)替换,执行步骤9。
步骤12:改变扫描方向和搜索方向。坐标(x11,y11)、(x12,y12)用坐标(x32,y32)、(x33,y33)替换,改变扫描方向和搜索方向,执行步骤5。
步骤13:判断汉字笔画是否演示完毕。对第一个画板上的笔画进行擦除。如果汉字笔画演示完毕,进入步骤14;如果没有,调出汉字下一个笔画并显示在第一个画板上,进行步骤3。
步骤14:演示结束。
基于上述汉字笔画动画演示方法,下面提供了以下实施例进行说明:
具体实施例1:汉字“十”的演示,其过程如下:
a1)创建两个同样大小、坐标关系存在映射的空白画板,第一个画板显示待动画演示的笔画,该画板对用户不可见;第二个为笔画动画演示用,该画板对用户可见。
a2)调出第一个笔画“一”,并把其显示在第一个画板上。
a3)根据库里预设的笔画“一”起笔位置(0,0),扫描方向为y方向,搜索方向为x方向。从起笔位置开始,先进行y方向的扫描,因为是逐像素点,第一次没有扫描到“一”笔画内的像素,在搜索方向平移一个像素点,再次进行扫描。根据构成笔画的像素点的RGB值和画板背景像素的RGB值不同,找到笔画的起点像素,其坐标记为(x11,y11),再根据预设的扫描y方向,进行逐像素点扫描,直到扫描到的像素点为背景的像素点,扫描过程中最后得到的笔画像素点坐标为(x12,y12),此时在本步骤中已扫描完成的像素点构成一条扫描方向的直线,该直线两端的坐标组1(x11,y11)、(x12,y12),如图3所示。
a4)将第一画板中直线两端的坐标组1((x11,y11)、(x12,y12))映射到第二个画板中,根据坐标组1绘出直线并显示。
a5)在第一个画板中将记录的直线两端点(其坐标组1((x11,y11)、(x12,y12)))往搜索方向x方向各平移一个像素。
a6)对平移后的直线两端在扫描方向y方向上逐像素点进行直线外部像素点扫描,比如(x11,y11)平移后的端点,其直线外部为y反方向,从该点出发往y反方向扫描,获取的像素其RGB值为背景像素值,而不是笔画像素点的RGB值,那么扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x21,y21)为新演示直线一端点的坐标。(x12,y12)平移后的端点往直线外部,即往y正方向扫描,获取扫描到的像素点的RGB值,发现该点RGB值和笔画像素RGB值不相等,则退回,扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x22,y22)为新演示直线另一端点的坐标,如图4所示。
a7)计算步骤a6)得到的新的坐标组2((x21,y21)、(x22,y22))构成的直线长度,发现该长度小于像素直线长度阈值但不等于0,用坐标组2((x21,y21)、(x22,y22))替换坐标((x11,y11)、(x12,y12)),继续执行步骤a4)。等于0时,执行步骤a8)。
a8)判断汉字“十”有两个笔画,现在仅执行了一个笔画的演示,还有下一个笔画“丨”。对第一个画板上的笔画“一”进行擦除,调出汉字下一个笔画“丨”并显示在第一个画板上。
a9)根据预设的笔画“丨”起笔位置(0,0),扫描方向为x方向,搜索方向为y方向(注意扫描方向、搜索方向和第一笔“一”不同)。从起笔位置开始,先进行x方向的扫描,因为是逐像素点,第一次没有扫描到“丨”笔画内的像素,在搜索方向平移一个像素点,再次进行扫描。根据构成笔画的像素点的RGB值和画板背景像素的RGB值不同,找到笔画的起点像素,其坐标记为(x11,y11),再根据预设的扫描x方向,进行逐像素点扫描,直到扫描到的像素点为背景的像素点,此扫描过程中最后得到的笔画像素点坐标为(x12,y12),此时在本步骤中已扫描完成的像素点构成一条扫描方向的直线,该直线两端的坐标组1(x11,y11)、(x12,y12),如图5所示。
a10)将第一画板中直线两端的坐标组1((x11,y11)、(x12,y12))映射到第二个画板中,根据坐标组1绘出直线并显示。
a11)在第一个画板中将记录的直线两端点(其坐标组1((x11,y11)、(x12,y12)))往搜索方向各平移一个像素。
a12)对平移后的直线两端点在扫描方向x方向上逐像素点进行直线外部像素点扫描,比如(x11,y11)平移后的端点,其对应的直线外部为x反方向,从该点出发往x反方向扫描,获取的像素其RGB值为背景像素值,而不是笔画像素点的RGB值,那么扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x21,y21)为新演示直线一端点的坐标。(x12,y12)平移后的端点往直线外部,即往x正方向扫描,获取扫描到的像素点的RGB值,发现该点RGB值和笔画像素RGB值不相等,则退回,扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x22,y22)为新演示直线另一端点的坐标。如图6所示。
a13)计算新的坐标组2((x21,y21)、(x22,y22))构成的直线长度,发现该长度小于像素直线长度阈值但不等于0,用坐标组2((x21,y21)、(x22,y22))替换坐标((x11,y11)、(x12,y12)),继续执行步骤a10)。等于0时,执行步骤a14)。
a14)判断汉字“十”有两个笔画,现在已经执行了二个笔画的演示,将第一个画板上的笔画“丨”进行擦除,演示结束。
具体实施例2:汉字“口”的演示,其过程如下:
b1)创建两个同样大小、坐标关系存在映射的空白画板,第一个画板显示待动画演示的笔画,该画板对用户不可见;第二个为笔画动画演示用,该画板对用户可见。
b2)调出第一个笔画“丨”,并把其显示在第一个画板上。
b3)根据库里预设的笔画“丨”起笔位置(0,0),扫描方向为x方向,搜索方向为y方向。从起笔位置开始,先进行x方向的扫描,因为是逐像素点,第一次没有扫描到“丨”笔画内的像素。在搜索方向平移一个像素点,再次进行扫描。根据构成笔画的像素点的RGB值和画板背景像素的RGB值不同,找到笔画的起点像素,其坐标记为(x11,y11),再根据预设的扫描方向x方向,进行逐像素点扫描,直到扫描到的像素点为背景的像素点,该扫描过程中最后得到的笔画像素点坐标为(x12,y12),此时在本步骤中已扫描完成的像素点构成一条扫描方向的直线,该直线两端的坐标组1(x11,y11)、(x12,y12)。如图5所示。
b4)将第一画板中直线两端的坐标组1((x11,y11)、(x12,y12))映射到第二个画板中,根据坐标组1绘出直线并显示。
b5)在第一个画板中将记录的直线两端点(其坐标组1((x11,y11)、(x12,y12)))往搜索方向y方向各平移一个像素。
b6)对平移后的直线两端在扫描方向x方向上逐像素点进行直线外部像素点扫描,比如(x11,y11)平移后的端点,其直线外部为x反方向,从该点出发往x反方向扫描,获取的像素其RGB值为背景像素值,而不是笔画像素点的RGB值,那么扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x21,y21)为新演示直线一端点的坐标。(x12,y12)平移后的端点往直线外部,即往x正方向扫描,获取扫描到的像素点的RGB值,发现该点RGB值和笔画像素RGB值不相等,则退回,扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x22,y22)为新演示直线另一端点的坐标。如图6所示。
b7)计算步骤b6)得到的新的坐标组2((x21,y21)、(x22,y22))构成的直线长度,发现该长度小于像素直线长度阈值但不等于0,用坐标组2((x21,y21)、(x22,y22))替换坐标((x11,y11)、(x12,y12)),继续执行步骤b4)。等于0时,执行步骤b8)。
b9)根据预设的笔画“”起笔位置(0,0),扫描方向为y方向,搜索方向为x方向(注意扫描方向、搜索方向和第一笔“丨”不同)。从起笔位置开始,先进行y方向的扫描,因为是逐像素点扫描,第一次没有扫描到“”笔画内的像素。往搜索方向平移一个像素点,再次进行扫描。根据构成笔画的像素点的RGB值和画板背景像素的RGB值的不同,找到笔画的起点像素,其坐标记为(x11,y11),再根据预设的扫描y方向,进行逐像素点扫描,直到扫描到的像素点为背景的像素点,该此扫描过程中最后得到的笔画像素点坐标为(x12,y12),此时在本步骤中已扫描完成的像素点构成一条扫描方向的直线,该直线两端的坐标组1(x11,y11)、(x12,y12)。如图7所示。
b10)将第一画板中直线两端的坐标组1((x11,y11)、(x12,y12))映射到第二个画板中,根据坐标组1绘出直线并显示。
b11)在第一个画板中将记录的直线两端点(其坐标组1((x11,y11)、(x12,y12)))往搜索方向x方向各平移一个像素。
b12)对平移后的直线两端在扫描方向y方向上逐像素点进行直线外部像素点扫描,比如(x11,y11)平移后的端点,其直线外部为y反方向,从该点出发往y反方向扫描,获取的像素其RGB值为背景像素值,而不是笔画像素点的RGB值,那么扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x21,y21)为新演示直线一端点的坐标。(x12,y12)平移后的端点往直线外部,即往y正方向扫描,获取扫描到的像素点的RGB值,发现该点RGB值和笔画像素RGB值不相等,则退回,扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x22,y22)为新演示直线另一端点的坐标,如图8所示。
b13)计算新的坐标组2((x21,y21)、(x22,y22))构成的直线长度,如果该长度小于像素直线长度阈值,用坐标组2((x21,y21)、(x22,y22))替换坐标((x11,y11)、(x12,y12)),执行步骤b10)。如果该长度大于像素直线长度阈值,执行步骤b14)。
b14)坐标组2((x21,y21)、(x22,y22))构成的直线,如图9所示。
b15)找出分割拐角的直线。本步骤扫描方向为y方向,(y22-y12)的绝对值大于(y21-y11)的绝对值,判断像素直线长度增加的方向即为y方向。(x11,y11)、(x12,y12)中离增加方向y方向较远的坐标点,标记为(x31,y31);离增加方向y方向较近的坐标点,其坐标记为(x32,y32)。坐标点(x32,y32)继续沿搜索方向x方向扫描像素点,并判断该像素点是否在笔画内,一直搜索到该方向笔画内的最后一个像素点,其坐标记为(x33,y33)。(x32,y32)和(x33,y33)构成分割拐角的直线。如图10所示。
b16)获取拐角区域演示直线坐标。坐标点(x31,y31)往搜索方向x方向平移一个像素,并往像素直线长度增加相反方向(本步骤中即y反方向)进行扫描,获取扫描到的像素点的RGB值,如果该RGB值和笔画像素RGB值相等,继续扫描,直到扫描得到的像素RGB值不等于笔画像素RGB值。如果像素直线长度增加相反方向没有检索到笔画的像素点,则向像素直线长度增加方向(本步骤中即y方向)扫描,直到找到笔画内的像素点。扫描完成后得到像素的坐标(x35,y35)。像素(x35,y35)往扫描方向逐像素点进行检索,直到被检索的像素点位于(x32,y32)和(x33,y33)构成的直线上或者直到扫描得到的像素RGB值不等于笔画像素RGB值,这时像素点坐标为(x36,y36),如图11所示,执行步骤b17)。如果坐标点(x31,y31)往搜索方向x方向平移一个像素后检索不到位于笔画内的像素点,意味着在已经扫描完毕笔画中的拐角区域,需要扫描下一个区域,执行步骤b18)。
b17)呈现演示直线。将第一画板中(x35,y35)、(x36,y36)构成的直线两端的坐标组映射到第二个画板中,绘出直线并显示。将坐标(x31,y31)用坐标(x35,y35)替换,执行步骤b16)。
b18)坐标(x11,y11)、(x12,y12)用坐标(x32,y32)、(x33,y33)替换,改变扫描方向和搜索方向,如图12所示。
b19)在第一个画板中将记录的直线两端点(其坐标组1((x11,y11)、(x12,y12)))往搜索方向(本步骤中为y方向)各平移一个像素。
b20)对平移后的直线两端在扫描方向x方向上逐像素点进行直线外部像素点扫描,比如(x11,y11)平移后的端点,其直线外部为x反方向,从该点出发往x反方向扫描,获取的像素其RGB值为背景像素值,而不是笔画像素点的RGB值,那么扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x21,y21)为新演示直线一端点的坐标。(x12,y12)平移后的端点往直线外部,即往x正方向扫描,获取扫描到的像素点的RGB值,发现该点RGB值和笔画像素RGB值不相等,则退回,扫描开始前的坐标(即回到当初平移一个像素后的坐标)(x22,y22)为新演示直线另一端点的坐标。如图13所示。
b21)计算步骤b20)得到的新的坐标组2((x21,y21)、(x22,y22))构成的直线长度,发现该长度小于像素直线长度阈值,用坐标组2((x21,y21)、(x22,y22))替换坐标((x11,y11)、(x12,y12)),将第一画板中坐标组((x11,y11)、(x12,y12))构成的直线两端的坐标组映射到第二个画板中,绘出直线并显示,继续执行步骤b19)。等于0时,执行步骤b22)。
b23)判断汉字“口”有三个笔画全部演示完毕,演示结束。
本实施例创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示,这样能够经过简单的程序设计,就能很好地实现单个汉字逐个笔画的顺序演示;汉字初学者通过观看该演示,能够实时发现自己笔画书写的错误之处;通过模仿演示,可以高效地掌握正确的汉字笔画书写过程。
实施例二
如图14所示,本实施例提供一种汉字书写动画演示装置,其包括:
(1)画板创建模块,其用于创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系。
其中,在所述画板创建模块中,第一画板和第二画板的大小相同,而且两者坐标一一对应。
需要说明的是,第一画板和第二画板的大小也可以不一致,只要两者的对应坐标点具有一一映射关系即可。
(2)笔画顺序扫描模块,其用于按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点。
具体地,在所述笔画顺序扫描模块中,第一画板的背景像素点RGB值与显示在第一画板上待演示汉字的笔画的像素点RGB值不同。
在一个实施例中,所述笔画顺序扫描模块,被配置为执行以下步骤:
步骤a:从字符集中调取待演示汉字的第一个笔画至第一画板中显示;
步骤b:扫描第一个笔画,获取第一个笔画轮廓对应的坐标点;
步骤c:擦除当前笔画,从字符集中调取待演示汉字的下一个笔画,再扫描获取相应笔画的坐标点,重复步骤c,直至待演示汉字的所有笔画调取完毕。
(3)笔画顺序演示模块,其用于根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
本实施例创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示,这样能够经过简单的程序设计,就能很好地实现单个汉字逐个笔画的顺序演示;汉字初学者通过观看该演示,能够实时发现自己笔画书写的错误之处;通过模仿演示,可以高效地掌握正确的汉字笔画书写过程。
实施例三
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一所述的汉字书写动画演示方法中的步骤。
本实施例创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示,这样能够经过简单的程序设计,就能很好地实现单个汉字逐个笔画的顺序演示;汉字初学者通过观看该演示,能够实时发现自己笔画书写的错误之处;通过模仿演示,可以高效地掌握正确的汉字笔画书写过程。
实施例四
本实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如实施例一所述的汉字书写动画演示方法中的步骤。
本实施例创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示,这样能够经过简单的程序设计,就能很好地实现单个汉字逐个笔画的顺序演示;汉字初学者通过观看该演示,能够实时发现自己笔画书写的错误之处;通过模仿演示,可以高效地掌握正确的汉字笔画书写过程。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种汉字书写动画演示方法,其特征在于,包括:
创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;
按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;
根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
2.如权利要求1所述的汉字书写动画演示方法,其特征在于,第一画板和第二画板的大小相同,而且两者坐标一一对应。
3.如权利要求1所述的汉字书写动画演示方法,其特征在于,按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示的步骤包括:
步骤a:从字符集中调取待演示汉字的第一个笔画至第一画板中显示;
步骤b:扫描第一个笔画,获取第一个笔画轮廓对应的坐标点;
步骤c:擦除当前笔画,从字符集中调取待演示汉字的下一个笔画,再扫描获取相应笔画的坐标点,重复步骤c,直至待演示汉字的所有笔画调取完毕。
4.如权利要求1所述的汉字书写动画演示方法,其特征在于,在按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板的过程中,第二画板每个笔画均不进行擦除,且相应笔画逐次叠加显示在第二画板中。
5.如权利要求1所述的汉字书写动画演示方法,其特征在于,在扫描获取各个笔画轮廓对应的坐标点的过程中,第一画板的背景像素点RGB值与显示在第一画板上待演示汉字的笔画的像素点RGB值不同。
6.一种汉字书写动画演示装置,其特征在于,包括:
画板创建模块,其用于创建对用户不可见的第一画板和对用户可见的第二画板,第一画板和第二画板的坐标点存在一一映射关系;
笔画顺序扫描模块,其用于按照笔画顺序逐个从字符集中调取与待演示汉字相匹配的笔画至第一画板中显示,形成待演示汉字,且扫描获取各个笔画轮廓对应的坐标点;
笔画顺序演示模块,其用于根据第一画板和第二画板的坐标点映射关系,将各个笔画逐次叠加显示在第二画板的对应坐标点处,实现汉字书写的动画演示。
7.如权利要求5所述的汉字书写动画演示装置,其特征在于,在所述画板创建模块中,第一画板和第二画板的大小相同,而且两者坐标一一对应;
或在所述笔画顺序扫描模块中,第一画板的背景像素点RGB值与显示在第一画板上待演示汉字的笔画的像素点RGB值不同。
8.如权利要求5所述的汉字书写动画演示装置,其特征在于,所述笔画顺序扫描模块,被配置为执行以下步骤:
步骤a:从字符集中调取待演示汉字的第一个笔画至第一画板中显示;
步骤b:扫描第一个笔画,获取第一个笔画轮廓对应的坐标点;
步骤c:擦除当前笔画,从字符集中调取待演示汉字的下一个笔画,再扫描获取相应笔画的坐标点,重复步骤c,直至待演示汉字的所有笔画调取完毕。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的汉字书写动画演示方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一项所述的汉字书写动画演示方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911310197.8A CN111063009B (zh) | 2019-12-18 | 2019-12-18 | 一种汉字书写动画演示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911310197.8A CN111063009B (zh) | 2019-12-18 | 2019-12-18 | 一种汉字书写动画演示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111063009A true CN111063009A (zh) | 2020-04-24 |
CN111063009B CN111063009B (zh) | 2021-04-06 |
Family
ID=70302238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911310197.8A Active CN111063009B (zh) | 2019-12-18 | 2019-12-18 | 一种汉字书写动画演示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111063009B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111583753A (zh) * | 2020-05-07 | 2020-08-25 | 天津洪恩完美未来教育科技有限公司 | 一种书写学习实现方法、装置、存储介质以及计算设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1083954A (zh) * | 1992-09-01 | 1994-03-16 | 寅市和男 | 文字数据、词符-插图数据的输入输出装置及其方法 |
KR20070099504A (ko) * | 2007-09-18 | 2007-10-09 | (주)디지탈아리아 | 애니메이션 데이터를 경감시켜서 이동 통신 단말기에서캐릭터 애니메이션하는 방법 |
TW200951873A (en) * | 2008-06-04 | 2009-12-16 | Ben-Huang Chang | Dynamic calligraphy writing system |
CN101976354A (zh) * | 2010-11-10 | 2011-02-16 | 广东开心信息技术有限公司 | 一种书写汉字规范性评判的方法和装置 |
CN102289838A (zh) * | 2011-08-26 | 2011-12-21 | 厦门大学 | 一种由书法汉字图像生成其动态书写动画的方法 |
CN102881192A (zh) * | 2012-09-04 | 2013-01-16 | 广东群兴玩具股份有限公司 | 一种汉字书写学习系统 |
CN103488711A (zh) * | 2013-09-09 | 2014-01-01 | 北京大学 | 一种快速制作矢量字库的方法及系统 |
CN105468206A (zh) * | 2014-09-04 | 2016-04-06 | 华为技术有限公司 | 交互演示方法和设备 |
CN106600669A (zh) * | 2016-12-22 | 2017-04-26 | 郑州正电电子技术有限公司 | 基于可变色荧光画板和增强现实的装置及运行方法 |
CN107292221A (zh) * | 2016-04-01 | 2017-10-24 | 北京搜狗科技发展有限公司 | 一种轨迹处理方法和装置、一种用于轨迹处理的装置 |
CN109448079A (zh) * | 2018-10-25 | 2019-03-08 | 广东智媒云图科技股份有限公司 | 一种绘画引导方法及设备 |
-
2019
- 2019-12-18 CN CN201911310197.8A patent/CN111063009B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1083954A (zh) * | 1992-09-01 | 1994-03-16 | 寅市和男 | 文字数据、词符-插图数据的输入输出装置及其方法 |
KR20070099504A (ko) * | 2007-09-18 | 2007-10-09 | (주)디지탈아리아 | 애니메이션 데이터를 경감시켜서 이동 통신 단말기에서캐릭터 애니메이션하는 방법 |
TW200951873A (en) * | 2008-06-04 | 2009-12-16 | Ben-Huang Chang | Dynamic calligraphy writing system |
CN101976354A (zh) * | 2010-11-10 | 2011-02-16 | 广东开心信息技术有限公司 | 一种书写汉字规范性评判的方法和装置 |
CN102289838A (zh) * | 2011-08-26 | 2011-12-21 | 厦门大学 | 一种由书法汉字图像生成其动态书写动画的方法 |
CN102881192A (zh) * | 2012-09-04 | 2013-01-16 | 广东群兴玩具股份有限公司 | 一种汉字书写学习系统 |
CN103488711A (zh) * | 2013-09-09 | 2014-01-01 | 北京大学 | 一种快速制作矢量字库的方法及系统 |
CN105468206A (zh) * | 2014-09-04 | 2016-04-06 | 华为技术有限公司 | 交互演示方法和设备 |
CN107292221A (zh) * | 2016-04-01 | 2017-10-24 | 北京搜狗科技发展有限公司 | 一种轨迹处理方法和装置、一种用于轨迹处理的装置 |
CN106600669A (zh) * | 2016-12-22 | 2017-04-26 | 郑州正电电子技术有限公司 | 基于可变色荧光画板和增强现实的装置及运行方法 |
CN109448079A (zh) * | 2018-10-25 | 2019-03-08 | 广东智媒云图科技股份有限公司 | 一种绘画引导方法及设备 |
Non-Patent Citations (4)
Title |
---|
LIJIE YANG等: ""Animating the Brush-writing Process of Chinese Calligraphy Characters"", 《2009 EIGTH IEEE/ACIS INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION SCIENCE》 * |
LINJIA SUN等: ""A Chinese Character Teaching System Using Structure Theory and Morphing Technology"", 《PLOS ONE》 * |
吴琴霞等: ""基于动态描述库的汉字字形自动生成技术研究"", 《科学技术与工程》 * |
张俊松等: ""书法临摹过程的交互式动画建模方法"", 《计算机辅助设计与图形学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111583753A (zh) * | 2020-05-07 | 2020-08-25 | 天津洪恩完美未来教育科技有限公司 | 一种书写学习实现方法、装置、存储介质以及计算设备 |
CN111583753B (zh) * | 2020-05-07 | 2022-01-04 | 天津洪恩完美未来教育科技有限公司 | 一种书写学习实现方法、装置、存储介质以及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111063009B (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106128212B (zh) | 基于增强现实技术的书法学习系统及方法 | |
US9805482B2 (en) | Computer-implemented tutorial for visual manipulation software | |
CN101878488A (zh) | 在计算机屏幕上驱动进行书写和绘图的虚拟笔的方法 | |
CN111063009B (zh) | 一种汉字书写动画演示方法及装置 | |
CN109272805A (zh) | 一种书法训练方法、装置、电子设备及存储介质 | |
US20220245874A1 (en) | Method of converting and replaying styles of vector images | |
He et al. | Interactive projection system for calligraphy practice | |
CN115830165A (zh) | 基于对抗生成网络的国画绘制过程生成方法、装置和设备 | |
Hodgkinson et al. | glGetFeedback—Towards automatic feedback and assessment for OpenGL 3D modelling assignments | |
Fisher et al. | If you know b-splines well, you also nnow NURBS! | |
Cossairt | SetPad: a sketch-based tool for exploring discrete math set problems | |
KR20200134115A (ko) | 기준기호 조합에 의한 알파벳 학습방법 및 학습 교구 | |
CN112580213A (zh) | 电场线的显示图像的生成方法和装置、存储介质 | |
Ellonen et al. | Experiences on development and design of stack problems for circuit analysis | |
JP6734698B2 (ja) | 文字練習装置 | |
TW201805778A (zh) | 觸控式習字方法及觸控式電子裝置 | |
Roberts et al. | Creating explanatory visualizations of algorithms for active learning | |
Yamamori | Programming practice using scratch for each grade of elementary school | |
JPH01189680A (ja) | 電子学習機 | |
CN109117804B (zh) | 一种基于Unity 3D的移动设备的文字临摹方法 | |
Teicher et al. | Teaching of Function Investigation for Engineering Students as a Model of Exploratory Thinking | |
You et al. | On interactive interfaces for learning Chinese character writing online | |
He et al. | Reform and exploration of the computer graphics | |
Schweitzer et al. | Getting to the “graphics” in a graphics exercise | |
何之舟 | CalliShadow: Interactive User Guidance for Calligraphic Practice |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |