CN110795193B - 一种动态几何软件中图形退化的实现方法 - Google Patents
一种动态几何软件中图形退化的实现方法 Download PDFInfo
- Publication number
- CN110795193B CN110795193B CN201911046620.8A CN201911046620A CN110795193B CN 110795193 B CN110795193 B CN 110795193B CN 201911046620 A CN201911046620 A CN 201911046620A CN 110795193 B CN110795193 B CN 110795193B
- Authority
- CN
- China
- Prior art keywords
- constraint
- elements
- primitive
- type
- updating
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种动态几何软件中图形退化的实现方法,步骤S100:在动态几何软件的界面上拖动自由元素,查找自由元素驱动的依赖元素序列并将其放入更新队列;所述自由元素和依赖元素为约束类型不同的元素,所述元素包括图元和约束;步骤S200:启动更新元素状态,遍历更新队列,依次更新元素,更新元素过程中根据元素的约束的输入的类型变化,动态的变化或者替换元素的图元类型,重新生成新的图元。本发明实现了动态几何作图和用户几何直观的统一;约束类型不变,output元素图元类型可动态变化或者替换,完备解决的动态几何中退化问题;元素更新过程中的计算方法根据约束的输入的类型变化而动态的选择。
Description
技术领域
本发明涉及动态几何软件技术领域,具体的说,是一种动态几何软件中图形退化的实现方法。
背景技术
动态几何系统是几何约束求解领域的重要应用,被广泛应用于基础数学教育。在几何约束求解过程中常常会遇到临界点,此时几何元素会出现退化的情形。在学习和探究过程中,引起退化的临界点往往是需要重点考察的情况,然而几款著名的动态几何软件都无法完备地呈现许多退化情形,如Cinderella2.9、超级画板2.1(Super Sketchpad,SSP)、GeoGebra 5.0(GGB)。以三点圆退化为直线为例,Cinderella和SSP均无法正确绘制该退化的圆,只有GGB能正确绘制,但是GGB中将鼠标移至空中空白处并点击可以选中该退化的圆,即软件将整个屏幕都区域都当作是退化的圆,而非退化而成直线。动态几何软件GEX,则是回避了这一问题:其在构造了三点圆后,拖动自由点时软件自动设定无法将三点拖动至共线。而实际上,三点圆上的三个点共线时应该是一条直线,而非不存在。这显然不符合用户直观感受和数学规律,也不利于后续的研究。现有技术中尚没有一种方法可以解决图形退化问题。
发明内容
本发明的目的在于提供一种动态几何软件中图形退化的实现方法,用于解决动态几何约束求解过程中退化问题,实现动态几何作图和用户几何直观的统一,完备的展现动态几何中退化问题。
本发明通过下述技术方案解决上述问题:
一种动态几何软件中图形退化的实现方法,包括:
步骤S100:在动态几何软件的界面上拖动自由元素,查找自由元素驱动的依赖元素序列并将其放入更新队列;动态数学中根据约束关系(包含了输入与输出的对应关系,根据输入可以找到输出),寻找元素与元素之间的关系,多个约束关系则构造成了有向无环图,所述查找自由元素驱动的依赖序列,即在有向无环图,查找依赖元素;所述自由元素和依赖元素为约束类型不同的元素,所述元素包括图元和约束;
步骤S200:根据动态几何软件的更新机制,自由元素的状态改变,达到了更新机制的条件,启动更新元素状态,遍历更新队列,依次更新元素,更新元素过程中根据元素的约束的输入的类型变化,动态的变化或者替换元素的图元类型,重新生成新的图元。动态几何软件都存在更新机制,既可以采取实时更新,即自由元素一变化,马上就更新队列,也可以是存在一个系统时钟,每隔几十毫秒,就去更新队列。
进一步地,所述步骤S200中的元素更新的具体方法为:
步骤A:根据元素的约束类型,判断元素的约束的输入inputs能否构造约束,若不能,则将约束对应的元素输出output的图元的核心数据core设置为不存在,退出;否则,根据构造约束的约束类型、输入inputs和约束参数在计算库中选择对应的计算方法进行计算,返回计算结果,所述计算结果包括图元类型type和图元的核心数据core,所述计算库包括动态几何中元素变换的计算方法;
步骤B:比较当前元素图元类型与返回的图元类型是否一致,如果是,更新图元的核心数据core,否则,根据新的图元类型type,重新生成新的图元并更新核心数据core,替换当前元素的图元。
步骤S300:更新后的元素组成新的几何图形,完成图形退化。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明实现了:动态几何作图和用户几何直观的统一;约束类型不变,output元素图元类型可动态变化或者替换,完备解决的动态几何中退化问题;元素更新过程中的计算方法根据约束的输入的类型变化而动态的选择。
(2)本发明中可提前对约束是否能构造作为预判,减少后续不必要计算与错误。
附图说明
图1为本发明的流程图。
具体实施方式
首先,在对本申请的具体实施例介绍之前,首先介绍一些概念:
元素:元素包含图元与约束,根据约束类型可将元素类型分为自由元素和依赖元素,自由元素是可通过一个或者多个约束间接或者直接驱动依赖元素;
图元:图元包含关键的核心数据core,类型type,如一个点包含一个位置坐标,一条线包含一个起始坐标和一个终止坐标,一个圆包含一个圆心坐标和一个半径等;
点的模型可表示为
{type:"Point",core:{x:number,y:number}}
线的模型可表示为
{type:"Line",core:{sp:{x:number,y:number},ep:{x:number,y:number}}}
圆的模型可表示为
{type:"Circle",core:{centre:{x:number,y:number},radius:number}
约束:每个约束都有一个约束类型,同时包含了元素与元素之间关系,一个约束可能存在零个或者多个输入inputs,一个输出output,如两点线段这个约束,输入inputs为两个点(元素),输出output为线段(元素),除此之外,约束可能还包含一些参数,如旋转约束,涉及到参数,旋转角度等;
约束类型:约束类型包含自由点,变换(平移,旋转,等),交点,中点,中心,平行线,三点圆,两点圆,轨迹,迭代等;
计算库:里面包含了动态几何中核心计算方法库,涉及到元素经过某种变换的相关算法等。
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种动态几何软件中图形退化的实现方法,包括:
a.拖动自由元素;
b.查找可驱动的元素序列,放入更新队列;
c.启动更新元素状态;
d.遍历更新队列,依次更新元素;
f.更新后的元素组成新的几何图形,完成图形退化,结束;
步骤d中单个元素更新过程如下:
约束构造预判模块:根据约束类型,判断输入inputs是否能构造约束,如已存在一个约束(如渐近线)和过五点的确定的双曲线C,根据渐近线这个约束,构造了一条渐近线B,当五个点发生位置变化后,双曲线C退化成了一个椭圆,此时椭圆是不能构造渐近线这条约束,此时通过预判模块可进行判断,如果不能构造,则直接将约束对应的元素输出output的图元的核心数据core设置为不存在,退出,反之,将约束类型、约束的输入inputs以及约束参数等传递给下一个模块;
计算库计算模块:该模块接收到约束构造预判模块传递的约束类型,以及输入inputs和约束参数后,根据约束类型和输入inputs类型选择对应的计算方法进行计算,返回计算结果,计算结果包含图元类型,图元的核心数据;
例如:
约束类型:translate,
输入inputs(type:"Point",core:{x:0,y:0})
约束参数向量[1,0]
在计算库中根据约束类型、输入inputs类型查询计算方法,查询到方法translatePoint
返回结果({type:"Point",core:{x:1,y:0}})
图元更新模块:接收上面模块数据,比较当前元素图元类型是否与返回的图元类型type是否一致,如果一致,更新核心数据core,如果不一致,则根据新的图元类型,重新生成新的图元,并更新核心数据core,替换元素的图元。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (1)
1.一种动态几何软件中图形退化的实现方法,其特征在于,包括:
步骤S100:在动态几何软件的界面上拖动自由元素,查找自由元素驱动的依赖元素序列并将其放入更新队列;所述自由元素和依赖元素为约束类型不同的元素,所述元素包括图元和约束;
步骤S200:动态几何软件启动更新元素状态,遍历更新队列,依次更新元素,更新元素过程中根据元素的约束的输入的类型变化,动态的变化或者替换元素的图元类型,重新生成新的图元;
步骤S300:更新后的元素组成新的几何图形,完成图形退化;
所述步骤S200中的元素更新的具体方法为:
步骤A:根据元素的约束类型,判断元素的约束的输入inputs能否构造约束,若不能,则将约束对应的元素输出output的图元的核心数据core设置为不存在,退出;否则,根据构造约束的约束类型、输入inputs和约束参数在计算库中选择对应的计算方法进行计算,返回计算结果,所述计算结果包括图元类型type和图元的核心数据core,所述计算库包括动态几何中元素变换的计算方法;
步骤B:比较当前元素图元类型与返回的图元类型是否一致,如果是,更新图元的核心数据core,否则,根据新的图元类型type,重新生成新的图元并更新核心数据core,替换当前元素的图元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911046620.8A CN110795193B (zh) | 2019-10-30 | 2019-10-30 | 一种动态几何软件中图形退化的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911046620.8A CN110795193B (zh) | 2019-10-30 | 2019-10-30 | 一种动态几何软件中图形退化的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795193A CN110795193A (zh) | 2020-02-14 |
CN110795193B true CN110795193B (zh) | 2023-03-21 |
Family
ID=69442185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911046620.8A Active CN110795193B (zh) | 2019-10-30 | 2019-10-30 | 一种动态几何软件中图形退化的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795193B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112255869B (zh) * | 2020-11-03 | 2021-09-14 | 成都景中教育软件有限公司 | 一种基于参数的三维图形动态投影实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615578A (zh) * | 2015-02-10 | 2015-05-13 | 成都远策数码科技有限公司 | 基于变量及数学表达式的动态几何软件的实现方法 |
CN105190547A (zh) * | 2013-03-14 | 2015-12-23 | 微软技术许可有限责任公司 | 用于数据更新的图表的分阶段的动画化 |
CN106741021A (zh) * | 2016-12-20 | 2017-05-31 | 交控科技股份有限公司 | 一种列车图形组态及按位停车方法 |
CN109614574A (zh) * | 2018-11-23 | 2019-04-12 | 成都景中教育软件有限公司 | 一种动态几何软件中迭代的实现方法 |
CN110058917A (zh) * | 2019-04-24 | 2019-07-26 | 广州大学 | 一种动态几何协同作图的协同控制方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8686921B2 (en) * | 2008-12-31 | 2014-04-01 | Intel Corporation | Dynamic geometry management of virtual frame buffer for appendable logical displays |
-
2019
- 2019-10-30 CN CN201911046620.8A patent/CN110795193B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190547A (zh) * | 2013-03-14 | 2015-12-23 | 微软技术许可有限责任公司 | 用于数据更新的图表的分阶段的动画化 |
CN104615578A (zh) * | 2015-02-10 | 2015-05-13 | 成都远策数码科技有限公司 | 基于变量及数学表达式的动态几何软件的实现方法 |
CN106741021A (zh) * | 2016-12-20 | 2017-05-31 | 交控科技股份有限公司 | 一种列车图形组态及按位停车方法 |
CN109614574A (zh) * | 2018-11-23 | 2019-04-12 | 成都景中教育软件有限公司 | 一种动态几何软件中迭代的实现方法 |
CN110058917A (zh) * | 2019-04-24 | 2019-07-26 | 广州大学 | 一种动态几何协同作图的协同控制方法及系统 |
Non-Patent Citations (4)
Title |
---|
Diler Oner."Analyzing Coordination when Solving Geometry Problems with the Dynamic Geometry Software".2012,第199-204页. * |
刘观海."三维动态几何系统的设计与实现".2013,H127-115. * |
刘郑."面向教育的三维动态几何关键技术研究".2013,I138-41. * |
缪诣欣."动态几何教学与几何思维的培养——以高二空乘班学生为例".2015,H130-109. * |
Also Published As
Publication number | Publication date |
---|---|
CN110795193A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Roller | An approach to computer-aided parametric design | |
US5689711A (en) | Method and apparatus for representing data dependencies in software modeling systems | |
US6067093A (en) | Method and apparatus for organizing objects of a network map | |
US6243863B1 (en) | Apparatus and method for parallelizing legacy computer code | |
Chok et al. | Automatic construction of user interfaces from constraint multiset grammars | |
EP0360769A2 (en) | Method for sharing common values implicitly among communicating generative objects | |
François | An evolutionary strategy for global minimization and its Markov chain analysis | |
US20060020608A1 (en) | Cube update tool | |
CN110795193B (zh) | 一种动态几何软件中图形退化的实现方法 | |
Dale et al. | Probabilistic roadmaps-putting it all together | |
CN106096145B (zh) | 一种基于状态空间的复杂系统图形化建模与分析系统 | |
CN111722842A (zh) | 流水线编排方法、装置、电子设备和存储介质 | |
US5649081A (en) | Method and apparatus for pattern data processing | |
CN117669038A (zh) | 一种多学科优化模型构建系统及方法 | |
US20090271362A1 (en) | Method for controlling a relational database system | |
Griffiths et al. | Exploiting model-based techniques for user interfaces to databases | |
CN110069243A (zh) | 一种java程序线程优化方法 | |
Hoisl et al. | Interactive, visual 3D spatial grammars | |
CN114296711A (zh) | 一种Echarts图表生成系统及其工作方法 | |
Benjaafar | Intelligent simulation for flexible manufacturing systems: An integrated approach | |
Djukić | Evolution from Modeling by Means of Function Block Diagrams to Domain-specific Modeling in Automation | |
Cha et al. | The methodology and environment for modeling and implementation in concurrent engineering | |
CN109614574A (zh) | 一种动态几何软件中迭代的实现方法 | |
Bruno et al. | Rapid prototyping of control systems using high level Petri nets | |
JP3819313B2 (ja) | システム構築装置 |
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 |