CN110349238A - 一种毛笔小楷字渲染方法 - Google Patents
一种毛笔小楷字渲染方法 Download PDFInfo
- Publication number
- CN110349238A CN110349238A CN201910635662.9A CN201910635662A CN110349238A CN 110349238 A CN110349238 A CN 110349238A CN 201910635662 A CN201910635662 A CN 201910635662A CN 110349238 A CN110349238 A CN 110349238A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- point
- writing brush
- bezier
- small characters
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000009877 rendering Methods 0.000 title claims abstract description 40
- 238000013178 mathematical model Methods 0.000 claims abstract description 17
- 230000000694 effects Effects 0.000 claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 235000015170 shellfish Nutrition 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000011017 operating method Methods 0.000 abstract description 4
- 238000004088 simulation Methods 0.000 abstract description 4
- 238000011161 development Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种毛笔小楷字渲染方法,包括以下步骤:建立一个基于压力的数学模型,利用该数学模型获取毛笔笔宽数据、利用线性插值法进行必要的插值、使用贝塞尔曲线进行坐标的平滑连接,以及对绘制的贝塞尔曲线进行渲染;通过本发明方法可以在计算机上模拟出逼真的毛笔字效果,并且模拟过程计算量小,易操作易实现,能够通过轻巧简便的操作步骤实现毛笔小楷字的书写效果,渲染结果准确度高,且渲染结果整体完整性好。
Description
技术领域
本发明涉及字体渲染技术领域,尤其涉及一种毛笔小楷字渲染方法。
背景技术
中国毛笔字是古老而深邃的一种艺术,是中华民族艺术宝库中一颗璀璨夺目的明珠,它伴随着中华文明的发展而发展,保留传统,只有发展才能保留,不发展就不能保留。在计算机高速发展的今天,越来越多的人习惯用键盘敲出标准的楷体字,但是这却丢失了中国书法的韵味,为了使中国书法与时俱进,与现代科技融合,如何在计算机上模拟出逼真的毛笔字效果就成了诸多专家学者研究的方向,在众多研究中,主要的模拟方法都是通过使用一些物理传感设备和复杂的软件建模工具加以大量的计算来达到效果,有的以圆锥模拟笔头,有的研究每个笔毛的变形,有的将笔毛分成多簇,研究每一簇的中心骨架的变形,虽然这些方法达到的效果比较理想,但其复杂程度却让人叹为观止,如何使用轻巧的方法实现毛笔小楷字的书写效果是一项需要解决的问题,因此,本发明提出一种毛笔小楷字渲染方法,以解决现有技术中的不足之处。
发明内容
针对上述问题,本发明提出一种毛笔小楷字渲染方法,通过本发明方法可以在计算机上模拟出逼真的毛笔字效果,并且模拟过程计算量少,易操作易实现,能够通过轻巧简便的操作步骤实现毛笔小楷字的书写效果,渲染结果准确度高,且渲染结果整体完整性好。
本发明提出一种毛笔小楷字渲染方法,包括以下步骤:
步骤一:建立一个基于压力的数学模型,利用该数学模型获取毛笔笔宽数据,并设定预设阈值;
步骤二:使用贝塞尔曲线进行坐标的平滑连接,使用四个变量记录连续的四个点坐标,其中两个点坐标作为数据点,另外两个点坐标作为控制点;
步骤三:通过变量计算出最后两个点坐标之间的距离,对大于预设阈值的两个点坐标使用线性插值法进行必要的插值,获得贝塞尔曲线;
步骤四:使用一个画笔对贝塞尔曲线进行绘制,然后使用另一个画笔对绘制的贝塞尔曲线进行渲染。
进一步改进在于:所述步骤一中建立一个基于压力的数学模型的具体过程为:
根据公式(1)建立基于压力的数学模型,然后对建立好的数学模型进行参数调整,得到最终的模型;
y=(a+b*p)/(1+c*p+d*p2) (1)
其中,y为笔画宽度,a,b,c,d为优化参数,p为压力。
进一步改进在于:所述步骤一的公式(1)中参数a取值7.434271860244617E+00,参数b取值-2.110937987128958E-04,参数c取值-5.685952219634382E-05,参数d取值8.336607904155254E-10。
进一步改进在于:所述步骤二中使用贝塞尔曲线进行坐标的平滑连接的具体过程为:使用三阶贝塞尔曲线来进行坐标点的连接,使用四个变量lastPoint、firstCtl、secondCtl和currentPoint记录连续的四个点坐标,将其中的lastPoint和currentPoint作为数据点,将其中的firstCtl,secondCtl作为控制点。
进一步改进在于:所述步骤三中使用线性插值法进行必要的插值的具体过程为:
S1:首先对步骤二中的使用的变量计算出secondCtl和currentPoint之间的距离,对距离大于预设阈值的两个坐标点通过步骤S2进行插值;
S2:根据上述步骤S1中计算的secondCtl和currentPoint两点间距离len,计算出需要插值点的个数num,具体插值算法按步骤S3执行;
S3:根据上述步骤S2中得到的变量num,由公式(2)和(3)计算出插值点(xi,yi)的坐标,i代表第i个坐标点;
xi=x3+i/(num+1)*(x4-x3) (2)
yi=y3+i/(num+1)*(y4-y3) (3)
其中,(x3,y3)为点secondCtl的坐标值,(x4,y4)为点currentPoint的坐标值。
进一步改进在于:所述步骤四中具体过程为:使用一支画笔对获得的贝塞尔曲线进行绘制,并且使用步骤一中所得到的笔宽参数y进行笔的属性设置,再利用另一支画笔使用圆形笔墨对绘制出的贝塞尔曲线进行渲染。
进一步改进在于:所述步骤四中对绘制出的贝塞尔曲线进行渲染时,渲染坐标为当前点坐标减去笔画宽度的一半,宽和高均设置为笔画宽度。
进一步改进在于:所述步骤四中对笔迹的渲染中笔锋效果的处理使用微分的思想,通过记录当前时刻笔画宽度strokeWid和上一时刻笔画宽度lastStrokeWid,当strokeWid<lastStrokeWid,则使用secondCtl和currentPoint进行间隔1的线性插值,对得到的点再和前面三个点重新绘制一次渲染曲线,同样,当strokeWid>lastStrokeWid,则使用lastPoint和firstCtl进行间隔1的线性插值然后和后三个点绘制渲染曲线。
本发明的有益效果为:通过本发明方法可以在计算机上模拟出逼真的毛笔字效果,并且模拟过程计算量少,易操作易实现,能够通过轻巧简便的操作步骤实现毛笔小楷字的书写效果,渲染结果准确度高,且渲染结果整体完整性好。
附图说明
图1为本发明中基于压力的数学模型示意图。
图2为本发明毛笔小楷字渲染效果示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据图1、2所示,本实施例提出一种毛笔小楷字渲染方法,包括以下步骤:
步骤一:建立一个基于压力的数学模型,利用该数学模型获取毛笔笔宽数据,并设定预设阈值,建立一个基于压力的数学模型的具体过程为:根据公式(1)建立基于压力的数学模型,然后对建立好的数学模型进行参数调整,得到最终的模型;
y=(a+b*p)/(1+c*p+d*p2) (1)
其中,y为笔画宽度,a,b,c,d为优化参数,p为压力,参数a取值7.434271860244617E+00,参数b取值-2.110937987128958E-04,参数c取值-5.685952219634382E-05,参数d取值8.336607904155254E-10,模型图如图1所示;
步骤二:使用贝塞尔曲线进行坐标的平滑连接,具体过程为:使用三阶贝塞尔曲线来进行坐标点的连接,使用四个变量lastPoint、firstCtl、secondCtl和currentPoint记录连续的四个点坐标,将其中的lastPoint和currentPoint作为数据点,将其中的firstCtl,secondCtl作为控制点;
步骤三:通过变量计算出最后两个点坐标之间的距离,对大于预设阈值的两个点坐标使用线性插值法进行必要的插值,获得贝塞尔曲线,使用线性插值法进行必要的插值的具体过程为:
S1:首先对步骤二中的使用的变量计算出secondCtl和currentPoint之间的距离,对距离大于预设阈值的两个坐标点通过步骤S2进行插值;
S2:根据上述步骤S1中计算的secondCtl和currentPoint两点间距离len,计算出需要插值点的个数num,具体算法如步骤S3;
S3:根据上述步骤S2中得到的变量num,由公式(2)和(3)计算出插值点(xi,yi)的坐标,i代表第i个坐标点;
xi=x3+i/(num+1)*(x4-x3) (2)
yi=y3+i/(num+1)*(y4-y3) (3)
其中,(x3,y3)为点secondCtl的坐标值,(x4,y4)为点currentPoint的坐标值。
步骤四:使用一支画笔对获得的贝塞尔曲线进行绘制,并且使用步骤一中所得到的笔宽参数y进行笔的属性设置,再利用另一支画笔使用圆形笔墨对绘制出的贝塞尔曲线进行渲染,渲染时,渲染坐标为当前点坐标减去笔画宽度的一半,宽和高均设置为笔画宽度,对笔迹的渲染中笔锋效果的处理使用微分的思想,通过记录当前时刻笔画宽度strokeWid和上一时刻笔画宽度lastStrokeWid,当strokeWid<lastStrokeWid,则使用secondCtl和currentPoint进行间隔1的线性插值,对得到的点再和前面三个点重新绘制一次渲染曲线,同样,当strokeWid>lastStrokeWid,则使用lastPoint和firstCtl进行间隔1的线性插值然后和后三个点绘制渲染曲线。
通过本发明方法可以在计算机上模拟出逼真的毛笔字效果,并且模拟过程计算量少,易操作易实现,能够通过轻巧简便的操作步骤实现毛笔小楷字的书写效果,渲染结果准确度高,且渲染结果整体完整性好。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (8)
1.一种毛笔小楷字渲染方法,其特征在于,包括以下步骤:
步骤一:建立一个基于压力的数学模型,利用该数学模型获取毛笔笔宽数据,并设定预设阈值;
步骤二:使用贝塞尔曲线进行坐标的平滑连接,使用四个变量记录连续的四个点坐标,其中两个点坐标作为数据点,另外两个点坐标作为控制点;
步骤三:通过变量计算出最后两个点坐标之间的距离,对大于预设阈值的两个点坐标使用线性插值法进行必要的插值,获得贝塞尔曲线;
步骤四:使用一个画笔对贝塞尔曲线进行绘制,然后使用另一个画笔对绘制的贝塞尔曲线进行渲染。
2.根据权利要求1所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤一中建立一个基于压力的数学模型的具体过程为:
根据公式(1)建立基于压力的数学模型,然后对建立好的数学模型进行参数调整,得到最终的模型;
y=(a+b*p)/(1+c*p+d*p2) (1)
其中,y为笔画宽度,a,b,c,d为优化参数,p为压力。
3.根据权利要求2所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤一的公式(1)中参数a取值7.434271860244617E+00,参数b取值-2.110937987128958E-04,参数c取值-5.685952219634382E-05,参数d取值8.336607904155254E-10。
4.根据权利要求1所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤二中使用贝塞尔曲线进行坐标的平滑连接的具体过程为:使用三阶贝塞尔曲线来进行坐标点的连接,使用四个变量lastPoint、firstCtl、secondCtl和currentPoint记录连续的四个点坐标,将其中的lastPoint和currentPoint作为数据点,将其中的firstCtl,secondCtl作为控制点。
5.根据权利要求1所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤三中使用线性插值法进行必要的插值的具体过程为:
S1:首先对步骤二中的使用的变量计算出secondCtl和currentPoint之间的距离,对距离大于预设阈值的两个坐标点通过步骤S2进行插值;
S2:根据上述步骤S1中计算的secondCtl和currentPoint两点间距离len,计算出需要插值点的个数num,具体算法如步骤S3;
S3:根据上述步骤S2中得到的变量num,由公式(2)和(3)计算出插值点(xi,yi)的坐标,i代表第i个坐标点;
xi=x3+i/(num+1)*(x4-x3) (2)
yi=y3+i/(num+1)*(y4-y3) (3)
其中,(x3,y3)为点secondCtl的坐标值,(x4,y4)为点currentPoint的坐标值。
6.根据权利要求1所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤四中具体过程为:使用一支画笔对获得的贝塞尔曲线进行绘制,并且使用步骤一中所得到的笔宽参数y进行笔的属性设置,再利用另一支画笔使用圆形笔墨对绘制出的贝塞尔曲线进行渲染。
7.根据权利要求6所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤四中对绘制出的贝塞尔曲线进行渲染时,渲染坐标为当前点坐标减去笔画宽度的一半,宽和高均设置为笔画宽度。
8.根据权利要求6所述的一种毛笔小楷字渲染方法,其特征在于:所述步骤四中对笔迹的渲染中笔锋效果的处理使用微分的思想,通过记录当前时刻笔画宽度strokeWid和上一时刻笔画宽度lastStrokeWid,当strokeWid<lastStrokeWid,则使用secondCtl和currentPoint进行间隔1的线性插值,对得到的点再和前面三个点重新绘制一次渲染曲线,同样,当strokeWid>lastStrokeWid,则使用lastPoint和firstCtl进行间隔1的线性插值然后和后三个点绘制渲染曲线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910635662.9A CN110349238B (zh) | 2019-07-15 | 2019-07-15 | 一种毛笔小楷字渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910635662.9A CN110349238B (zh) | 2019-07-15 | 2019-07-15 | 一种毛笔小楷字渲染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110349238A true CN110349238A (zh) | 2019-10-18 |
CN110349238B CN110349238B (zh) | 2023-03-14 |
Family
ID=68175247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910635662.9A Active CN110349238B (zh) | 2019-07-15 | 2019-07-15 | 一种毛笔小楷字渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110349238B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112102434A (zh) * | 2020-09-22 | 2020-12-18 | 深圳市皓丽智能科技有限公司 | 一种笔迹绘制方法、装置及设备 |
US11361409B2 (en) * | 2018-04-19 | 2022-06-14 | Shenzhen GOODIX Technology Co., Ltd. | Method for smoothing coordinates, touch chip, and electronic terminal |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520849A (zh) * | 2011-11-28 | 2012-06-27 | 北京盛世宣合信息科技有限公司 | 电子毛笔书写方法及系统 |
CN105225260A (zh) * | 2015-09-25 | 2016-01-06 | 中国电子科技集团公司第三十二研究所 | 一种手写原笔迹实现方法 |
-
2019
- 2019-07-15 CN CN201910635662.9A patent/CN110349238B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520849A (zh) * | 2011-11-28 | 2012-06-27 | 北京盛世宣合信息科技有限公司 | 电子毛笔书写方法及系统 |
CN105225260A (zh) * | 2015-09-25 | 2016-01-06 | 中国电子科技集团公司第三十二研究所 | 一种手写原笔迹实现方法 |
Non-Patent Citations (1)
Title |
---|
郭丽等: "电子书画系统中毛笔笔型的模拟研究", 《昆明理工大学学报(理工版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11361409B2 (en) * | 2018-04-19 | 2022-06-14 | Shenzhen GOODIX Technology Co., Ltd. | Method for smoothing coordinates, touch chip, and electronic terminal |
CN112102434A (zh) * | 2020-09-22 | 2020-12-18 | 深圳市皓丽智能科技有限公司 | 一种笔迹绘制方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110349238B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109664300B (zh) | 一种基于力觉学习的机器人多风格书法临摹方法 | |
US9268418B2 (en) | Simulation of an erodible tip in a natural media drawing and/or painting simulation | |
CN105046730B (zh) | 应用于毛笔的书写笔迹呈现方法和装置 | |
CN103559732B (zh) | 一种生成毛笔笔迹的方法 | |
CN111142770B (zh) | 一种生成笔锋的方法及处理装置 | |
CN104821005B (zh) | 可模拟笔势风格的汉字书法作品书写过程动态复现的方法 | |
KR20130060145A (ko) | 수기 입력의 처리 방법 및 장치 | |
KR20120095852A (ko) | 디스플레이 표면상에서 손글씨 잉크 객체를 그리기 및 지우기 하는 방법 및 장치 | |
US20140081610A1 (en) | Methods and Apparatus for Simulation of a Stateful Brush Tip in a Natural Media Drawing and/or Painting Simulation | |
CN104424473A (zh) | 一种手绘草图识别和编辑的方法及装置 | |
JP7282932B2 (ja) | フォント生成モデルトレーニング方法、字庫作成方法、装置及び機器 | |
CN110349238A (zh) | 一种毛笔小楷字渲染方法 | |
CN111127596B (zh) | 一种基于增量Voronoi序列的分层油画笔刷绘制方法 | |
CN108334270A (zh) | 触摸屏手写输入呈现为具有型笔特征笔迹的方法 | |
US20130120237A1 (en) | Systems and Methods for Synthesizing High Fidelity Stroke Data for Lower Dimension Input Strokes | |
CN105867660A (zh) | 一种电子粉笔 | |
CN107204040A (zh) | 多点地质统计学建模方法及装置、计算机存储介质 | |
CN104915009B (zh) | 手势预判的方法及系统 | |
CN113342208B (zh) | 基于多点触控设备的铁路选线方法、终端及存储介质 | |
CN108228998A (zh) | 基于web的电脑出格设计系统 | |
CN104794741B (zh) | 一种手绘图形伪折点的消除方法及系统 | |
CN104951811B (zh) | 应用于毛笔书写的行笔路线识别方法和装置 | |
CN104268915A (zh) | 一种手写汉字的实时轮廓美化方法 | |
CN108335340A (zh) | 压力触摸屏手写输入呈现为具有型笔特征笔迹的方法 | |
CN106681631A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |