本发明涉及数学计算技术领域,尤其涉及一种椭球面方程绘制方法、装置、设备及存储介质。
背景技术:
随着数学算法的发展,数学算法在越来越多的领域有着举足轻重的地位。椭球面绘图是学好多重积分算法的前提和基础,所以能够绘制一般的椭球面图形非常重要,椭球面绘图可以提高人们对椭球面图形的感性认识。
目前还没有能够自动绘制椭球面图形的装置,因而对于一些不常用的椭球面方程,用户在掌握其绘制原理,以及相应的绘图软件的编程语句时,往往难以绘制出与其对应的椭球面图像。
所以亟需提供一种椭球面方程的绘制方案,以使任意用户均可快速、准确的绘制各种类型的椭球面。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供一种椭球面方程绘制方法、装置、设备及存储介质,旨在解决现有技术中椭球面绘制要求高、难度大的技术问题。
为实现上述目的,本发明提供了一种椭球面方程绘制方法,所述方法包括以下步骤:
接收用户触发的椭球面的绘制指令,从所述绘制指令中提取椭球面方程数据;
从所述椭球面方程数据中提取预设参数对应的绘图参数;
根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标,并根据所述绘图坐标绘制椭球面。
优选地,所述从所述椭球面方程数据中提取预设参数对应的绘图参数的步骤之前,所述方法还包括:
将所述椭球面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串;
其中,所述从所述椭球面方程数据中提取预设参数对应的绘图参数的步骤,包括:
从所述待处理字符串中提取所述预设参数对应的绘图参数。
优选地,所述将所述椭球面方程数据转化为字符串的步骤之前,所述方法还包括:
将预设的关系对应表存入预设存储区域,所述关系对应表包括椭球面方程数据与字符串之间的对应关系;
其中,所述将所述椭球面方程数据转化为字符串的步骤,包括:
根据所述关系对应表,将所述椭球面方程数据转化为字符串。
优选地,所述从所述待处理字符串中提取所述绘图参数的步骤,包括:
对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串;
从所述待处理子串中提取所述预设参数对应的绘图参数。
优选地,所述对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的步骤,包括:
确定所述预设参数在所述待处理字符串中的第一位置信息;
以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息;
以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息;
从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串。
优选地,所述绘图参数包括第一绘图参数、第二绘图参数和第三绘图参数中的至少一项;
所述从所述待处理子串中提取所述预设参数对应的绘图参数的步骤,包括:
判断所述待处理子串中是否有第一预设字符;
若所述待处理子串中含有所述第一预设字符,则根据预设的第一提取规则,从所述待处理子串中提取所述第一绘图参数;否则,设置所述第一绘图参数为1;
判断所述待处理子串中是否有第二预设字符;
若所述待处理子串中含有所述第二预设字符,则根据预设的第二提取规则,从所述待处理子串中提取所述第二绘图参数;否则,设置所述第二绘图参数为1;
判断所述待处理子串中是否有第三预设字符;
若所述待处理子串中含有所述第三预设字符,则根据预设的第三提取规则,从所述待处理子串中提取所述第三绘图参数;否则,设置所述第三绘图参数为0。
优选地,所述根据所述绘图坐标绘制椭球面的步骤,包括:
根据所述绘图坐标和预设绘制语句,生成所述椭球面的目标绘制语句;
根据所述目标绘制语句,绘制所述椭球面。
此外,为实现上述目的,本发明还提出一种椭球面方程绘制装置,所述装置包括:
第一提取模块,用于接收用户触发的椭球面的绘制指令,从所述绘制指令中提取椭球面方程数据;
第二提取模块,用于从所述椭球面方程数据中提取预设参数对应的绘图参数;
绘制模块,用于根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标,并根据所述绘图坐标绘制椭球面。
此外,为实现上述目的,本发明还提出一种椭球面方程绘制设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的椭球面方程绘制程序,所述椭球面方程绘制程序配置为实现如上文所述的椭球面方程绘制方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有椭球面方程绘制程序,所述椭球面方程绘制程序被处理器执行时实现如上文所述的椭球面方程绘制方法的步骤。
本发明提供的椭球面方程绘制方案,在获取到用户输入的椭球面方程数据时,通过从椭球面方程数据中提取预设参数对应的绘图参数,然后根据绘图参数和预设的绘图坐标模型确定预设参数对应的绘图坐标,最终便可以根据确定的绘图坐标自动绘制出用户需要的椭球面,整个绘制过程,用户只需要提供椭球面方程数据,无需学习和掌握椭球面方程的绘图原理,也无需自己编写椭球面方程对应的编程语句,大大简化了用户操作,使得任意用户均可快速、准确的绘制各种类型的椭球面。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的椭球面方程绘制设备的结构示意图;
图2为本发明椭球面方程绘制方法第一实施例的流程示意图;
图3为本发明椭球面方程绘制方法第二实施例的流程示意图;
图4为本发明椭球面方程绘制装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的椭球面方程绘制设备结构示意图。
如图1所示,该椭球面方程绘制设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对椭球面方程绘制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及椭球面方程绘制程序。
在图1所示的椭球面方程绘制设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明椭球面方程绘制设备中的处理器1001、存储器1005可以设置在椭球面方程绘制设备中,所述椭球面方程绘制设备通过处理器1001调用存储器1005中存储的椭球面方程绘制程序,并执行本发明实施例提供的椭球面方程绘制方法。
本发明实施例提供了一种椭球面方程绘制方法,参照图2,图2为本发明一种椭球面方程绘制方法第一实施例的流程示意图。
本实施例中,所述椭球面方程绘制方法包括以下步骤:
步骤s10,接收用户触发的椭球面的绘制指令,从所述绘制指令中提取椭球面方程数据。
可理解的是,所述椭球面方程数据可以来自于用户手动输入或者是系统内部输出的等待进一步处理的数据。本实施例中,椭球面方程数据来自于用户输入,所述椭球面方程数据为需要绘制的椭球面对应的椭球面方程。
步骤s20,从所述椭球面方程数据中提取预设参数对应的绘图参数。
应当理解的是,在绘制椭球面时,需要确定三维空间中的参数x、参数y和参数z,才可以绘制出一个完整的椭球面。
故,本实施例中所说的预设参数即为参数x、参数y和参数z。
相应地,从所述椭球面方程数据中提取的绘图参数,即为结果参数(通常用变量符号d表示),以及与参数x对应的绘图参数,如参数x0、参数a1、参数a2,与参数y对应的绘图参数,如参数y0、参数b1、参数b2,和与参数z对应的绘图参数,如参数z0、参数c1、参数c2。
通过上述描述不难发现,每一个预设参数对应的绘图参数会有三个,因而为了便于说明,本实施例以提取一个预设参数对应的绘图参数为例,并将该预设参数对应的三个绘图参数称作第一绘图参数、第二绘图参数和第三绘图参数。
相应地,所述从所述椭球面方程数据中提取预设参数对应的绘图参数的过程,可以如下所述:
首先,判断所述椭球面方程数据中是否有第一预设字符,比如“(x”,或“x”;
若所述椭球面方程数据中含有所述第一预设字符,则根据预设的第一提取规则,从所述椭球面方程数据中提取所述第一绘图参数;否则,设置所述第一绘图参数为1;
接着,判断所述椭球面方程数据中是否有第二预设字符,比如平方符号;
若所述椭球面方程数据中含有所述第二预设字符,则根据预设的第二提取规则,从所述椭球面方程数据中提取所述第二绘图参数;否则,设置所述第二绘图参数为1;
最后,判断所述椭球面方程数据中是否有第三预设字符,比如平方符号和除号;
若所述椭球面方程数据中含有所述第三预设字符,则根据预设的第三提取规则,从所述椭球面方程数据中提取所述第三绘图参数;否则,设置所述第三绘图参数为0。
进一步地,由于在实际应用中,用户的表达习惯、书写习惯不同,因而输入的椭球面方程数据会有多种样式,为了能够准确的识别用户输入的椭球面方程数据,本实施例预先构建了一个椭球面方程模型库,在该椭球面方程库中囊括了24种椭球面方程模型,详见如下给出的24中格式的椭球面方程模型:
(7)a2(x-x0)2+b2(y-y0)2+c2(z-z0)2=d2;
(8)b2(y-y0)2+a2(x-x0)2+c2(z-z0)2=d2;
(9)a2(x-x0)2+c2(z-z0)2+b2(y-y0)2=d2;
(10)c2(z-z0)2+a2(x-x0)2+b2(y-y0)2=d2;
(11)b2(y-y0)2+c2(z-z0)2+a2(x-x0)2=d2;
(12)c2(z-z0)2+b2(y-y0)2+a2(x-x0)2=d2;
相应地,在接收到用户提供的椭球面方程数据,进行绘图参数的提取操作之前,可以先根据用户提供的椭球面方程数据确定一个椭球面方程模型,然后将确定的椭球面方程模型与上述椭球面方程模型库中存储的24种预设椭球面方程模型进行比较,若所述椭球面方程模型库中存在与上述确定的椭球面方程模型相同的预设椭球面方程,则确定用户提供的椭球面方程数据有效,可以进行绘图参数的提取操作。
应当理解的是,以上给出的仅为24种具体的椭球面方程模型,对本发明的技术方案并不构成任何限定,在实际应用中,本领域的技术人员可以根据需要进行设置,此处不做限制。
为了便于理解,以下结合实例进行说明:
假设用户输入的椭球面方程数据为
比如,将与参数x做减法运算的变量值用变量x0表示,将与参数x做乘法运算的变量值用变量
相应地,通过替换,上述椭球面方程数据对应的椭球面方程模型m为
接着,遍历所述椭球面方程模型库,将椭球面方程模型m与遍历到的当前预设椭球面方程模型比较,发现椭球面方程模型m与预设椭球面方程模型
也就是说,通过比较可以确定,用户提供的椭球面方程数据是有效的,因此可以进行绘图参数的提取操作。
应当理解的是,由于上述确定椭球面方程模型m的过程中,已经将参数x对应的绘图参数、参数y对应的绘图参数和参数z对应的绘图参数进行了变量替换,因而这里直接提取变量对应的变量值即可。
通过提取,得到参数x对应的绘图参数为:
通过提取,得到参数y对应的绘图参数为:
通过提取,得到参数z对应的绘图参数为:
通过提取,得到的变量结果d为:
也就是说,从所述椭球面方程数据中提取出的绘图参数分别是:
应当理解的是,以上给出的仅为一种从所述椭球面方程数据中提取预设参数对应的绘图参数的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
步骤s30,根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标,并根据所述绘图坐标绘制椭球面。
具体的说,本实施例中提供的椭球面的绘制方法,在绘制椭球面时,是基于matlab(一种绘图软件,称为软件工厂,或矩阵实验室)软件绘制的,即在实际应用中,绘制所述椭球面的操作是由matlab软件根据draw语句完成的。
故,在根据所述绘图坐标绘制椭球面时,实质是先根根据所述绘图坐标和预设绘制语句,生成所述椭球面的目标绘制语句;然后,根据所述目标绘制语句,绘制所述椭球面。
需要说明的是,上述所说绘图坐标模型,具体格式如下:
相应地,所述根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标的操作,具体是将所述绘图参数带入所述绘图坐标模型,即将所述绘图坐标模型中的变量x0、a1、a2、y0、b1、b2、z0、c1、c2和d,用相应的绘图参数直接替换为具体的变量值,进而得到所述预设参数对应的绘图坐标。
此外,上述所说的预设绘制语句即为matlab软件能够识别的draw语句,在本实施例中,用于绘制椭球面的draw语句的格式如下:draw(x,y,z,[0,π,0,2π])。
相应地,根据所述绘图坐标和预设绘制语句,生成所述椭球面的目标绘制语句的过程,即为将所述绘图坐标中表示参数x、参数y和参数z的数据代入所述预设绘制语句中相应位置,进而得到绘制所述椭球面的目标绘制语句。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
通过上述描述不难发现,本实施例中提供的椭球面方程绘制方法,在获取到用户输入的椭球面方程数据时,通过从椭球面方程数据中提取预设参数对应的绘图参数,然后根据绘图参数和预设的绘图坐标模型确定预设参数对应的绘图坐标,最终便可以根据确定的绘图坐标自动绘制出用户需要的椭球面,整个绘制过程,用户只需要提供椭球面方程数据,无需学习和掌握椭球面方程的绘图原理,也无需自己编写椭球面方程对应的编程语句,大大简化了用户操作,使得任意用户均可快速、准确的绘制各种类型的椭球面。
参考图3,图3为本发明一种椭球面方程绘制方法第二实施例的流程示意图。
基于上述第一实施例,本实施例椭球面方程绘制方法在所述步骤s20之前,还包括:
步骤s00,将所述椭球面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串。
具体的说,在实际应用中,为了便于将所述椭球面方程数据转化为字符串,并保证得到的字符串的准确性,可以预先构建一个包括椭球面方程数据与字符串之间的对应关系的关系对应表,并将所述关系对应表存入计算机设备的预设存储区域。即,在执行上述步骤s00之前,需要先将预设的关系对应表存入预设存储区域。
相应地,所述将所述椭球面方程数据转化为字符串的操作,具体为:根据所述关系对应表,将所述椭球面方程数据转化为字符串。
此外,值得一提的是,由于在实际应用中,用户在提供椭球面方程数据时,除了会输入椭球面方程,还会根据个人的书写习惯,在椭球面方程中添加一些非法字符。因而,为了保证计算机设备能够准确的识别出椭球面方程数据对应的椭球面方程模型,以及预设参数的绘图参数,可以预先设置非法字符表,并在非法字符表中记录非法字符。这样,在对所述字符串进行非法字符过滤操作时,直接遍历所述字符串,并将遍历到的当前字符与所述非法字符表中的非法字符进行比较,若遍历到的所述当前字符与所述非法字符相同,则将遍历到的所述当前字符从所述字符串中删除。
为了便于理解,以下结合实例进行说明:
假设,用户输入的椭球面方程数据为:
则通过字符串转化处理,上述椭球面方程数据对应的字符串s={4(x-1)λ2/5+yλ24+6(z+2)λ2=5。}。
接着,分别对字符串s和非法字符表b进行遍历,并将从字符串s中遍历出的字符与从非法字符表b中遍历出的字符进行比较,最终确定字符串s中的字符“。”为非法字符。
最终,将字符串s中的字符“。”过滤掉,得到的待处理字符串sp={4(x-1)λ2/5+yλ24+6(z+2)λ2=5}。
应当理解的是,以上给出的仅为一种将椭球面方程数据转化为字符串,以及过滤字符串中非法字符的具体实现方式,对本发明的技术方案并不构成任何限定,在实际应用中,本领域的技术人员可以根据需要进行设置,此处不做限制。
相应地,原步骤s20中提取预设参数对应的绘图参数的操作,变为步骤s20'中的操作:从所述待处理字符串中提取所述预设参数对应的绘图参数。
具体的说,由于每一个椭球面方程都是参数x对应的子串、参数y对应的子串和参数z对应的子串,加上最终的结果变量d构成的。因而,为了方便提取每一个预设参数对应的绘图参数,本实施例中给出了一种从所述待处理字符串中提取所述预设参数对应的绘图参数的具体实现方式,大致如下:
(1)对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串。
关于步骤(1)中对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的操作,具体可以如下所述:
(1.1)确定所述预设参数在所述待处理字符串中的第一位置信息。
比如说,预设参数分别是:参数x、参数y、参数z和结果变量d。
相应地,用xp表示参数x在所述待处理字符串中的第一位置信息,用yp表示参数y在所述待处理字符串中的第一位置信息,zp表示参数z在所述待处理字符串中的第一位置信息,dp表示结果变量d在所述待处理字符串中的第一位置信息。
(1.2)以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息。
(1.3)以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息。
(1.4)从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串。
应当理解的是,由于不同格式的椭球面方程模型中,不同预设参数在待处理字符串中的位置会有所差异,因而在提取不同预设参数对应的子串时,在停止遍历字符表中设置的预设字符也会有所差异。
为了便于理解,本实施例以从待处理字符串中提取参数x对应的子串为例,进行具体说明:
首先,从待处理字符串s中找到参数x的第一位置xp;
然后,令l=r=xp,l为预设的第二位置信息,r为预设的第三位置信息;
接着,重复执行l=l-1的操作,直到l=1,或sl='-',或sl='+',或sl='='为止,并将当前位置信息赋值给l;
接着,重复执行r=r+1的操作,直到sr='λ',或sr='-',或sr='+',或sr='=',或r=n为止,并将当前位置信息赋值给r;
最后,从待处理字符串s中截取l(重新赋值后的)和r(重新赋值后的)之间的字符,得到参数x对应的待处理子串sx={sl+1...sr-1}。
比如说,如果一个椭球面方程数据对应的椭球面方程模型为
参数x对应的待处理子串:
需要说明的是,在本实施例中,从所述待处理字符串中截取的待处理子串不包括第二位置信息对应的字符和第三位置信息对应的字符。
此外,应当理解的是,以上给出的仅为一种从待处理字符串中提取参数x对应的子串的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,关于从待处理字符串中提取参数y对应的子串、参数z对应的子串和结果变量d对应的子串的方式,可以参照上述从待处理字符串中提取参数x对应的子串的过程,此处不再赘述。
此外,上述所说的sl表示第二位置信息l对应的字符,sr表示第三位置信息r对应的字符,n表示所述待处理字符串中最后一个字符的位置信息。
(2)从所述待处理子串中提取所述预设参数对应的绘图参数。
具体的说,所述从所述待处理子串中提取所述预设参数对应的绘图参数的过程,大致分为三步:
(2.1)判断所述待处理子串中是否有第一预设字符;
若所述待处理子串中含有所述第一预设字符,则根据预设的第一提取规则,从所述待处理子串中提取所述第一绘图参数;否则,设置所述第一绘图参数为1;
(2.2)判断所述待处理子串中是否有第二预设字符;
若所述待处理子串中含有所述第二预设字符,则根据预设的第二提取规则,从所述待处理子串中提取所述第二绘图参数;否则,设置所述第二绘图参数为1;
(2.3)判断所述待处理子串中是否有第三预设字符;
若所述待处理子串中含有所述第三预设字符,则根据预设的第三提取规则,从所述待处理子串中提取所述第三绘图参数;否则,设置所述第三绘图参数为0。
应当理解的是,以上给出的仅为一种从所述待处理字符串中提取所述绘图参数的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,值得一提的是,由于一个椭球面方程中包括的待处理子串有4个,相应的提取绘图参数的操作也需要4次,分别是提取参数x对应的绘图参数x0、a1、a2,参数y对应的绘图参数y0、b1、b2,参数z对应的绘图参数z0、c1、c2和绘图参数d。
通过方法实施例一种给出的24种椭球面方程模型不难发现,参数x对应的待处理子串的格式、参数y对应的待处理子串的格式和参数z对应的待处理子串的格式,并非完全相同。
为了在实际应用中能够使用统一的算法进行待处理字符串中各子串的分离,本实施做了如下分析:
(2.1)对于待处理子串
(2.2)对于待处理子串
(2.3)对于待处理子串
为了便于理解,本实施例以从待处理子串
首先,从待处理子串sx中找到“(x”的位置,如果没有找到“(x”的位置,则一定可以找到“x”的位置,并且将该位置记作lx;
然后,如果lx=1,则a1=1;否则,从待处理子串sx的首位到位置lx-1之间取出
接着,统计出待处理子串sx的长度
接着,从待处理子串sx中找到“^2”的位置,并将该位置记作fx;
接着,如果
最后,从待处理子串sx中找到“x^2”的位置,如果找到“x^2”的位置,则x0=0;否则,从待处理子串sx中找到“)”的位置,并将该位置记作tx,从lx+1的位置到tx-1的位置之间取出带符号的数值x0,最后使x0=-x0即可。
应当理解的是,以上给出的仅为一种从
另外,关于从
为了便于理解,以下结合实例进行说明:
假设用户输入的椭球面方程数据为
sp={4(x-1)λ2/5+yλ24+6(z+2)λ2=5};
然后,按照上述给出的待处理子串的提取方式,提取出的参数x对应的待处理子串为:sx={4(x-1)λ2/5},提取出的参数y对应的待处理子串为:sy={yλ24},提取出的参数z对应的待处理子串为:sz={6(z+2)λ2},结果变量d对应的待处理子串sd={5}。
接着,按照上述给出的绘图参数的提取方式,从待处理子串sx中提取的参数x对应的绘图参数为:
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在实际应用中,本领域的技术人员可以根据需要进行设置,此处不做限制。
通过上述描述不难发现,本实施例中提供的椭球面方程绘制方法,在执行从所述椭球面方程数据中提取预设参数对应的绘图参数的操作之前,通过根据预设的关系对应表将椭球面方程数据转化为字符串,并过滤掉字符串中的非法字符,得到待处理字符串,然后根据预设的提取方式,从待处理字符串中提取预设参数对应的绘图参数,从而有效地保障了提取的绘图参数的准确性,使得后期绘制的椭球面更加符合用户需求。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有椭球面方程绘制程序,所述椭球面方程绘制程序被处理器执行时实现如上文所述的椭球面方程绘制方法的步骤。
参照图4,图4为本发明椭球面方程绘制装置第一实施例的结构框图。
如图4所示,本发明实施例提出的椭球面方程绘制装置包括:第一提取模块4001、第二提取模块4002和绘制模块4003。
其中,所述第一提取模块4001,用于接收用户触发的椭球面的绘制指令,从所述绘制指令中提取椭球面方程数据;所述第二提取模块4002,用于从所述椭球面方程数据中提取预设参数对应的绘图参数;所述绘制模块4003,用于根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标,并根据所述绘图坐标绘制椭球面。
应当理解的是,在绘制椭球面时,需要确定三维空间中的参数x、参数y和参数z,才可以绘制出一个完整的椭球面。
故,本实施例中所说的预设参数即为参数x、参数y和参数z。
相应地,从所述椭球面方程数据中提取的绘图参数,即为与参数x对应的绘图参数,如参数x0、参数a1、参数a2,与参数y对应的绘图参数,如参数y0、参数b1、参数b2,和与参数z对应的绘图参数,如参数z0、参数c1、参数c2。
通过上述描述不难发现,每一个预设参数对应的绘图参数会有三个,因而为了便于说明,本实施例以提取一个预设参数对应的绘图参数为例,并将该预设参数对应的三个绘图参数称作第一绘图参数、第二绘图参数和第三绘图参数。
相应地,所述第二提取模块4002从所述椭球面方程数据中提取预设参数对应的绘图参数的过程,可以如下所述:
首先,判断所述椭球面方程数据中是否有第一预设字符;
若所述椭球面方程数据中含有所述第一预设字符,则根据预设的第一提取规则,从所述椭球面方程数据中提取所述第一绘图参数;否则,设置所述第一绘图参数为1;
接着,判断所述椭球面方程数据中是否有第二预设字符;
若所述椭球面方程数据中含有所述第二预设字符,则根据预设的第二提取规则,从所述椭球面方程数据中提取所述第二绘图参数;否则,设置所述第二绘图参数为1;
最后,判断所述椭球面方程数据中是否有第三预设字符;
若所述椭球面方程数据中含有所述第三预设字符,则根据预设的第三提取规则,从所述椭球面方程数据中提取所述第三绘图参数;否则,设置所述第三绘图参数为0。
应当理解的是,以上给出的仅为一种从所述椭球面方程数据中提取预设参数对应的绘图参数的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,由于本实施例为与方法实施例一对应的装置实施例,因而关于上述所说的从所述椭球面方程数据中提取预设参数对应的绘图参数的具体实现方式,可参见本发明方法实施例一中记载的内容,此处不再赘述。
此外,值得一提的是,由于本实施例中提供的椭球面的绘图装置,在绘制椭球面时,是基于matlab(一种绘图软件,称为软件工厂,或矩阵实验室)软件绘制的,故所述绘制模块4003在根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标,并根据所述绘图坐标绘制椭球面时,实质是先根据所述绘图坐标和预设绘制语句,生成所述椭球面的目标绘制语句;然后,根据所述目标绘制语句,绘制所述椭球面。
需要说明的是,上述所说绘图坐标模型,具体格式如下:
相应地,所述根据所述绘图参数和预设的绘图坐标模型,确定所述预设参数对应的绘图坐标的操作,具体是将所述绘图参数带入所述绘图坐标模型,即将所述绘图坐标模型中的变量x0、a1、a2、y0、b1、b2、z0、c1、c2和d,用相应的绘图参数直接替换为具体的变量值,进而得到所述预设参数对应的绘图坐标。
此外,上述所说的预设绘制语句即为matlab软件能够识别的draw语句,在本实施例中,用于绘制椭球面的draw语句的格式如下:draw(x,y,z,[0,π,0,2π])。
相应地,根据所述绘图坐标和预设绘制语句,生成所述椭球面的目标绘制语句的过程,即为将所述绘图坐标中表示参数x、参数y和参数z的数据代入所述预设绘制语句中相应位置,进而得到绘制所述椭球面的目标绘制语句。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
通过上述描述不难发现,本实施例中提供的椭球面方程绘制装置,在获取到用户输入的椭球面方程数据时,通过从椭球面方程数据中提取预设参数对应的绘图参数,然后根据绘图参数和预设的绘图坐标模型确定预设参数对应的绘图坐标,最终便可以根据确定的绘图坐标自动绘制出用户需要的椭球面,整个绘制过程,用户只需要提供椭球面方程数据,无需学习和掌握椭球面方程的绘图原理,也无需自己编写椭球面方程对应的编程语句,大大简化了用户操作,使得任意用户均可快速、准确的绘制各种类型的椭球面。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的椭球面方程绘制方法,此处不再赘述。
基于上述椭球面方程绘制装置的第一实施例,提出本发明椭球面方程绘制装置第二实施例。
在本实施例中,所述椭球面方程绘制装置还包括字符串转化模块和存储模块。
其中,所述字符串转化模块,用于在所述第二提取模块从所述椭球面方程数据中提取预设参数对应的绘图参数之前,将所述椭球面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串。
相应地,所述第二提取模块在从所述椭球面方程数据中提取预设参数对应的绘图参数时,具体是从所述待处理字符串中提取所述预设参数对应的绘图参数。
所述存储模块,用于在所述字符串转化模块将所述椭球面方程数据转化为字符串之前,将预设的关系对应表存入预设存储区域。
需要说明的是,所述关系对应表包括椭球面方程数据与字符串之间的对应关系。
相应地,所述字符串转化模块在将述椭球面方程数据转化为字符串时,具体是根据所述关系对应表,将所述椭球面方程数据转化为字符串。
此外,值得一提的是,由于在具体应用中,一个椭球面方程除了包括参数x、参数y和参数z,还会包括与参数x、参数y和参数z对应的关变量,以及结果变量(通常用变量符号d表示)。因此,为了方便绘图参数的提取,本实施例给出了一种从所述待处理字符串中提取所述绘图参数的具体实现方式,大致如下:
(1)对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串。
关于进行子串提取操作的实现,大致如下:
首先,确定所述预设参数在所述待处理字符串中的第一位置信息;
然后,以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息;
接着,以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息;
最后,从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串。
需要说明的是,在实际提取过程中,截取的子串不包括第二位置信息对应的字符和第三位置信息对应的字符。
(2)从所述待处理子串中提取所述预设参数对应的绘图参数。
具体的说,所述从所述待处理子串中提取所述预设参数对应的绘图参数的过程,大致分为三步:
(2-1)判断所述待处理子串中是否有第一预设字符;
若所述待处理子串中含有所述第一预设字符,则根据预设的第一提取规则,从所述待处理子串中提取所述第一绘图参数;否则,设置所述第一绘图参数为1;
(2-2)判断所述待处理子串中是否有第二预设字符;
若所述待处理子串中含有所述第二预设字符,则根据预设的第二提取规则,从所述待处理子串中提取所述第二绘图参数;否则,设置所述第二绘图参数为1;
(2-3)判断所述待处理子串中是否有第三预设字符;
若所述待处理子串中含有所述第三预设字符,则根据预设的第三提取规则,从所述待处理子串中提取所述第三绘图参数;否则,设置所述第三绘图参数为0。
应当理解的是,以上给出的仅为一种从所述待处理字符串中提取所述绘图参数的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,由于本实施例为与方法实施例二对应的装置实施例,因而关于上述所说的从所述待处理字符串中提取所述绘图参数的具体实现方式,可参见本发明方法实施例二中记载的内容,此处不再赘述。
通过上述描述不难发现,本实施例中提供的椭球面方程绘制装置,在执行从所述椭球面方程数据中提取预设参数对应的绘图参数的操作之前,通过根据预设的关系对应表将椭球面方程数据转化为字符串,并过滤掉字符串中的非法字符,得到待处理字符串,然后根据预设的提取方式,从待处理字符串中提取预设参数对应的绘图参数,从而有效地保障了提取的绘图参数的准确性,使得后期绘制的椭球面更加符合用户需求。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的椭球面方程绘制方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(readonlymemory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。