基于变量及数学表达式的动态几何软件的实现方法

文档序号:8299004阅读:137来源:国知局
基于变量及数学表达式的动态几何软件的实现方法
【技术领域】
[0001] 本发明涉及计算机制图领域,特别涉及一种基于变量及数学表达式的动态几何软 件的实现方法。
【背景技术】
[0002] 目前,市面上流行的动态几何软件都是基于有向无环图的方式来存储几何对象及 其之间的关系。用户主动改变某个几何对象时,系统首先会判定该几何对象在有向无环图 中的位置,如果当前的几何对象没有父节点,则直接移动该对象,并遍历图中的子孙元素, 根据相应的几何关系移动,完成几何元素的动态改变;如果当前的几何对象有父节点,则向 上查找直到找到没有父节点的元素进行移动,并遍历图中的子孙元素,然后根据相应的几 何关系移动。但是基于有向无环图的方式存储几何对象及对象之间的关系存在以下不足:
[0003] (1)在移动几何元素的过程中只能按照系统预定义的约束关系来进行变换。例如, 系统预定义了中点的构造方法,用户才能构造出两点之间或线段的中点,如果系统未有充 分的预定义,用户也无法构造出三等分点等特殊的几何关系;
[0004] (2)用户只能以自由点为基本单位进行变换,所有的几何变换最终都是基于自由 点变换,因此在应用过程中具有很大的局限性。

【发明内容】

[0005]【要解决的技术问题】
[0006] 本发明的目的是提供一种基于变量及数学表达式的动态几何软件的实现方法,以 解决目前的动态几何软件构造方法少以及应用局限大的问题。
[0007]【技术方案】
[0008] 本发明是通过以下技术方案实现的。
[0009] 本发明涉及一种基于变量及数学表达式的动态几何软件的实现方法,该方法包 括:
[0010] 步骤A:根据用户构造的自由点的维数生成变量,并将生成的变量保存至变量库;
[0011] 步骤B:根据用户选择的几何关系的数学表达式生成几何元素,所述几何关系的 数学表达式为系统预定义的几何关系对应的数学表达式或用户输入的自定义的数学表达 式;
[0012] 步骤C:为自由点或几何元素选定影响变量,所述影响变量的维数与自由点或几 何元素的维数相同;
[0013] 步骤D :当移动自由点或几何元素时,根据自由点或几何元素的移动位移计算影 响变量的最新值,然后计算出所有与影响变量相关的数学表达式的最新值。
[0014] 作为一种优选的实施方式,所述方法还包括步骤E :
[0015] 初始化变量滑竿,从变量库中选择关联变量,将变量滑竿与选择的关联变量进行 关联;
[0016] 作为另一种优选的实施方式,当拖动变量滑竿时,根据变量滑竿的移动位移计算 关联变量的最新值,然后计算出所有与关联变量相关的数学表达式的最新值。
[0017] 作为另一种优选的实施方式,所述步骤B还包括:为用户选择的几何关系的数学 表达式分配变量名并保存至变量库。
[0018] 作为另一种优选的实施方式,所述初始化变量滑竿具体包括:设置变量滑竿最大 值、最小值和步长。
[0019] 作为另一种优选的实施方式,所述步骤C还包括:如果所选择的影响变量的个数 大于1,则设置每个影响变量的权重系数。
[0020] 作为另一种优选的实施方式,所述自由点的维数为2或3。
[0021] 【有益效果】
[0022] 本发明提出的技术方案具有以下有益效果:
[0023] (1)无需再用有向无环图存储几何元素及几何元素之间的关系,降低了复杂度;
[0024] (2)对几何元素的控制可以精确到控制某个变量,而不是以自由点为基础单位,因 此增大了应用范围;
[0025] (3)用户可以通过自定义表达式来构造系统未预定义的特殊几何关系,因此应用 更灵活。
【附图说明】
[0026] 图1为本发明实施例一提供的基于变量及数学表达式的动态几何软件的实现方 法的流程图。
[0027] 图2为本发明实施例二提供的基于变量及数学表达式的动态几何软件的实现方 法的流程图。
【具体实施方式】
[0028] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的具体 实施方式进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是 全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出 创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0029] 图1为本发明实施例一提供的基于变量及数学表达式的动态几何软件的实现方 法的流程图,如图1所示,该方法包括步骤S11至步骤S16,下面分别对步骤S11至步骤S16 进行详细说明。
[0030] 步骤S11 :根据用户构造的自由点的维数生成变量,并将生成的变量保存至变量 库。
[0031]具体地,本实施例中,用户构造两个自由点A(xl,yl,zl)、B(x2,y2,z2),由于每个 自由点的维数均为三维,因此生成六个变量xl,yl,zl,x2,y2,z2,其中变量xl、yl、zl用于 表示A点的x轴坐标、y轴坐标和z轴坐标,变量x2、y2、z2用于表示B点的x轴坐标、y轴 坐标和z轴坐标,并把这六个变量存储至变量库D1中。
[0032] 步骤S12:根据用户选择的几何关系的数学表达式生成几何元素。
[0033] 具体地,选择系统预定义的几何关系对应的数学表达式作为变量之间的几何关 系,本实施例中,选择系统预定义的构造中点功能,构造A、B两点的中点C,此时C的坐标为 由A、B两点坐标的变量组成的表达式:需要说明,本发明中的几 何元素包括具有几何特征的点、线段、圆弧等等。另外,选择系统预定义的几何关系对应的 数学表达式作为变量之间的几何关系时,会为该表达式分配一个变量,该变量名称可以是 V001、V002等,同时会将该变量保存至变量库,这样在后续应用过程中系统预定义的几何关 系也可作为基本变量使用。
[0034]步骤S13:当移动几何元素时,在变量库中选择影响变量。
[0035] 移动C点时(将C点向x轴方向移动a单位的位移、向y轴方向移动b单位的位 移、向z轴方向移动c单位的位移),用户将选择由哪个变量引起坐标的变化,本实施例中选 择xl作为影响x轴坐标变化的影响变量、yl作为影响y轴坐标变化的影响变量、zl作为影 响z轴坐标变化的影响变量。
[0036]步骤S14:根据几何元素的移动位移计算出影响变量的最新值。
[0037] 步骤S13将C点向x轴方向移动a单位的位移、向y轴方向移动b单位的位移、向z 轴方向移动c单位的位移,贝1」影响变量的最新值xl=xl+2*a,yl=yl+2*b,zl=zl+2*c。 由于选择A点的坐标对应的变量为影响变量,因此移动C点时,只会影响A点的位置变化,B 点的位置保持不变。需要说明,本实施例选择xl、yl、zl为影响变量,若选择x2、y2、z2为 影响变量,则移动C点分别向x轴、y轴、z轴方向移动a单位、b单位、c单位的位移后,影 响变量x2 =x2+2*a,y2 =y2+2*b,z2 =z2+2*c。另外,用户还可同时选择xl、x2作为影 响x轴变化的变量,此时需要设置两个影响变量的权重系数,这时移动C点时,A点和B点 都会根据相应的权重系数进行位移。
[0038] 步骤S15 :计算出所有与影响变量相关的数学表达式的最新值。
[0039]具体地,根据C点坐标表达式;
【主权项】
1. 一种基于变量及数学表达式的动态几何软件的实现方法,其特征在于包括: 步骤A :根据用户构造的自由点的维数生成变量,并将生成的变量保存至变量库; 步骤B:根据用户选择的几何关系的数学表达式生成几何元素,所述几何关系的数学 表达式为系统预定义的几何关系对应的数学表达式或用户输入的自定义的数学表达式; 步骤C :为自由点或几何元素选定影响变量,所述影响变量的维数与自由点或几何元 素的维数相同; 步骤D :当移动自由点或几何元素时,根据自由点或几何元素的移动位移计算影响变 量的最新值,然后计算出所有与影响变量相关的数学表达式的最新值。
2. 根据权利要求1所述的基于变量及数学表达式的动态几何软件的实现方法,其特征 在于所述方法还包括步骤E : 初始化变量滑竿,从变量库中选择关联变量,将变量滑竿与选择的关联变量进行关 联; 当拖动变量滑竿时,根据变量滑竿的移动位移计算关联变量的最新值,然后计算出所 有与关联变量相关的数学表达式的最新值。
3. 根据权利要求2所述的基于变量及数学表达式的动态几何软件的实现方法,其特征 在于所述初始化变量滑竿具体包括:设置变量滑竿最大值、最小值和步长。
4. 根据权利要求1至3中任一所述的基于变量及数学表达式的动态几何软件的实现方 法,其特征在于所述步骤B还包括:为用户选择的几何关系的数学表达式分配变量名并保 存至变量库。
5. 根据权利要求中1至3中任一所述的基于变量及数学表达式的动态几何软件的实现 方法,其特征在于所述步骤C还包括:如果所选择的影响变量的个数大于1,则设置每个影 响变量的权重系数。
6. 根据权利要求1所述的基于变量及数学表达式的动态几何软件的实现方法,其特征 在于所述自由点的维数为2或3。
【专利摘要】本发明涉及计算机制图领域,提供一种基于变量及数学表达式的动态几何软件的实现方法,以解决目前的动态几何软件构造方法少以及应用局限大的问题,该方法主要包括:建立动态添加的变量库;构造约束关系;指定几何元素或滑竿与相关变量的影响关系,调节变量实际值。本发明提出的技术方案对几何元素的控制可以精确到控制某个变量,而不是以自由点为基础单位,因此增大了应用范围。
【IPC分类】G06F17-00
【公开号】CN104615578
【申请号】CN201510069704
【发明人】管皓
【申请人】成都远策数码科技有限公司
【公开日】2015年5月13日
【申请日】2015年2月10日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1