CN110047117B - 曲面图形的绘制方法、装置、设备及存储介质 - Google Patents
曲面图形的绘制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110047117B CN110047117B CN201910315463.XA CN201910315463A CN110047117B CN 110047117 B CN110047117 B CN 110047117B CN 201910315463 A CN201910315463 A CN 201910315463A CN 110047117 B CN110047117 B CN 110047117B
- Authority
- CN
- China
- Prior art keywords
- curved surface
- parameter
- variable
- preset
- processed
- 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.)
- Active
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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明属于数学计算技术领域,公开了一种曲面图形的绘制方法、装置、设备及存储介质。该方法包括:获取待绘制的曲面图形对应的曲面方程数据;根据曲面方程数据,确定曲面图形对应的曲面模型;将曲面模型与预设曲面模型作比较,确定曲面模型是否与预设曲面模型相同;在曲面模型与预设曲面模型相同时,从曲面方程数据中提取第一绘图参数和第二绘图参数;根据第一绘图参数,确定曲面图形对应的曲面类型;根据曲面类型,查找曲面图形对应的绘图坐标模型;根据第一绘图参数、第二绘图参数和绘图坐标模型,绘制曲面图形。通过上述方式,解决了现有技术中曲面图形绘制要求高、难度大的技术问题。
Description
技术领域
本发明涉及数学计算技术领域,尤其涉及一种曲面图形的绘制方法、装置、设备及存储介质。
背景技术
随着数学算法的发展,数学算法在越来越多的领域有着举足轻重的地位。曲面图形是学好多重积分算法的前提和基础,所以在学习过程中绘制各种曲面图形非常重要。
目前还没有一种绘图装置能够实现对不同曲面图形,如椭圆锥面图形、椭球面图形、单页双曲面图像和双叶双曲面图形的绘制。因而用户在绘制上述几种类型的曲面图形时,需要自己先确定待绘制的曲面图形是哪种类型,然后选择专门绘制这种曲面图形的绘图装置进行绘制。
虽然这种方式可以实现对不同曲面图形的绘制,但是对于没有掌握各种曲面图形的特征、绘图原理,以及相应绘图软件的编程语句的初学者,在拿到一个曲面图形方程时,往往无法准确的确定当前曲面图形方程对应的曲面图形究竟是哪一类型,因此根本无法快速、精准的绘制出需要的曲面图形。
所以,亟需提供一种能够绘制不同类型曲面图形的绘制方案,以使任意用户均可快速、准确的绘制各种类型的曲面图形。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种曲面图形的绘制方法、装置、设备及存储介质,旨在解决现有技术中曲面图形绘制要求高、难度大的技术问题。
为实现上述目的,本发明提供了一种曲面图形的绘制方法,所述方法包括以下步骤:
获取待绘制的曲面图形对应的曲面方程数据;
根据所述曲面方程数据,确定所述曲面图形对应的曲面模型;
将所述曲面模型与预设曲面模型作比较,确定所述曲面模型是否与预设曲面模型相同;
在所述曲面模型与所述预设曲面模型相同时,从所述曲面方程数据中提取第一绘图参数和第二绘图参数;
根据所述第一绘图参数,确定所述曲面图形对应的曲面类型;
根据所述曲面类型,查找所述曲面图形对应的绘图坐标模型;
根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形。
优选地,所述根据所述曲面方程数据,确定所述曲面图形对应的曲面模型的步骤,包括:
将所述曲面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串;
从所述待处理字符串中提取预设参数;
按照预设的变量转换规则对所述预设参数对应的变量值进行符号变换,得到目标字符串;
将所述目标字符串对应的曲面模型作为所述曲面图形对应的曲面模型。
优选地,所述从所述曲面方程数据中提取第一绘图参数和第二绘图参数的步骤,包括:
根据所述预设参数,确定需要从所述曲面方程数据中提取的所述第一绘图参数和所述第二绘图参数;
根据所述曲面模型和所述曲面方程数据,确定所述曲面模型与所述曲面方程数据之间的对应关系;
根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数。
优选地,所述根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数的步骤之前,所述方法还包括:
对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串;
其中,所述根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数的步骤,包括:
根据所述对应关系,从所述待处理子串中提取所述第一绘图参数和所述第二绘图参数。
优选地,所述对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的步骤,包括:
确定所述预设参数在所述待处理字符串中的第一位置信息;
以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息;
以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息;
从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串。
优选地,所述预设参数为空间坐标系中的参数x、参数y和参数z,所述第一绘图参数包括曲面图形自变量、与所述参数x存在关联性的第一变量和第二变量、与所述参数y存在关联性的第三变量和第四变量,以及与所述参数z存在关联性的第五变量和第六变量;
所述根据所述第一绘图参数,确定所述曲面图形对应的曲面类型的步骤,包括:
判断所述曲面图形自变量是否等于0;
在所述曲面图形自变量等于0时,确定所述曲面图形对应的曲面类型为椭圆锥面类型;
在所述曲面图形自变量不等于0时,对所述第一变量、所述第二变量和所述曲面图形自变量做乘法运行,得到第一乘积;对所述第三变量、所述第四变量和所述曲面图形自变量做乘法运行,得到第二乘积;对所述第五变量、所述第六变量和所述曲面图形自变量做乘法运行,得到第三乘积;
分别判断所述第一乘积、所述第二乘积和所述第三乘积是否小于0;
在所述第一乘积、所述第二乘积和所述第三乘积均小于0时,确定所述曲面图形对应的曲面类型为椭球面类型;
在所述第一乘积、所述第二乘积和所述第三乘积中有任意一个乘积小于0 时,确定所述曲面图形对应的曲面类型为双叶双曲面类型;
在所述第一乘积、所述第二乘积和所述第三乘积中有任意两个乘积小于0 时,确定所述曲面图形对应的曲面类型为单叶双曲面类型。
优选地,所述根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形的步骤,包括:
根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,确定绘图坐标;
根据所述绘图坐标模型,确定初始绘制语句;
根据所述绘图坐标和所述初始绘制语句,生成所述曲面图形对应的目标绘制语句;
根据所述目标绘制语句,绘制所述曲面图形。
此外,为实现上述目的,本发明还提出一种曲面图形的绘制装置,所述装置包括:
获取模块,用于获取待绘制的曲面图形对应的曲面方程数据;
第一确定模块,用于根据所述曲面方程数据,确定所述曲面图形对应的曲面模型;
比较模块,用于将所述曲面模型与预设曲面模型作比较,确定所述曲面模型是否与预设曲面模型相同;
提取模块,用于在所述曲面模型与所述预设曲面模型相同时,从所述曲面方程数据中提取第一绘图参数和第二绘图参数;
第二确定模块,用于根据所述第一绘图参数,确定所述曲面图形对应的曲面类型;
查找模块,用于根据所述曲面类型,查找所述曲面图形对应的绘图坐标模型;
绘制模块,用于根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形。
此外,为实现上述目的,本发明还提出一种曲面图形的绘制设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的曲面图形的绘制程序,所述曲面图形的绘制程序配置为实现如上文所述的曲面图形的绘制方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有曲面图形的绘制程序,所述曲面图形的绘制程序被处理器执行时实现如上文所述的曲面图形的绘制方法的步骤。
本发明提供的曲面图形的绘制方案,在绘制曲面图形的时,用户无需考虑待绘制的曲面图形对应的曲面类型,而是直接触发曲面图形的绘制操作,由终端设备获取待绘制的曲面图形对应的曲面方程数据,然后由终端设备根据获取到的曲面方程数据确定待绘制的曲面图形对应的曲面模型,并将确定的曲面模型与预设曲面模型作比较,只有在确定待绘制的曲面图形对应的曲面模型与预设曲面模型相同时,才从获取到的曲面方程数据中提取绘制曲面图形时需要的第一绘图参数和第二绘图参数,并根据提取到的第一绘图参数确定待绘制的曲面图形对应的曲面类型,同时根据确定的曲面类型查找待绘制的曲面图形对应的绘图坐标模型,最终根据提取到的第一绘图参数、第二绘图参数和查找到的绘图坐标模型,便可以自动绘制出用户需要的曲面图形。
由于整个绘制过程,用户只需要提供待绘制的曲面图形对应的曲面方程数据,无需学习和掌握曲面图形的绘图原理,也无需自己编写曲面图形对应的编程语句,因而大大简化了用户操作,使得任意用户均可快速、准确的绘制各种类型的曲面图形。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的曲面图形的绘制设备的结构示意图;
图2为本发明曲面图形的绘制方法第一实施例的流程示意图;
图3为本发明曲面图形的绘制方法第一实施例中步骤S20的具体实现流程示意图;
图4为本发明曲面图形的绘制方法第一实施例中步骤S40的具体实现流程示意图;
图5为本发明曲面图形的绘制方法第二实施例的流程示意图;
图6为本发明曲面图形的绘制装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的曲面图形的绘制设备结构示意图。
如图1所示,该曲面图形的绘制设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘 (Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对曲面图形的绘制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及曲面图形的绘制程序。
在图1所示的曲面图形的绘制设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明曲面图形的绘制设备中的处理器1001、存储器1005可以设置在曲面图形的绘制设备中,所述曲面图形的绘制设备通过处理器1001调用存储器1005中存储的曲面图形的绘制程序,并执行本发明实施例提供的曲面图形的绘制方法。
本发明实施例提供了一种曲面图形的绘制方法,参照图2,图2为本发明一种曲面图形的绘制方法第一实施例的流程示意图。
本实施例中,所述曲面图形的绘制方法包括以下步骤:
步骤S10,获取待绘制的曲面图形对应的曲面方程数据。
可理解的是,所述曲面方程数据可以来自于用户手动输入或者是***内部输出的等待进一步处理的数据。本实施例中,所述曲面方程数据来自于用户输入,所述曲面方程数据为需要绘制的曲面图形对应的曲面方程。
步骤S20,根据所述曲面方程数据,确定所述曲面图形对应的曲面模型。
具体的说,本实施例中所说的曲面模型,是指将所述曲面方程数据中包含的空间坐标系中的任意坐标参数,如参数x、参数y,或者参数z对应的变量值进行符号变化得到的不携带具体数值的曲面方程。
此外,应当理解的是,由于在实际应用中,计算机设备在处理用户输入的数据时,其内部通常会将用户输入的数据转换为字符串格式,然后再根据业务需求在字符串的基础上进行相应处理。
故,在本实施例中,在根据所述曲面方程数据,确定所述曲面图形对应的曲面模型时,具体可以分为图3所示的4个子步骤:
子步骤S201,将所述曲面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串。
具体的说,在实际应用中,可以预先设置非法字符表,并在非法字符表中记录非法字符。这样,在对所述字符串进行非法字符过滤操作时,直接遍历所述字符串,并将遍历到的当前字符与所述非法字符表中的非法字符进行比较,若遍历到的所述当前字符与所述非法字符相同,则将遍历到的所述当前字符从所述字符串中删除。
为了便于理解,以下结合实例进行说明:
则通过字符串转化处理,上述曲面方程数据对应的字符串 S={5y2/9=-3(z+2)2/5+2(x-1)2/7+3。}。
接着,分别对字符串S和非法字符表B进行遍历,并将从字符串S中遍历出的字符与从非法字符表B中遍历出的字符进行比较,最终确定字符串S 中的字符“。”为非法字符。
最终,将字符串S中的字符“。”过滤掉,得到的待处理字符串 SP={5y2/9=-3(z+2)2/5+2(x-1)2/7+3}。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
子步骤S202,从所述待处理字符串中提取预设参数。
子步骤S203,按照预设的变量转换规则对所述预设参数对应的变量值进行符号变换,得到目标字符串。
为了便于说明,本实施例给出一种具体的变量转换规则,大致如下:
在从所述待处理字符串中提取出的预设参数为参数x、参数y、参数z,以及自变量参数时,需要进行变量转换为:将与参数x做减法运算的变量值用变量x0表示,将与参数x做乘法运算,且位于参数x之前的变量值用变量a1表示,将与参数x做乘法运算,且位于参数x之后的变量值用变量a2表示;将与参数y做减法运算的变量值用变量y0表示,将与参数y做乘法运算,且位于参数y之前的变量值用变量b1表示,将与参数y做乘法运算,且位于参数y之后的变量值用变量b2表示;将与参数z做减法运算的变量值用变量z0表示,将与参数z做乘法运算,且位于参数z之前的变量值用变量c1表示,将与参数 z做乘法运算,且位于参数z之后的变量值用变量c2表示,将自变量参数对应的变量值用d表示,得到所述目标字符串。
首先,将与参数x、参数y、参数z相关的信息,以及自变量参数均调整到“=”的左侧,并按照先参数x,再参数y,再参数z,最后自变量参数的顺序排列,右侧用“0”表示,并将与参数x,或参数y,或参数z做加法运行的变量转换为负数,相应地加法符号用减法符号替换,得到的待处理字符串 SP={-2(x-1)2/7+5y2/9+3(z-(-2))2/5-3=0}。
接着,按照上述变量转换规则,将与参数x做减法运算的变量值“1”,用变量x0表示,将与参数x做乘法运算,且位于参数x之前的变量值“-2”,用变量a1表示,将与参数x做乘法运算,且位于参数x之后的变量值“1/7”,用变量 a2表示;将与参数y做乘法运算,且位于参数y之前的变量值“5”,用变量b1表示,将与参数y做乘法运算,且位于参数y之后的变量值“1/9”,用变量b2表示;将与参数z做减法运算的变量值“-2”用变量z0表示,将与参数z做乘法运算,且位于参数z之前的变量值“3”,用变量c1表示,将与参数z做乘法运算,且位于参数z之后的变量值“1/5”,用变量c2表示,将自变量参数对应的变量值“-3”,用d表示。
此外,由于上述待处理字符串SP中未出现与参数z做减法运算的变量,为了便于最终确定的曲面模型能够更好的与预设曲面模型作比较,此处将变量值“0”作为与参选y做减法运算的变量。
相应地,变量值“0”,需要用变量y0表示。
因而,按照上述变量转换规则进行变量转换操作后,最终得到的目标字符串SO={a1(x-x0)2a2+b1(y-y0)2b2+c1(z-z0)2c2+d=0}。
子步骤S204,将所述目标字符串对应的曲面模型作为所述曲面图形对应的曲面模型。
应当理解的是,以上给出的仅为一种根据曲面方程数据,确定曲面图形对应的曲面模型的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
步骤S30,将所述曲面模型与预设曲面模型作比较,确定所述曲面模型是否与预设曲面模型相同。
具体的说,由于本实施例中提供的曲面图形的绘制方案主要针对的是椭圆锥面类型的曲面图形、椭球面类型的曲面图形、单页双曲面类型的曲面图形和双叶双曲面类型的曲面图形。
通过观察发现,这4种类型的曲面图形具有一个共性,即曲面方程中变量的阶数都是2。也就是说,这4种曲面图形可以用同一个曲面模型表示。故,最终确定的预设曲面模型为:a1(x-x0)2a2+b1(y-y0)2b2+c1(z-z0)2c2+d=0。
相应地,上述将根据待绘制的曲面图形对应的曲面方程数据确定的曲面模型与所述预设曲面模型作比较的操作,具体可以是分别遍历确定的曲面模型和所述预设曲面模型,然后将遍历到的两个曲面模型的当前变量进行比较,若通过比较,确定的所述曲面模型和所述预先曲面模型中的每一个变量均一致,则确定所述曲面模型与所述预设曲面模型相同。
步骤S40,在所述曲面模型与所述预设曲面模型相同时,从所述曲面方程数据中提取第一绘图参数和第二绘图参数。
具体的说,在本实施例中所说的预设参数为空间坐标系中的参数x、参数 y、和参数z,以及自变量参数。
通过上述描述可以发现,其中自变量参数是用变量d表示,为了方便以下称为曲面图形自变量,而与参数x对应的变量有x0、a1和a2;与参数y对应的变量有y0、b1和b2;与参数z对应的变量有z0、c1和c2。
故,为了方便后续处理,本实施例将上述变量a1、a2、b1、b2、c1、c2和 d作为第一绘图参数,将变量x0、y0和z0作为第二绘图参数。
相应地,上述从所述曲面方程数据中提取第一绘图参数和第二绘图参数的操作,即为提取变量a1、a2、b1、b2、c1、c2和d,以及变量x0、y0和z0。
为了便于理解,本实施例结合图4,给出一种具体的实现方式,大致如下:
子步骤S401,根据所述预设参数,确定需要从所述曲面方程数据中提取的所述第一绘图参数和所述第二绘图参数。
也就是说,根据参数x、参数、参数z以及自变量参数,确定需要从所述曲面方程数据中提取的所述第一绘图参数为:a1、a2、b1、b2、c1、c2和d,第二绘图参数为:x0、y0和z0。
子步骤S402,根据所述曲面模型和所述曲面方程数据,确定所述曲面模型与所述曲面方程数据之间的对应关系。
仍以曲面方程数据为为例,在确定的曲面模型为a1(x-x0)2a2+b1(y-y0)2b2+c1(z-z0)2c2+d=0时,所述曲面模型和所述曲面方程数据之间的对应关系为:a1对应“-2”,a2对应“1/7”,b1对应“5”,b2对应“1/9”,c1对应“3”,c2对应“1/5”,d对应“-3”,x0对应“1”,y0对应“0”和z0对应“-2”。
子步骤S403,根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数。
相应地,根据上述对应关系,从曲面方程数据对应的待处理字符串 SP={-2(x-1)2/7+5y2/9+3(z-(-2))2/5-3=0}中提取的所述第一绘图参数为:a1=-2,a2=1/7,b1=5,b2=1/9,c1=3,c2=1/5,d=-3;第一绘图参数为: x0=1,y0=0和z0=-2。
应当理解的是,以上给出的仅为一种从所述曲面方程数据中提取第一绘图参数和第二绘图参数的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,在本实施例中仅给出在所述曲面模型与所述预设曲面模型相同时需要执行的操作,关于在所述曲面模型与所述预设曲面模型不相同的情况,在实际应用中,本领域的技术人员可以根据需要设置相应的处理流程,比如在用户操作界面显示输入的曲面方程数据有误,以提示用户进行修改,具体的实现方式,此处不做限制。
步骤S50,根据所述第一绘图参数,确定所述曲面图形对应的曲面类型。
为了便于说明,以下将a1称为与所述参数x存在关联性的第一变量,将a2称为与所述参数x存在关联性的第二变量,将b1称为与所述参数y存在关联性的第三变量,将b2称为与所述参数y存在关联性的第四变量,将c1称为与所述参数z存在关联性的第五变量,将c2称为与所述参数z存在关联性的第六变量,将d称为曲面图形自变量。
相应地,上述根据所述第一绘图参数,确定所述曲面图形对应的曲面模型的操作,大致如下:
首先,判断所述曲面图形自变量是否等于0。
具体的说,若通过判断确定所述曲面图形自变量等于0,则可以确定所述曲面图形对应的曲面类型为椭圆锥面类型;若通过判断确定所述曲面图形自变量不等于0,则需要对所述第一变量、所述第二变量和所述曲面图形自变量做乘法运行,得到第一乘积;对所述第三变量、所述第四变量和所述曲面图形自变量做乘法运行,得到第二乘积;对所述第五变量、所述第六变量和所述曲面图形自变量做乘法运行,得到第三乘积。
然后,分别判断所述第一乘积、所述第二乘积和所述第三乘积是否小于0。
具体的说,若通过判断确定所述第一乘积、所述第二乘积和所述第三乘积均小于0,则可以确定所述曲面图形对应的曲面类型为椭球面类型;若通过判断确定所述第一乘积、所述第二乘积和所述第三乘积中有任意一个乘积小于0,则可以确定所述曲面图形对应的曲面类型为双叶双曲面类型;若通过判断确定所述第一乘积、所述第二乘积和所述第三乘积中有任意两个乘积小于 0,则可以确定所述曲面图形对应的曲面类型为单叶双曲面类型。
此外,值得一提的是,由于在实际应用中,单页双曲面、双叶双曲面以及椭圆锥面会细化为分别以x轴,或者y轴,或者z轴为旋转轴的单页双曲面、双叶双曲面以及椭圆锥面。因而,关于上述确定所述曲面图形对应的曲面类型为单页双曲面类型、双叶双曲面类型以及椭圆锥面类型时,可以进一步进行细化。
为了便于说明,将第一乘积用a1×a2×d表示,将第二乘积用b1×b2×d表示,将第三乘积用c1×c2×d表示。
相应地,如果a1×a2×d<0,b1×b2×d<0和c1×c2×d>0,则确定所述曲面图形对应的曲面类型为以z轴为旋转轴的单页双曲面类型;如果 a1×a2×d<0,b1×b2×d>0和c1×c2×d<0,则确定所述曲面图形对应的曲面类型为以y轴为旋转轴的单页双曲面类型;如果a1×a2×d>0,b1×b2×d<0和 c1×c2×d<0,则确定所述曲面图形对应的曲面类型为以x轴为旋转轴的单页双曲面类型;如果a1×a2×d<0,b1×b2×d>0和c1×c2×d>0,则确定所述曲面图形对应的曲面类型为以x轴为旋转轴的双页双曲面类型;如果 a1×a2×d>0,b1×b2×d<0和c1×c2×d>0,则确定所述曲面图形对应的曲面类型为以y轴为旋转轴的双页双曲面类型;如果a1×a2×d>0,b1×b2×d<0和 c1×c2×d>0,则确定所述曲面图形对应的曲面类型为以z轴为旋转轴的双页双曲面类型。
关于椭圆锥面类型的确定,需要将第一变量、第二变量、第三变量和第四变量做乘法运行,得到第四乘积a1×a2×b1×b2,将第一变量、第二变量、第五变量和第六变量做乘法运行,得到第五乘积a1×a2×c1×c2,将第三变量、第四变量、第五变量和第六变量做乘法运行,得到第六乘积b1×b2×c1×c2。
相应地,如果d=0,a1×a2×b1×b2<0和a1×a2×c1×c2<0,则确定所述曲面图形对应的曲面类型为以x轴为旋转轴的椭圆锥面类型;如果d=0, a1×a2×c1×c2<0和b1×b2×c1×c2<0,则确定所述曲面图形对应的曲面类型为以z轴为旋转轴的椭圆锥面类型;如果d=0,a1×a2×b1×b2<0和 b1×b2×c1×c2<0,则确定所述曲面图形对应的曲面类型为以y轴为旋转轴的椭圆锥面类型。
步骤S60,根据所述曲面类型,查找所述曲面图形对应的绘图坐标模型。
具体的说,由于待绘制的曲面图形对应的曲面类型可能是椭球面类型、以z轴为旋转轴的单页双曲面类型、以y轴为旋转轴的单页双曲面类型、以x 轴为旋转轴的单页双曲面类型、以x轴为旋转轴的双页双曲面类型、以y轴为旋转轴的双页双曲面类型、以z轴为旋转轴的双页双曲面类型、以x轴为旋转轴的椭圆锥面类型、以z轴为旋转轴的椭圆锥面类型和y轴为旋转轴的椭圆锥面类型中的任意一种,因而对应的绘图坐标模型也会有所不同,为了便于理解,以下给出了上述各种曲面类型的曲面图形对应的绘图坐标模型:
(1)椭球面类型的曲面图形对应的绘图坐标模型为:
(2)以z轴为旋转轴的单页双曲面类型的曲面图形对应的绘图坐标模型为:
(3)以y轴为旋转轴的单页双曲面类型的曲面图形对应的绘图坐标模型为:
(4)以x轴为旋转轴的单页双曲面类型的曲面图形对应的绘图坐标模型为:
(5)以x轴为旋转轴的双页双曲面类型的曲面图形对应的绘图坐标模型为:
(6)以y轴为旋转轴的双页双曲面类型的曲面图形对应的绘图坐标模型为:
(7)以z轴为旋转轴的双页双曲面类型的曲面图形对应的绘图坐标模型为:
(8)以x轴为旋转轴的椭圆锥面类型的曲面图形对应的绘图坐标模型为:
(9)以z轴为旋转轴的椭圆锥面类型的曲面图形对应的绘图坐标模型为:
(10)以y轴为旋转轴的椭圆锥面类型的曲面图形对应的绘图坐标模型为:
步骤S70,根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形。
具体的说,本实施例中提供的曲面图形的绘制方法,是基于MATLAB软件绘制的,即在实际应用中,绘制所述曲面图形的操作是由MATLAB软件根据DRAW语句完成的。
故,在根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形时,具体是先根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,确定绘图坐标;然后,根据所述绘图坐标模型,确定初始绘制语句;最后,根据所述目标绘制语句,绘制所述曲面图形。
需要说明的是,上述所说绘图坐标即为将所述绘图坐标模型中的变量符号用相应的第一绘图参数和第二绘图参数代替获得的。
所述初始绘制语句即预先编辑好的各种曲面模型对应的DRAW语句模板。
相应地,所述目标绘制语句即为MATLAB软件能够识别的DRAW语句,具体是通过将参数x对应的绘图坐标,参数y对应的绘图坐标,参数z对应的绘图坐标,以及曲面图形自变量d带入对应的DRAW语句模板得到。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
通过上述描述不难发现,本实施例中提供的曲面图形的绘制方法,在绘制曲面图形的时,用户无需考虑待绘制的曲面图形对应的曲面类型,而是直接触发曲面图形的绘制操作,由终端设备获取待绘制的曲面图形对应的曲面方程数据,然后由终端设备根据获取到的曲面方程数据确定待绘制的曲面图形对应的曲面模型,并将确定的曲面模型与预设曲面模型作比较,只有在确定待绘制的曲面图形对应的曲面模型与预设曲面模型相同时,才从获取到的曲面方程数据中提取绘制曲面图形时需要的第一绘图参数和第二绘图参数,并根据提取到的第一绘图参数确定待绘制的曲面图形对应的曲面类型,同时根据确定的曲面类型查找待绘制的曲面图形对应的绘图坐标模型,最终根据提取到的第一绘图参数、第二绘图参数和查找到的绘图坐标模型,便可以自动绘制出用户需要的曲面图形。
由于整个绘制过程,用户只需要提供待绘制的曲面图形对应的曲面方程数据,无需学习和掌握曲面图形的绘图原理,也无需自己编写曲面图形对应的编程语句,因而大大简化了用户操作,使得任意用户均可快速、准确的绘制各种类型的曲面图形。
参考图5,图5为本发明一种曲面图形的绘制方法第二实施例的流程示意图。
基于上述第一实施例,本实施例曲面图形的绘制方法在所述步骤S403之前,还包括:
步骤S400,对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串。
具体的说,由于椭球面类型的曲面方程、椭圆锥面类型的曲面方程、单页双曲面类型的曲面方程以及双叶双曲面类型的曲面方程,均是由参数x对应的子串、参数y对应的子串、参数z对应的子串和曲面图形自变量组成的。因而,为了方便提取每一个预设参数对应的第一绘图参数和第二绘图参数,本实施例在执行步骤S403之前,先对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串,然后在执行步骤S403中的操作,从而保证了提取操作可以通过终端设备的多个线程同时进行。
应当理解的是,由于在执行步骤S403之前,对待处理字符串进行了子串提取操作,因而步骤S403中的内容需要适应性的调整为步骤S403'中的内容:根据所述对应关系,从所述待处理子串中提取所述第一绘图参数和所述第二绘图参数。
关于对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的操作,大致可以分为如下几步:
(1)确定所述预设参数在所述待处理字符串中的第一位置信息。
比如说,预设参数分别是:参数x、参数y、参数z和曲面图形自变量d。
相应地,用xp表示参数x在所述待处理字符串中的第一位置信息,用yp表示参数y在所述待处理字符串中的第一位置信息,zp表示参数z在所述待处理字符串中的第一位置信息,dp表示曲面图形自变量d在所述待处理字符串中的第一位置信息。
(2)以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息。
(3)以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息。
(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}。
比如说,如果一个曲面方程数据对应的曲面模型为“a1(x-x0)2a2+b1(y-y0)2b2+c1(z-z0)2c2+d=0”,则提取出的待处理子串分别为:
参数x对应的待处理子串:a1(x-x0)2a2,参数y对应的待处理子串: b1(y-y0)2b2,参数对应的待处理子串z:c1(z-z0)2c2,以及曲面图形自变量d 对应的待处理子串:d。
需要说明的是,在本实施例中,从所述待处理字符串中截取的待处理子串不包括第二位置信息对应的字符和第三位置信息对应的字符。
此外,应当理解的是,以上给出的仅为一种从待处理字符串中提取参数x 对应的子串的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
此外,关于从待处理字符串中提取参数y对应的子串、参数z对应的子串和曲面图形自变量d对应的子串的方式,可以参照上述从待处理字符串中提取参数x对应的子串的过程,此处不再赘述。
此外,上述所说的sL表示第二位置信息L对应的字符,sR表示第三位置信息R对应的字符,n表示所述待处理字符串中最后一个字符的位置信息。
通过上述描述不难发现,本实施例中提供的曲面图形的绘制方法,在根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数之前,通过对待处理字符串进行子串提取操作,得到各个预设参数对应的待处理子串,然后根据所述对应关系,通过多个线程同时从各个待处理子串中提取与该待处理子串对应的预设参数相关的第一绘图参数和第二绘图参数,从而不仅可以保证提取的第一绘图参数和第二绘图参数的准确性,使得后期的绘制的曲面图形更加符合用户需求,还会由于多个待处理子串的同步提取操作,大大提升处理速度。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有曲面图形的绘制程序,所述曲面图形的绘制程序被处理器执行时实现如上文所述的曲面图形的绘制方法的步骤。
参照图6,图6为本发明曲面图形的绘制装置第一实施例的结构框图。
如图6所示,本发明实施例提出的曲面图形的绘制装置包括:获取模块 6001、第一确定模块6002、比较模块6003、提取模块6004、第二确定模块 6005、查找模块6006和绘制模块6007。
其中,所述获取模块6001,用于获取待绘制的曲面图形对应的曲面方程数据;所述第一确定模块6002,用于根据所述曲面方程数据,确定所述曲面图形对应的曲面模型;所述比较模块6003,用于将所述曲面模型与预设曲面模型作比较,确定所述曲面模型是否与预设曲面模型相同;所述提取模块 6004,用于在所述曲面模型与所述预设曲面模型相同时,从所述曲面方程数据中提取第一绘图参数和第二绘图参数;所述第二确定模块6005,用于根据所述第一绘图参数,确定所述曲面图形对应的曲面类型;所述查找模块6006,用于根据所述曲面类型,查找所述曲面图形对应的绘图坐标模型;所述绘制模块6007,用于根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形。
为了便于理解,本实施例给出一种根据所述曲面方程数据,确定所述曲面图形对应的曲面模型的具体实现方式,大致如下:
首先,将所述曲面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串;
然后,从所述待处理字符串中提取预设参数;
接着,按照预设的变量转换规则对所述预设参数对应的变量值进行符号变换,得到目标字符串;
最后,将所述目标字符串对应的曲面模型作为所述曲面图形对应的曲面模型。
应当理解的是,以上给出的仅为一种根据所述曲面方程数据,确定所述曲面图形对应的曲面模型的具体实现方式,对本发明的技术方案并不构成任何限定,在实际应用中,本领域的技术人员可以根据需要进行合理设置,此处不做限制。
相应地,所述提取模块6004从所述曲面方程数据中提取第一绘图参数和第二绘图参数的操作,也可以细化为如下几个步骤:
首先,根据所述预设参数,确定需要从所述曲面方程数据中提取的所述第一绘图参数和所述第二绘图参数;
然后,根据所述曲面模型和所述曲面方程数据,确定所述曲面模型与所述曲面方程数据之间的对应关系;
最后,根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数。
此外,为了便于理解,本实施例以所述预设参数为空间坐标系中的参数x、参数y和参数z,所述第一绘图参数包括曲面图形自变量、与所述参数x存在关联性的第一变量和第二变量、与所述参数y存在关联性的第三变量和第四变量,以及与所述参数z存在关联性的第五变量和第六变量为例,对所述第二确定模块6005执行的操作进行具体说明。
具体的说,所述第二确定模块6005根据所述第一绘图参数,确定所述曲面图形对应的曲面类型的操作,具体可以细化为:
首先,判断所述曲面图形自变量是否等于0。
相应的,若通过判断确定所述曲面图形自变量等于0,则确定所述曲面图形对应的曲面类型为椭圆锥面类型;若确定所述曲面图形自变量不等于0,则对所述第一变量、所述第二变量和所述曲面图形自变量做乘法运行,得到第一乘积;对所述第三变量、所述第四变量和所述曲面图形自变量做乘法运行,得到第二乘积;对所述第五变量、所述第六变量和所述曲面图形自变量做乘法运行,得到第三乘积。
然后,分别判断所述第一乘积、所述第二乘积和所述第三乘积是否小于0。
相应地,若通过判断确定所述第一乘积、所述第二乘积和所述第三乘积均小于0,则确定所述曲面图形对应的曲面类型为椭球面类型;若通过判断确定所述第一乘积、所述第二乘积和所述第三乘积中有任意一个乘积小于0,则确定所述曲面图形对应的曲面类型为双叶双曲面类型;若通过判断确定在所述第一乘积、所述第二乘积和所述第三乘积中有任意两个乘积小于0,则确定所述曲面图形对应的曲面类型为单叶双曲面类型。
应当理解的是,以上给出的仅为一种根据所述第一绘图参数,确定所述曲面图形对应的曲面类型的具体实现方式,对本发明的技术方案并不构成任何限定,在实际应用中,本领域的技术人员可以根据需要进行合理设置,此处不做限制。
此外,值得一提的是,由于本实施例中提供的曲面图形的绘制装置,在绘制曲面图形时,是基于MATLAB(一种绘图软件,称为软件工厂,或矩阵实验室)软件绘制的,故所述绘制模块6007根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形时,需要细化为如下几个子步骤实现:
首先,根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,确定绘图坐标;
然后,根据所述绘图坐标模型,确定初始绘制语句;
根据所述绘图坐标和所述初始绘制语句,生成所述曲面图形对应的目标绘制语句;
最后,根据所述目标绘制语句,绘制所述曲面图形。
需要说明的是,上述所说的初始绘制语句即为MATLAB软件能够识别的 DRAW语句。该绘制语句中主要携带有空间坐标系中的参数x、参数y和参数z,并且对应的角度取值范围通常在[0,2π]之间。
此外,应当理解的是,由于不同曲面图形对应的曲面类型不同,不同的曲面类型又对应不同的绘图坐标模型,因而不同的曲面图形对应的DRAW语句的格式也不相同。
相应地,根据所述绘图坐标和所述初始绘制语句,生成所述曲面图形对应的目标绘制语句的过程,即为将所述绘图坐标中表示参数x、参数y和参数 z的数据代入所述初始绘制语句中相应位置,进而得到绘制所述曲面图形的目标绘制语句。
关于椭圆锥面类型、椭球面类型、双叶双曲面类型和单叶双曲面类型等类型的曲面图形对应的DRAW语句此处不再赘述,在实际应用中,本领域的技术人员可以根据MATLAB软件的使用文档,自行查找,此处不再赘述。
此外,应当理解的是,以上给出的仅为一种根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
通过上述描述不难发现,本实施例中提供的曲面图形的绘制装置,在绘制曲面图形的时,用户无需考虑待绘制的曲面图形对应的曲面类型,而是直接触发曲面图形的绘制操作,由终端设备获取待绘制的曲面图形对应的曲面方程数据,然后由终端设备根据获取到的曲面方程数据确定待绘制的曲面图形对应的曲面模型,并将确定的曲面模型与预设曲面模型作比较,只有在确定待绘制的曲面图形对应的曲面模型与预设曲面模型相同时,才从获取到的曲面方程数据中提取绘制曲面图形时需要的第一绘图参数和第二绘图参数,并根据提取到的第一绘图参数确定待绘制的曲面图形对应的曲面类型,同时根据确定的曲面类型查找待绘制的曲面图形对应的绘图坐标模型,最终根据提取到的第一绘图参数、第二绘图参数和查找到的绘图坐标模型,便可以自动绘制出用户需要的曲面图形。
由于整个绘制过程,用户只需要提供待绘制的曲面图形对应的曲面方程数据,无需学习和掌握曲面图形的绘图原理,也无需自己编写曲面图形对应的编程语句,因而大大简化了用户操作,使得任意用户均可快速、准确的绘制各种类型的曲面图形。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的曲面图形的绘制方法,此处不再赘述。
基于上述曲面图形的绘制装置的第一实施例,提出本发明曲面图形的绘制装置第二实施例。
在本实施例中,所述曲面图形的绘制装置还包括:子串提取模块。
其中,所述子串提取模块,用于在所述提取模块根据所述对应关系,从所述曲面方程数据对应的待处理字符串中提取第一绘图参数和第二绘图参数之前,对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串。
相应地,所述提取模块根据所述对应关系,从所述曲面方程数据对应的待处理字符串中提取第一绘图参数和第二绘图参数的操作,需要实用性的调整为:根据所述对应关系,从所述待处理子串中提取所述第一绘图参数和所述第二绘图参数。
此外,关于所述子串提取模型对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的操作,在实际应用中,大致可以细化为如下几个步骤:
首先,确定所述预设参数在所述待处理字符串中的第一位置信息;
然后,以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息;
接着,以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息;
最后,从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串。
应当理解的是,以上给出的仅为一种对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的具体实现方式,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
通过上述描述不难发现,本实施例中提供的曲面图形的绘制装置,在根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数之前,通过对待处理字符串进行子串提取操作,得到各个预设参数对应的待处理子串,然后根据所述对应关系,通过多个线程同时从各个待处理子串中提取与该待处理子串对应的预设参数相关的第一绘图参数和第二绘图参数,从而不仅可以保证提取的第一绘图参数和第二绘图参数的准确性,使得后期的绘制的曲面图形更加符合用户需求,还会由于多个待处理子串的同步提取操作,大大提升处理速度。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的曲面图形的绘制方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种曲面图形的绘制方法,其特征在于,所述方法包括以下步骤:
获取待绘制的曲面图形对应的曲面方程数据;
根据所述曲面方程数据,确定所述曲面图形对应的曲面模型;
将所述曲面模型与预设曲面模型作比较,确定所述曲面模型是否与预设曲面模型相同;
在所述曲面模型与所述预设曲面模型相同时,从所述曲面方程数据中提取第一绘图参数和第二绘图参数;
根据所述第一绘图参数,确定所述曲面图形对应的曲面类型;
根据所述曲面类型,查找所述曲面图形对应的绘图坐标模型;
根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形;
其中,所述根据所述曲面方程数据,确定所述曲面图形对应的曲面模型的步骤,包括:
将所述曲面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串;
从所述待处理字符串中提取预设参数;
按照预设的变量转换规则对所述预设参数对应的变量值进行符号变换,得到目标字符串;
将所述目标字符串对应的曲面模型作为所述曲面图形对应的曲面模型;
其中,从所述曲面方程数据中提取第一绘图参数和第二绘图参数的步骤,包括:
根据所述预设参数,确定需要从所述曲面方程数据中提取的所述第一绘图参数和所述第二绘图参数,其中,所述预设参数为空间坐标系中的参数x、参数y和参数z,所述第一绘图参数包括曲面图形自变量、与所述参数x存在关联性的第一变量和第二变量、与所述参数y存在关联性的第三变量和第四变量,以及与所述参数z存在关联性的第五变量和第六变量;
根据所述曲面模型和所述曲面方程数据,确定所述曲面模型与所述曲面方程数据之间的对应关系;
根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数;
其中,所述根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数的步骤之前,所述方法还包括:
对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串;
其中,所述根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数的步骤,包括:
根据所述对应关系,从所述待处理子串中提取所述第一绘图参数和所述第二绘图参数;
其中,所述对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串的步骤,包括:
确定所述预设参数在所述待处理字符串中的第一位置信息;
以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息;
以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息;
从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串;
其中,所述根据所述第一绘图参数,确定所述曲面图形对应的曲面类型的步骤,包括:
判断所述曲面图形自变量是否等于0;
在所述曲面图形自变量等于0时,确定所述曲面图形对应的曲面类型为椭圆锥面类型;
在所述曲面图形自变量不等于0时,对所述第一变量、所述第二变量和所述曲面图形自变量做乘法运行,得到第一乘积;对所述第三变量、所述第四变量和所述曲面图形自变量做乘法运行,得到第二乘积;对所述第五变量、所述第六变量和所述曲面图形自变量做乘法运行,得到第三乘积;
分别判断所述第一乘积、所述第二乘积和所述第三乘积是否小于0;
在所述第一乘积、所述第二乘积和所述第三乘积均小于0时,确定所述曲面图形对应的曲面类型为椭球面类型;
在所述第一乘积、所述第二乘积和所述第三乘积中有任意一个乘积小于0时,确定所述曲面图形对应的曲面类型为双叶双曲面类型;
在所述第一乘积、所述第二乘积和所述第三乘积中有任意两个乘积小于0时,确定所述曲面图形对应的曲面类型为单叶双曲面类型。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形的步骤,包括:
根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,确定绘图坐标;
根据所述绘图坐标模型,确定初始绘制语句;
根据所述绘图坐标和所述初始绘制语句,生成所述曲面图形对应的目标绘制语句;
根据所述目标绘制语句,绘制所述曲面图形。
3.一种曲面图形的绘制装置,其特征在于,所述装置包括:
获取模块,用于获取待绘制的曲面图形对应的曲面方程数据;
第一确定模块,用于根据所述曲面方程数据,确定所述曲面图形对应的曲面模型;
比较模块,用于将所述曲面模型与预设曲面模型作比较,确定所述曲面模型是否与预设曲面模型相同;
提取模块,用于在所述曲面模型与所述预设曲面模型相同时,从所述曲面方程数据中提取第一绘图参数和第二绘图参数;
第二确定模块,用于根据所述第一绘图参数,确定所述曲面图形对应的曲面类型;
查找模块,用于根据所述曲面类型,查找所述曲面图形对应的绘图坐标模型;
绘制模块,用于根据所述第一绘图参数、所述第二绘图参数和所述绘图坐标模型,绘制所述曲面图形;
第一确定模块,还用于将所述曲面方程数据转化为字符串,并过滤所述字符串中的非法字符,得到待处理字符串;从所述待处理字符串中提取预设参数;按照预设的变量转换规则对所述预设参数对应的变量值进行符号变换,得到目标字符串;将所述目标字符串对应的曲面模型作为所述曲面图形对应的曲面模型;
提取模块,还用于根据所述预设参数,确定需要从所述曲面方程数据中提取的所述第一绘图参数和所述第二绘图参数,其中,所述预设参数为空间坐标系中的参数x、参数y和参数z,所述第一绘图参数包括曲面图形自变量、与所述参数x存在关联性的第一变量和第二变量、与所述参数y存在关联性的第三变量和第四变量,以及与所述参数z存在关联性的第五变量和第六变量;根据所述曲面模型和所述曲面方程数据,确定所述曲面模型与所述曲面方程数据之间的对应关系;根据所述对应关系,从所述待处理字符串中提取所述第一绘图参数和所述第二绘图参数;
提取模块,还用于对所述待处理字符串进行子串提取操作,得到所述预设参数对应的待处理子串;根据所述对应关系,从所述待处理子串中提取所述第一绘图参数和所述第二绘图参数;
提取模块,还用于确定所述预设参数在所述待处理字符串中的第一位置信息;以所述第一位置信息为起点,向左遍历所述待处理字符串,将遍历到的左侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述左侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向左遍历,并确定所述左侧当前字符在所述待处理字符串中的第二位置信息;以所述第一位置信息为起点,向右遍历所述待处理字符串,将遍历到的右侧当前字符与预设停止遍历字符表中的预设字符进行比较,若所述右侧当前字符与所述预设停止遍历字符表中的预设字符相同,则停止向右遍历,并确定所述右侧当前字符在所述待处理字符串中的第三位置信息;从所述待处理字符串中截取所述第二位置信息与所述第三位置信息之间的字符,得到所述预设参数对应的待处理子串;
第二确认模块,还用于判断所述曲面图形自变量是否等于0;在所述曲面图形自变量等于0时,确定所述曲面图形对应的曲面类型为椭圆锥面类型;在所述曲面图形自变量不等于0时,对所述第一变量、所述第二变量和所述曲面图形自变量做乘法运行,得到第一乘积;对所述第三变量、所述第四变量和所述曲面图形自变量做乘法运行,得到第二乘积;对所述第五变量、所述第六变量和所述曲面图形自变量做乘法运行,得到第三乘积;分别判断所述第一乘积、所述第二乘积和所述第三乘积是否小于0;在所述第一乘积、所述第二乘积和所述第三乘积均小于0时,确定所述曲面图形对应的曲面类型为椭球面类型;在所述第一乘积、所述第二乘积和所述第三乘积中有任意一个乘积小于0时,确定所述曲面图形对应的曲面类型为双叶双曲面类型;在所述第一乘积、所述第二乘积和所述第三乘积中有任意两个乘积小于0时,确定所述曲面图形对应的曲面类型为单叶双曲面类型。
4.一种曲面图形的绘制设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的曲面图形的绘制程序,所述曲面图形的绘制程序配置为实现如权利要求1至2中任一项所述的曲面图形的绘制方法的步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有曲面图形的绘制程序,所述曲面图形的绘制程序被处理器执行时实现如权利要求1至2任一项所述的曲面图形的绘制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910315463.XA CN110047117B (zh) | 2019-04-18 | 2019-04-18 | 曲面图形的绘制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910315463.XA CN110047117B (zh) | 2019-04-18 | 2019-04-18 | 曲面图形的绘制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110047117A CN110047117A (zh) | 2019-07-23 |
CN110047117B true CN110047117B (zh) | 2023-03-17 |
Family
ID=67277887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910315463.XA Active CN110047117B (zh) | 2019-04-18 | 2019-04-18 | 曲面图形的绘制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110047117B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101904125B1 (ko) * | 2017-05-22 | 2018-10-04 | 동의대학교 산학협력단 | 오목면 모델링을 통한 깊이 영상의 처리 방법 및 장치 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826436B1 (en) * | 2001-04-25 | 2004-11-30 | Autodesk, Inc. | Method and apparatus for graphing motion of computer aided design (CAD) geometry |
JP3757925B2 (ja) * | 2002-09-30 | 2006-03-22 | カシオ計算機株式会社 | 図形表示制御装置及び図形表示制御プログラム |
JP2004252835A (ja) * | 2003-02-21 | 2004-09-09 | Mitsubishi Electric Corp | 曲面表示装置、曲面モデル生成装置、曲面分割処理装置、曲面消去処理装置、および曲面モデル表示装置 |
JP4643485B2 (ja) * | 2006-03-30 | 2011-03-02 | 株式会社東芝 | 描画装置、方法およびプログラム |
CN105894551B (zh) * | 2016-03-31 | 2020-02-14 | 百度在线网络技术(北京)有限公司 | 图像绘制方法及装置 |
CN106055825A (zh) * | 2016-06-12 | 2016-10-26 | 文小发 | 一种基于cad的建模实现方法及*** |
-
2019
- 2019-04-18 CN CN201910315463.XA patent/CN110047117B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101904125B1 (ko) * | 2017-05-22 | 2018-10-04 | 동의대학교 산학협력단 | 오목면 모델링을 통한 깊이 영상의 처리 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN110047117A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984155B (zh) | 数据处理流程设定方法和装置 | |
EP2998876B1 (en) | Calculator, recording medium and compute server | |
US10909724B2 (en) | Method, apparatus, and computer readable medium for adjusting color annotation of an image | |
CN110162637B (zh) | 信息图谱构建方法、装置及设备 | |
WO2011119792A2 (en) | Sequential layout builder | |
JP2020057359A (ja) | 訓練データ生成方法、訓練データ生成装置、電子機器およびコンピュータ読み取り可能な記憶媒体 | |
CN109871205B (zh) | 界面代码调整方法、装置、计算机装置及存储介质 | |
CN110047117B (zh) | 曲面图形的绘制方法、装置、设备及存储介质 | |
CN112150347B (zh) | 从有限的修改后图像集合中学习的图像修改样式 | |
WO2011119801A2 (en) | Sequential layout builder architecture | |
CN109977343B (zh) | 椭球面方程绘制方法、装置、设备及存储介质 | |
CN110163975B (zh) | 空间直线的绘制方法、装置、设备及存储介质 | |
US20240021197A1 (en) | Method and apparatus for generating general voice commands and augmented reality display | |
CN112395834B (zh) | 基于图片输入的脑图生成方法、装置、设备及存储介质 | |
CN110047137B (zh) | 抛物面的绘制方法、装置、设备及存储介质 | |
JP2018084966A (ja) | 情報処理装置および情報処理方法 | |
CN113743409A (zh) | 一种文本识别方法和装置 | |
CN109947339B (zh) | 抛物柱面的绘制方法、装置、设备及存储介质 | |
CN111192276B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN110046321B (zh) | 曲线积分的计算方法、装置、设备及存储介质 | |
CN117765617B (zh) | 基于用户手势行为的指令生成方法、***及存储介质 | |
CN115577060B (zh) | 一种基于das的高效字段计算表达方法、装置、介质及产品 | |
CN111143270B (zh) | 距离投影的计算方法、装置、计算设备及存储介质 | |
WO2021260852A1 (ja) | データ処理装置、データ処理方法、および、データ処理プログラム | |
CN117709310A (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 |