函数图像绘制方法、装置、设备及计算机存储介质制造方法及图纸

技术编号:17541568 阅读:34 留言:0更新日期:2018-03-24 18:32
本发明专利技术提供一种函数图像绘制方法、装置、设备及计算机存储介质,该方法包括:获得输入函数;将输入函数进行解析,获得输入函数的组成结构,其中,组成结构中,输入函数由至少一个当前层预定义函数构成,当前层预定义函数为指定数或非指定数,非指定数的当前层预定义函数被解析为由下一层预定义函数基于运算符或括号构成,直到底层预定义函数为指定数;基于组成结构执行输入函数中的运算符,若运算符的运算对象为非指定数的预定义函数,则根据组成结构计算该预定义函数的值,并根据值和运算符获得运算结果;利用由输入值和函数值构成的点坐标绘制输入函数对应的函数图像。采用本实施例,可以适用于多种运算符,扩大了绘制函数图像的范围。

Function image rendering methods, devices, equipment and computer storage media

The present invention provides a method of drawing function, image apparatus, equipment and computer storage medium, the method includes: obtaining input function; the input function analysis, get the structure, the input function, structure, input function by at least one of the predefined function layer, the layer for the specified number of predefined functions or non specified number, non specified number of current levels of predefined functions are parsed by a predefined function layer or operator based on the bottom brackets, until the predefined function for the specified number; hold for operator input function in structure based on the object for the operation if the operator specifies the number of predefined function, is calculated according to the predefined the value of the function structure, and the results are obtained according to the value and use value of the operator; a point from the input value and function The coordinate draws the function image corresponding to the input function. Using this example, it can be applied to a variety of operators, and the scope of drawing function images is expanded.

【技术实现步骤摘要】
函数图像绘制方法、装置、设备及计算机存储介质
本专利技术涉及绘制
,尤其涉及函数图像绘制方法、装置、设备及计算机存储介质。
技术介绍
在实际应用中往往需要绘制输入函数对应的函数图像,为此可以将用户输入的输入函数进行解析,并绘制输入函数对应的函数图像。目前,可以采用逆波兰表示法将用户输入的输入函数进行解析。在逆波兰表示法中,每一运算符都置于其运算对象之后。将输入函数解析成逆波兰表达式后,根据解析获得的表达式以及输入值,如果当前字符为自变量或者数字,则压栈,如果当前字符是运算符,则将栈顶两个元素弹出作相应运算,将运算结果再入栈,最后在表达式扫描完后,栈顶的值即为函数值。然而,该方法仅能满足基本的加减乘除,针对包含对数运算符等复杂运算符的输入函数,无法将输入函数转换为逆波兰表达式的方式,进而无法实现函数图像绘制。
技术实现思路
本专利技术提供了函数图像绘制方法、装置、设备及计算机存储介质,以解决现有技术中针对包含复杂运算符的输入函数无法实现函数图像绘制的缺陷。根据本专利技术实施例的第一方面,提供一种函数图像绘制方法,所述方法包括:获得输入函数;将所述输入函数进行解析,获得所述输入函数的组成结构,其中,所述组成结构中,所述输入函数由至少一个当前层预定义函数构成,当前层预定义函数为指定数或非指定数的当前层预定义函数,非指定数的当前层预定义函数被解析为由下一层预定义函数基于运算符或括号构成,直到底层预定义函数为指定数,所述指定数包括数值、自变量和数学常数;基于所述组成结构执行输入函数中的运算符,其中,若运算符的运算对象为非指定数的预定义函数,则根据所述组成结构计算该预定义函数的值,并根据值和运算符获得运算结果,执行完所有运算符后获得所述输入函数中输入值对应的函数值;利用由所述输入值和所述函数值构成的点坐标绘制所述输入函数对应的函数图像。在一个可选的实现方式中,所述将所述输入函数进行解析,获得所述输入函数的组成结构,包括:将所述输入函数按预设分类进行字符串分割,所述预设分类包括指定数类和运算符类;调用读取策略对分割获得的字符串进行解析,获得所述输入函数的组成结构,所述读取策略包括:从左到右依次读取分割获得的字符串;若当前读取的字符串为指定数,将所述指定数作为当前层预定义函数;若当前读取的字符串为运算符,基于运算符确定需要向右读取的字符串,并将所读取的字符串以及所述运算符确定为当前层预定义函数,基于所读取的字符串确定下一层预定义函数;若当前读取的字符串为左括号,则调用所述读取策略从左到右依次读取括号内的字符串,直到读取到右括号,基于括号内的字符串确定下一层预定义函数。在一个可选的实现方式中,所述将所述输入函数按预设分类进行字符串分割之前,还包括对所述输入函数进行预处理;所述对所述输入函数进行预处理,包括以下一种或多种处理:判断所述输入函数中括号是否成对出现,若括号没有成对出现,则报错;判断所述输入函数中是否存在不合法字符,若存在不合法字符,则报错;判断所述输入函数中是否存在相邻的运算符,若存在相邻的加号和减号,则删除加号;若存在相邻的至少两个加号,则保留其中一个加号;若存在相邻的至少两个减号,则当减号个数为基数时,则保留其中一个减号,当减号个数为偶数时,则将该相邻减号替换为一个加号;判断所述输入函数中是否存在空格,若存在空格,则删除空格;判断所述输入函数中是否存在省略的乘号,若存在,则在省略乘号的位置处添加乘号;将所述输入函数中的字母统一变更为大写字母或小写字母。在一个可选的实现方式中,所述直到解析获得的预定义函数为指定数后,还包括:判断所述输入函数中是否存在指定运算符,所述指定运算符包括乘号、除号和次方运算符;若存在指定运算符,则按指定运算符的优先级将优先级高的指定运算符以及其所需的运算对象构成的函数作为相邻运算符所在层预定义函数的下一层预定义函数。在一个可选的实现方式中,所述利用由所述输入值和所述函数值构成的点坐标绘制所述输入函数对应的函数图像,包括:采用预设绘制策略对相邻点构成的线段进行绘制和判断,所有点绘制和判断完成后,获得所述输入函数对应的函数图像;所述点基于输入值和函数值构成的点坐标获得;所述预设绘制策略包括:绘制由相邻点的第一点和第二点构成的线段;取所述线段的中点,获得中点坐标;将中点坐标中的横坐标作为输入函数的输入值,获得输入值对应的函数值;比较由输入值和函数值构成的目标点与中点的距离;若所述距离小于指定阈值,则进行下一线段的绘制和判断;若所述距离大于或等于指定阈值,则删除所述线段,并利用所述预设绘制策略对由第一点和目标点构成的线段进行绘制和判断、以及利用所述预设绘制策略对由目标点和第二点构成的线段进行绘制和判断。根据本专利技术实施例的第二方面,提供一种函数图像绘制装置,所述装置包括:函数获取模块,用于获得输入函数;结构获得模块,用于将所述输入函数进行解析,获得所述输入函数的组成结构,其中,所述组成结构中,所述输入函数由至少一个当前层预定义函数构成,当前层预定义函数为指定数或非指定数的当前层预定义函数,非指定数的当前层预定义函数被解析为由下一层预定义函数基于运算符或括号构成,直到底层预定义函数为指定数,所述指定数包括数值、自变量和数学常数;函数运算模块,用于基于所述组成结构执行输入函数中的运算符,其中,若运算符的运算对象为非指定数的预定义函数,则根据所述组成结构计算该预定义函数的值,并根据值和运算符获得运算结果,执行完所有运算符后获得所述输入函数中输入值对应的函数值;图像绘制模块,用于利用由所述输入值和所述函数值构成的点坐标绘制所述输入函数对应的函数图像。在一个可选的实现方式中,所述结构获得模块用于:将所述输入函数按预设分类进行字符串分割,所述预设分类包括指定数类和运算符类;调用读取策略对分割获得的字符串进行解析,获得所述输入函数的组成结构,所述读取策略包括:从左到右依次读取分割获得的字符串;若当前读取的字符串为指定数,将所述指定数作为当前层预定义函数;若当前读取的字符串为运算符,基于运算符确定需要向右读取的字符串,并将所读取的字符串以及所述运算符确定为当前层预定义函数,基于所读取的字符串确定下一层预定义函数;若当前读取的字符串为左括号,则调用所述读取策略从左到右依次读取括号内的字符串,直到读取到右括号,基于括号内的字符串确定下一层预定义函数。在一个可选的实现方式中,所述装置还包括预处理模块,用于:将所述输入函数按预设分类进行字符串分割之前,对所述输入函数进行预处理;所述对所述输入函数进行预处理,包括以下一种或多种处理:判断所述输入函数中括号是否成对出现,若括号没有成对出现,则报错;判断所述输入函数中是否存在不合法字符,若存在不合法字符,则报错;判断所述输入函数中是否存在相邻的运算符,若存在相邻的加号和减号,则删除加号;若存在相邻的至少两个加号,则保留其中一个加号;若存在相邻的至少两个减号,则当减号个数为基数时,则保留其中一个减号,当减号个数为偶数时,则将该相邻减号替换为一个加号;判断所述输入函数中是否存在空格,若存在空格,则删除空格;判断所述输入函数中是否存在省略的乘号,若存在,则在省略乘号的位置处添加乘号;将所述输入函数中的字母统一变更为大写字母或小写字母。在一个可选的实现方式中,所述装置还包括优本文档来自技高网...
函数图像绘制方法、装置、设备及计算机存储介质

【技术保护点】
一种函数图像绘制方法,其特征在于,所述方法包括:获得输入函数;将所述输入函数进行解析,获得所述输入函数的组成结构,其中,所述组成结构中,所述输入函数由至少一个当前层预定义函数构成,当前层预定义函数为指定数或非指定数的当前层预定义函数,非指定数的当前层预定义函数被解析为由下一层预定义函数基于运算符或括号构成,直到底层预定义函数为指定数,所述指定数包括数值、自变量和数学常数;基于所述组成结构执行输入函数中的运算符,其中,若运算符的运算对象为非指定数的预定义函数,则根据所述组成结构计算该预定义函数的值,并根据值和运算符获得运算结果,执行完所有运算符后获得所述输入函数中输入值对应的函数值;利用由所述输入值和所述函数值构成的点坐标绘制所述输入函数对应的函数图像。

【技术特征摘要】
1.一种函数图像绘制方法,其特征在于,所述方法包括:获得输入函数;将所述输入函数进行解析,获得所述输入函数的组成结构,其中,所述组成结构中,所述输入函数由至少一个当前层预定义函数构成,当前层预定义函数为指定数或非指定数的当前层预定义函数,非指定数的当前层预定义函数被解析为由下一层预定义函数基于运算符或括号构成,直到底层预定义函数为指定数,所述指定数包括数值、自变量和数学常数;基于所述组成结构执行输入函数中的运算符,其中,若运算符的运算对象为非指定数的预定义函数,则根据所述组成结构计算该预定义函数的值,并根据值和运算符获得运算结果,执行完所有运算符后获得所述输入函数中输入值对应的函数值;利用由所述输入值和所述函数值构成的点坐标绘制所述输入函数对应的函数图像。2.根据权利要求1所述的方法,其特征在于,所述将所述输入函数进行解析,获得所述输入函数的组成结构,包括:将所述输入函数按预设分类进行字符串分割,所述预设分类包括指定数类和运算符类;调用读取策略对分割获得的字符串进行解析,获得所述输入函数的组成结构,所述读取策略包括:从左到右依次读取分割获得的字符串;若当前读取的字符串为指定数,将所述指定数作为当前层预定义函数;若当前读取的字符串为运算符,基于运算符确定需要向右读取的字符串,并将所读取的字符串以及所述运算符确定为当前层预定义函数,基于所读取的字符串确定下一层预定义函数;若当前读取的字符串为左括号,则调用所述读取策略从左到右依次读取括号内的字符串,直到读取到右括号,基于括号内的字符串确定下一层预定义函数。3.根据权利要求2所述的方法,其特征在于,所述将所述输入函数按预设分类进行字符串分割之前,还包括对所述输入函数进行预处理;所述对所述输入函数进行预处理,包括以下一种或多种处理:判断所述输入函数中括号是否成对出现,若括号没有成对出现,则报错;判断所述输入函数中是否存在不合法字符,若存在不合法字符,则报错;判断所述输入函数中是否存在相邻的运算符,若存在相邻的加号和减号,则删除加号;若存在相邻的至少两个加号,则保留其中一个加号;若存在相邻的至少两个减号,则当减号个数为基数时,则保留其中一个减号,当减号个数为偶数时,则将该相邻减号替换为一个加号;判断所述输入函数中是否存在空格,若存在空格,则删除空格;判断所述输入函数中是否存在省略的乘号,若存在,则在省略乘号的位置处添加乘号;将所述输入函数中的字母统一变更为大写字母或小写字母。4.根据权利要求2所述的方法,其特征在于,所述直到解析获得的预定义函数为指定数后,还包括:判断所述输入函数中是否存在指定运算符,所述指定运算符包括乘号、除号和次方运算符;若存在指定运算符,则按指定运算符的优先级将优先级高的指定运算符以及其所需的运算对象构成的函数作为相邻运算符所在层预定义函数的下一层预定义函数。5.根据权利要求1至4任一项所述的方法,其特征在于,所述利用由所述输入值和所述函数值构成的点坐标绘制所述输入函数对应的函数图像,包括:采用预设绘制策略对相邻点构成的线段进行绘制和判断,所有点绘制和判断完成后,获得所述输入函数对应的函数图像;所述点基于输入值和函数值构成的点坐标获得;所述预设绘制策略包括:绘制由相邻点的第一点和第二点构成的线段;取所述线段的中点,获得中点坐标;将中点坐标中的横坐标作为输入函数的输入值,获得输入值对应的函数值;比较由输入值和函数值构成的目标点与中点的距离;若所述距离小于指定阈值,则进行下一线段的绘制和判断;若所述距离大于或等于指定阈值,则删除所述线段,并利用所述预设绘制策略对由第一点和目标点构成的线段进行绘制和判断、以及利用所述预设绘制策略对由目标点和第二点构成的线段进行绘制和判断。6.一种函数图像绘制装置,其特征在于,所述装置包括:函数获取模块,用于获得输入函数;结构获得模块,用于将所述输入函数进行解析,获得所述输入函数的组成结构,其中,所述组成结构中,所述输入函数由至少一个当前层预定义函数构成,当前层预定义函数为指定数或非指定数的当前层预定义函数,非指定数的当前层预定义函数被解析为由下一层预定义函数基于运算符或括号构成,直到底层预定义函数为指定数,所述指定数包括数值、自变量和数学常数;函数运算模块,用于基于所述组成结构执行输入函数中的运算符,其中,若运算符的运算对象为非指定数的预定义函数,则根据所述组成结构计算该预定义函数的值,并根据值和运算符获得运算结果,执行完所有运算符后获得所述输入函数中输入值对应的函数值;图像绘制模块,用于利用由所述输入值和所述函数值构成的点...

【专利技术属性】
技术研发人员:张强
申请(专利权)人:广州视睿电子科技有限公司广州视源电子科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1