一种基于混合现实的数学函数教育软件的制作方法

文档序号:15492322发布日期:2018-09-21 20:51阅读:199来源:国知局

本发明涉及一种ar领域的辅助教育软件,具体涉及一种基于混合现实的数学函数教育软件。



背景技术:

在硅谷科技巨头中,微软是迄今为止在ar领域中走得最远的一家公司,并提出了混合现实(mixedreality)的概念。该公司在两年以前就已经发布了hololens全息眼镜,这款硬件具有slam的能力,可以实时获得空间位置。但是目前hololens上的应用,缺少教育类的产品。



技术实现要素:

本发明的目的在于针对现有技术的缺陷和不足,提供一种基于混合现实的数学函数教育软件,它能弥补用户在使用产品过程中,弥补用户空间想象力的不同,使得混合现实(mixedreality)的概念得以实施,也可以让用户在使用全息眼镜时得到更好的体验。

为实现上述目的,一种基于混合现实的数学函数教育软件采用以下技术方案是:用户在操作面板输入一个方程,带入xy参数,点击等于号后,可以生成一张函数图。并且根据hololens对环境扫描的结果,放置在空间中最近的一块平面上;1、函数解析;2、函数成像;3、处理空间扫描;4、多种操作hologram的命令。

所述的用户输入通过语音输入,从而解放用户的手部操作。

所述函数解析的方法逻辑流程为:1、点击输入字符串表达式;2、将字符串分解成一个个数字和符号;3、将原来的中缀表达式转为后缀表达式的字符串列表;

1)、读取一个字符串;

2)、判断符号是否为数字,是的话就进入队列;

3)、判断符号是否为可代入的参数,是的话就进入队列;

4)、判断符号是否为数学函数,是的话就进入栈;

5)、判断符号是否是逗号,是的话就从栈中获取元素,直到获得左括号;

6)、判断符号是否为操作符,是的话就从栈上找最上面的一个操作符对比优先级;将操作符拿出栈,进入队列;每次迭代完,将符号放入栈中;

7)、判断符号是否为左括号,是的话就放入栈中;

8)、判断符号是否为右括号,是的话就查看栈中元素,不是左括号的出栈进入队列;最后左括号出栈;

9)、判断栈最上面是否是函数,是的话就进入队列;

10)、最后还剩操作符的话,进入队列;

4、遍历解析后缀表达式:

1).定义一个expression的栈来存放表达式的各部分;

2).读取一个字符串;

3).判断符号是否为数字,是的话就调用expression.constant,

进入栈,并且置为根节点;

4).判断符号是否为可代入的参数,是的话调用之前定义的参数expression.parameter,进入栈,并且置为根节点;

5).判断符号是否为数学函数,是的话先判断栈中的参数个数,若足够,调用函数expression.call,进入栈,并且置为根节点;

6).判断符号是否为操作符,是的话先判断栈中的参数个数,若足够,调用函数expression.add等等,进入栈,并且置为根节点;

5、对外暴露一个可调用的formula,具体如下:

所述的函数成像的方法如下:

1、对于2d公式,采用划线的方案,呈现函数;

1)、定义函数区间,插值密度;

2)、带入解析出来的formula得到最大最小值;

3)、循环遍历,从最小值到最大值乘以插值密度;

1.判断是否为有效数或在输出范围内,否则continue;

2.将x,y处以插值密度,带入formula,得到结果;

3.生成相应的ui控件;

2、对于3d公式,采用mesh模型的方案,呈现函数;

1.判断是否为有效数或在输出范围内,否则continue;

2.将x,y处以插值密度,带入formula,得到结果;

3.将得到的结果写入mesh的vertex,triangle数据;

4.将每一个vertex的模型坐标变换到正负0.5之间;

5.根据模型坐标的y值,实现色轮变化。

所述的处理空间扫描的方法如下:

1、ololens的空间扫描处理,识别环境,将蓝色立方体放在地面上;

2、若对空间处理以后没有地面,则将蓝色立方体放在空间中;

3、提供了蓝色立方体的划线动画;

4、智能布局变化;

5、根据用户的位置,智能调整控制面板位置;

6、智能调整控制面板位置。

所述多种操作hologram的命令:

1、缩放:根据用户的手势开始位置,与每一帧检测到的手位置,获得缩放的绝对量。手势结束后,生成一个记录变化前后量的命令,放入命令栈中;

2、旋转:根据用户的手势开始位置,与每一帧检测到的手位置,获得旋转的相对量,相对于上一帧的变化。这里值得注意的是,可以在用户手停止移动的时候,保持hologram的旋转。手势结束后,生成一个记录变化前后量的命令,放入命令栈中;

3、移动:根据用户的手势开始位置,与每一帧检测到的手位置,获得移动的绝对量。移动的范围限定在蓝色立方体中。手势结束后,生成一个记录变化前后量的命令,放入命令栈中;

4、撤销:从命令栈中取出一个,根据记录的数值进行回复;

5、重置:将命令栈清空,回复到初始状态。

本发明能弥补用户在使用产品过程中,弥补用户空间想象力的不同,使得混合现实(mixedreality)的概念得以实施,也可以让用户在使用全息眼镜时得到更好的体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明中函数解析用户输入界面示意图;

图2是本发明中函数成像对于2d成像生成相应的ui控件效果图;

图3是本发明中函数成像对于3成像生成相应的ui控件效果图;

图4是本发明中处理空间扫描用户界面视图;

图5是本发明中处理空间扫描初始状态视图。

具体实施方式

参看图1-图5所示,本具体实施方式采用的技术方案是:

用户在操作面板输入一个方程,带入xy参数,点击等于号后,可以生成一张函数图。并且根据hololens对环境扫描的结果,放置在空间中最近的一块平面上;1、函数解析;2、函数成像;3、处理空间扫描;4、多种操作hologram的命令。

所述的用户输入通过语音输入,从而解放用户的手部操作。

所述函数解析的方法逻辑流程为:1、点击输入字符串表达式;2、将字符串分解成一个个数字和符号;3、将原来的中缀表达式转为后缀表达式的字符串列表;

1)、读取一个字符串;

2)、判断符号是否为数字,是的话就进入队列;

3)、判断符号是否为可代入的参数,是的话就进入队列;

4)、判断符号是否为数学函数,是的话就进入栈;

5)、判断符号是否是逗号,是的话就从栈中获取元素,直到获得左括号;

6)、判断符号是否为操作符,是的话就从栈上找最上面的一个操作符对比优先级;将操作符拿出栈,进入队列;每次迭代完,将符号放入栈中;

7)、判断符号是否为左括号,是的话就放入栈中;

8)、判断符号是否为右括号,是的话就查看栈中元素,不是左括号的出栈进入队列;最后左括号出栈;

9)、判断栈最上面是否是函数,是的话就进入队列;

10)、最后还剩操作符的话,进入队列;

4、遍历解析后缀表达式:

1).定义一个expression的栈来存放表达式的各部分;

2).读取一个字符串;

3).判断符号是否为数字,是的话就调用expression.constant,

进入栈,并且置为根节点;

4).判断符号是否为可代入的参数,是的话调用之前定义的参数expression.parameter,进入栈,并且置为根节点;

5).判断符号是否为数学函数,是的话先判断栈中的参数个数,若足够,调用函数expression.call,进入栈,并且置为根节点;

6).判断符号是否为操作符,是的话先判断栈中的参数个数,若足够,调用函数expression.add等等,进入栈,并且置为根节点;

5、对外暴露一个可调用的formula,具体如下:

所述的函数成像的方法如下:

1、对于2d公式,采用划线的方案,呈现函数;

1)、定义函数区间,插值密度;

2)、带入解析出来的formula得到最大最小值;

3)、循环遍历,从最小值到最大值乘以插值密度;

1.判断是否为有效数或在输出范围内,否则continue;

2.将x,y处以插值密度,带入formula,得到结果;

3.生成相应的ui控件;

4.效果参看图2;

2、对于3d公式,采用mesh模型的方案,呈现函数;

1.判断是否为有效数或在输出范围内,否则continue;

2.将x,y处以插值密度,带入formula,得到结果;

3.将得到的结果写入mesh的vertex,triangle数据;

4.将每一个vertex的模型坐标变换到正负0.5之间;

5.根据模型坐标的y值,实现色轮变化,参看图3;

所述的处理空间扫描的方法如下:

1、olens的空间扫描处理,识别环境,将蓝色立方体放在地面上;

2、空间处理以后没有地面,则将蓝色立方体放在空间中;

3、了蓝色立方体的划线动画;

4、能布局变化;

5、用户的位置,智能调整控制面板位置;

6、调整控制面板位置。

所述多种操作hologram的命令:

1、缩放:根据用户的手势开始位置,与每一帧检测到的手位置,获得缩放的绝对量,手势结束后,生成一个记录变化前后量的命令,放入命令栈中;

2、旋转:根据用户的手势开始位置,与每一帧检测到的手位置,获得旋转的相对量,相对于上一帧的变化,这里值得注意的是,可以在用户手停止移动的时候,保持hologram的旋转。手势结束后,生成一个记录变化前后量的命令,放入命令栈中;

3、移动:根据用户的手势开始位置,与每一帧检测到的手位置,获得移动的绝对量。移动的范围限定在蓝色立方体中。手势结束后,生成一个记录变化前后量的命令,放入命令栈中;

4、撤销:从命令栈中取出一个,根据记录的数值进行回复;

5、重置:将命令栈清空,回复到初始状态,参看图5。

本发明能弥补用户在使用产品过程中,弥补用户空间想象力的不同,使得混合现实(mixedreality)的概念得以实施,也可以让用户在使用全息眼镜时得到更好的体验。

以上所述,仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其它修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1