买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种三阶魔方虚拟方法和虚拟系统_合肥学院_201710212484.X 

申请/专利权人:合肥学院

申请日:2017-04-01

公开(公告)日:2024-04-05

公开(公告)号:CN106874631B

主分类号:G06F30/20

分类号:G06F30/20;G06F30/10;G06F3/0346

优先权:

专利状态码:有效-授权

法律状态:2024.04.05#授权;2017.07.14#实质审查的生效;2017.06.20#公开

摘要:本发明公开了一种三阶魔方虚拟方法和虚拟系统,能够用于解魔方仿真教学及训练,该虚拟方法包括:建立三阶魔方模型,其中,将三阶魔方模型配置为按照3*3*3方式堆积的27个立方体,并令三阶魔方模型中的这九个旋转对象接收外部旋转指令;利用动作采集单元向所述三阶魔方模型提供所述九个旋转对象的旋转指令;以及使三阶魔方模型在接收所述旋转指令后对所述旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示。本发明能够根据真实魔方颜色进行初始配置,魔方的旋转操作指令精简,满足随意打乱魔方的要求,而且能够计时和判断魔方复原是否结束。

主权项:1.一种三阶魔方虚拟方法,其特征在于,包括以下步骤:建立三阶魔方模型并且按照选定的视角在显示界面上显示,其中,将三阶魔方模型配置为按照3*3*3方式堆积的27个立方体,将暴露在外的立方体表面按照真实魔方颜色进行配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;利用动作采集单元向所述三阶魔方模型提供所述九个旋转对象的旋转指令;以及使三阶魔方模型在接收所述旋转指令后对相应的旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示,所述动作采集单元包括三个六轴陀螺仪和信号处理模块,其中,所述六轴陀螺仪用于将自身的翻转动作转为检测信号,所述信号处理模块用于对所述三个六轴陀螺仪的检测信号进行采集并且将所述检测信号转为旋转指令,其中,每个所述六轴陀螺仪提供三个旋转对象的旋转指令,所述三个六轴陀螺仪中的第一六轴陀螺仪提供三阶魔方模型中的顶层、左面和绕Y轴这三个旋转对象的旋转指令,所述三个六轴陀螺仪中的第二六轴陀螺仪提供三阶魔方模型中的中间层xoy、中间层yoz和前面这三个旋转对象的旋转指令,所述三个六轴陀螺仪中的第三六轴陀螺仪提供三阶魔方模型中的底面、左面和绕X轴这三个旋转对象的旋转指令。

全文数据:一种三阶魔方虛拟方法和虚拟系统技术领域[0001]本发明涉及一种三阶魔方虚拟方法和虚拟系统。背景技术[0002]魔方,也称鲁比克方块,是一种娱乐玩具,由厄尔诺•鲁比克ErnoRubik教授发明魔方,作为一种帮助学生增强空间思维能力的教学工具。魔方复原指魔方从非原始状态到原始状态的过程,是一个集观察、动手和想象于一体的过程,可以很好地培养人的动手、动脑能力、训练记忆力、空间想象力和判断力。[0003]很多青少年在刚接触魔方的时候,被其设计的精巧和趣味性所吸引,魔方变化数非常庞大,例如三阶魔方的变化数为:43,252,003,274,489,856,000,但也被总结出很多还原方法,包括层先法、角先法、桥式方法、CF0P法、棱先法等等。[0004]传统学习解魔方的方法都比较晦涩难懂,对初学者来说不太容易理解,光靠文字描述很难说清楚,口口相传费时费力。快速复原魔方是很多魔方爱好者的理想,然而,实体魔方在复原过程中手速快速、随机性,重复再现难,观摩学习困难。[0005]中国专利文献CN103394191A公开了一种电子三阶魔方比赛系统,包括数据采集模块、无线通信模块、数据处理模块、和虚拟魔方演示模块,可使观众清楚地观看选手还原魔方的的步骤,提高了比赛的观赏性。[0006]在上述电子魔方中,数据采集模块集成于真实魔方内部,用于采集真实魔方的体位变化和旋转的数据,通过数据处理模块转化为虚拟魔方的控制信号,并在虚拟魔方演示模块上实现虚拟魔方的同步控制,进而能够复原魔方操作步骤。然而上述虚拟魔方在每次玩魔方复原游戏时,魔方需要事先打乱,由于虚拟魔方和真实魔方是一一对应的,按照预定的颜色配置来打乱魔方需要花费大量精力,给魔方复原游戏的教学带来障碍。[0007]因此,有必要对现有的虚拟魔方进行改进。发明内容[0008]本发明的目的在于提供一种三阶魔方虚拟方法,以方便对虚拟魔方的颜色进行初始配置。[0009]本发明的目的还在于提供一种三阶魔方虚拟系统,以方便对虚拟魔方的颜色进行初始配置。[0010]为此,本发明一方面提供了一种三阶魔方虚拟方法,包括以下步骤:建立三阶魔方模型并且按照选定的视角在显示界面上显示,其中,将三阶魔方模型配置为按照3*3*3方式堆积的2"7个立方体,将暴露在外的立方体表面按照真实魔方颜色进行配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;利用动作采集单元向所述三阶魔方模型提供所述九个旋转对象的旋转指令;以及使三阶魔方模型在接收所述旋转指令后对所述旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示。[0011]进一步地,上述动作采集单元包括三个六轴陀螺仪和信号处理模块,其中,所述六轴陀螺仪用于将自身的翻转动作转为检测信号,所述信号处理模块用于对所述三个六轴陀螺仪的检测信号进行采集并且将所述检测信号转为旋转指令,其中,每个所述六轴陀螺仪提供三个旋转对象的旋转指令。[0012]进一步地,上述三个六轴陀螺仪中的第一六轴陀螺仪提供三阶魔方模型中的顶层、左面和绕Y轴这三个旋转对象的旋转指令,所述三个六轴陀螺伩中的第二六轴陀螺仪提供三阶魔方模型中的中间层X〇y、中间层yoz和前面这三个旋转对象的旋转指令,所述三个六轴陀螺仪中的第三六轴陀螺仪提供三阶魔方模型中的底面、左面和绕X轴这三个旋转对象的旋转指令。[0013]进一步地,上述旋转对象的旋转指令以顺时针旋转90°为一个单位。[0014]进一步地,将所述三阶魔方模型的未暴露在外的小立方体表面填充黑色。[0015]进一步地,上述在接收三个六轴陀螺仪向三阶魔方模型提供的旋转指令之前,对三阶魔方模型的表面颜色进行初始配置。[0016]根据本发明的另一方面,提供了一种三阶魔方虚拟系统,包括:建模处理单元,用于建立三阶魔方模型,其中,三阶魔方模型配置为按照3*3*3方式堆积的27个小立方体,将暴露在外的小立方体表面按照真实魔方颜色配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;显示单元,用于按照选定的视角显示所建立的三阶魔方模型;以及动作采集单元,用于向所述三阶魔方模型提供所述九个旋转对象的旋转指令,其中,所述建模处理单元用于根据接收到的旋转指令对相应的旋转对象及其表面颜色进行旋转,并且在所述显示单元上实时显[0017]进一步地,上述动作采集单元包括三个六轴陀螺仪和信号处理模块,其中,所述六轴陀螺仪用于将自身的翻转动作转为检测信号,所述信号处理模块用于对所述三个六轴陀螺仪的检测信号进行采集并且将所述检测信号转为旋转指令,其中,每个所述六轴陀螺仪提供三个旋转对象的旋转指令。[0018]进一步地,上述六轴陀螺仪为MPU-6000传感器。[0019]进一步地,上述信号处理模块为ArduinoUNO板,用于对三个MPU-6000传感器进行片选并且将片选后的MPU-6000的检测信号转化为相应旋转对象的旋转指令。[0020]根据本发明的三阶魔方虚拟方法,三阶魔方模型构造成仅需要九个旋转指令即可实现魔方复原操作,使得三阶虚拟魔方颜色的初始配置无需依赖对真实魔方的动作检测,满足随意打乱魔方的要求。[0021]除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。附图说明_[0022]构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:[0023]图1是根据本发明一实施例的三阶魔方虚拟方法的流程图;[0024]图2是根据本发明另一实施例的三阶魔方虚拟方法的流程图;[0025]图3是根据本发明一实施例的三阶魔方虚拟系统的结构框图;[0026]图4是根据本发明的三阶魔方模型的不意图;[0027]图5是根据本发明的三阶魔方模型的六个表面的标记图;[0028]图6是根据本发明的三阶魔方模型的三维坐标图;[0029]图7是根据本发明一实施例的三阶魔方虚拟系统中动作采集单元的结构示意图;[0030]图8是根据本发明的动作采集单元中的一个六轴陀螺仪执行的三个旋转指令的示[003li图9是根据本发明的动作采集单元的动作指令的采集流程图;[0032]图1〇是根据本发明一实施例的三阶魔方虚拟系统的魔方颜色配置单元的结构示意图;[0033]图11是根据本发明的三阶魔方模型的各表面的颜色配置顺序图;[0034]图12是根据本发明一实施例的三阶魔方虚拟系统的工作流程图;[0035]图13示出了根据本发明的三阶虚拟魔方游戏界面,其魔方游戏处于开始状态;[0036]图14示出了根据本发明的三阶虚拟魔方游戏界面,其中魔方处于打乱状态;[0037]图15示出了根据本发明的三阶虚拟魔方游戏界面,其中魔方处于复原操作状态;以及[0038]图16示出了根据本发明的三阶虚拟魔方游戏界面,其中魔方游戏处于结束状态。具体实施方式[0039]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。[0040]图1至图16示出了根据本发明的一些实施例。[0041]在一实施例中,如图1所示,三阶魔方虚拟方法包括以下步骤:[0042]S11、建立三阶魔方模型并且按照选定的视角在显示界面上显示,其中,将三阶魔方模型配置为按照3*3*3方式堆积的27个立方体,将暴露在外的立方体表面按照真实魔方颜色进行配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层x〇y、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;[0043]S13、利用动作采集单元向所述三阶魔方模型提供所述九个旋转对象的旋转指令;以及[0044]S15、使三阶魔方模型在接收所述旋转指令后对所述旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示。[0045]根据本发明的三阶魔方虚拟方法,三阶魔方模型构造成仅需要九个旋转指令即可实现魔方复原操作,使得三阶虚拟魔方颜色的初始配置无需依赖对真实魔方的动作检测,满足随意打乱魔方的要求。[0046]在一实施例中,如图2所示,三阶魔方虚拟方法包括如下步骤:[0047]S11、建立三阶魔方模型并且按照选定的视角在显示界面上显示,其中,将三阶魔方模型配置为按照3*3*3方式堆积的27个立方体,将暴露在外的立方体表面按照真实魔方颜色进行配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;[0048]S12、对三阶魔方模型的表面颜色进行初始配置,即按照要求打乱。[0049]S13、利用动作采集单元向所述三阶魔方模型提供所述九个旋转对象的旋转指令;以及[0050]S15、使三阶魔方模型在接收所述旋转指令后对所述旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示。[0051]根据本发明的三阶魔方虚拟方法,三阶魔方模型构造成仅需要九个旋转指令即可实现魔方复原操作,使得三阶虚拟魔方颜色的初始配置无需依赖对真实魔方的动作检测,满足随意打乱魔方的要求,通过在游戏开始前设置三阶魔方模型的表面颜色的初始配置,满足魔方复原游戏的要求,提高打乱设置的效率。[0052]在一实施例中,如图3所示,三阶魔方虚拟系统包括建模处理单元30,用于建立三阶魔方模型,其中,三阶魔方模型配置为按照3*3*3方式堆积的27个小立方体,将暴露在外的小立方体表面按照真实魔方颜色配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;显示单元40,用于按照选定的视角显示所建立的三阶魔方模型;以及动作采集单元,包括动作采集传感器10和信号处理模块20,用于向所述三阶魔方模型提供所述九个旋转对象的旋转指令,其中,所述建模处理单元30用于根据接收到的旋转指令对相应的旋转对象及其表面颜色进行旋转,并且在所述显示单元上实时显示。[0053]下面对三阶魔方的设计实例加以说明。[0054]1、三阶魔方模型设计[0055]它是三阶魔方虚拟方法中的关键技术问题之一。虽然三阶魔方整体上是一个立方体,但是由于各个面都要能够转动,因此,实际上魔方可以看作是由27个小立方体按照3*3*3的规格堆砌起来的。其中,最中间的小立方体的六个面没有颜色,将堆砌形成的大立方体的前面填充红色,后面填充橘色,左面填充白色,右面填充黄色,顶面填充蓝色,底面填充绿色,小立方体其余没有填充颜色的面可以全都填充黑色,最中心的无色小立方体也可以一同填充上黑色。据此建立的有颜色三阶魔方模型如图4所示。[0056]如图4和图5所不,三阶魔方能够旋转顶层up、底层down、左边的一层(left、右边的一层right、前面的一层front、后面的一层back,用英文大写字母表示就是U、〇丄、1?、13。除此之外只旋转一层的话我们还可以旋转魔方中间层,若以魔方的中心为原点〇,建立oxyz三维坐标系的话,旋转的中间层有xoy面所在层、yoz面所在层、xoz面所在层三种,此外,在魔方游戏中,还需要魔方整体旋转。[0057]上述三阶魔方模型的旋转方向过多,成为魔方虚拟化的一个难题,本发明将魔方的旋转对象限定为9个,进而大幅简化了魔方虚拟化的技术难度。虽然魔方可以顺时针旋转,逆时针旋转,为简明起见,对三阶魔方模型的旋转操作进行如下限定:[0058]1每次单层旋转以顺时针90度为一个单位,如果要进行逆时针旋转,则可以通过顺时针旋转270度来实现。[°059]2在旋转魔方的表面时,需要旋转的五个面分别是顶层up、底层down、左边的一层(left、右边的一层right、前面的一层front,用英文大写字母表示就是U、D、L、R、F。对于旋转后面⑻就可以使用整体绕7轴顺时针旋转180度,这样将后面旋转到了前面然后这时候在使用前面F层的单层旋转,就可以完成B的旋转了。[0060]3两层两层旋转可以用单层旋转来实现,比如先转一个表面层,再转一个中间层,二个中间层只需要其中两个面向目U方组成十字的两个分别为xoz层和y〇z层,对于xoy层的旋转只需整体绕y轴逆时针旋转9〇度,然后再进行yoz中间层的旋转就可以实现了。中间层的旋转被用在两层一起旋转的情况时,配合六个表面来使用。[0061]4三层的旋转就是魔方三阶魔方)的整体旋转了,要想观察到魔方的六个面的颜色块分布状况,只需要两种旋转方式:整体绕y轴向左逆时针的旋转和整体绕x轴向后顺时针的旋转。[0062]如此,仅需要顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象的旋转指令即可实现魔方的复原操作。[0063]本发明采用三个动作采集传感器实现三阶魔方的9个独立旋转动作的采集,该旋转动作采集传感器优选为MPU_6〇00六轴陀螺仪,每个六轴陀螺仪采集三个旋转动作,结合参照图7和图8,三个动作采集传感器分别采集的旋转动作如下:[0064]1#陀螺仪控制魔方的U顶层)、L左面、Y整体绕y轴向左逆时针旋转旋转。[0065]2#陀螺仪控制魔方的两个中间层xoz和yoz的旋转,还有一个F前面的旋转。[0066]3#陀螺仪控制魔方的D底层、R右面、X整体绕x轴向后顺时针旋转旋转。[0067]—个动作采集模块每被旋转一次都是以顺时针90度为单位,这样使用三个MPU-6〇〇〇动作采集模块即可实现三阶魔方的所有旋转方式。[0068]三个六轴陀螺仪与信号处理模块信号连接,用于将三个六轴陀螺仪的采集信号转化为旋转指令。在一实施例中,信号处理模块为ArduinoUNO开发板。游戏设计中动作采集模块使用了I2C总线,ArduinoUNO板通过片选的方式读取三个相同的动作采集模块的数据。[0069]对于MPU-eooo模块来说,要读取它的数据时,只需将它的AD0引脚的电压拉低即可。本发明中的游戏设计中如果需要读取三个动作采集模块其中一个的数据时,只需将其的AD0引脚的电压拉低,同时把另外两个MPU-eooo模块的AD0引脚电压拉高,这样Arduino板就可以读取其中任意一个动作采集模块采集的数据了。对于拉低拉高MPU-6000传感器模块的AD0引脚电压问题,本发明的设计中使用ArduinoUNO板的数字信号IO接口与传感器模块的AD0引脚相连接,直接用ArduinoUNO模块来控制三个动作采集模块的片选问题。[0070]ArduinoUNO与六轴陀螺仪模块电路连接在图3中示出,将三个六轴陀螺仪MPU-6〇00的SCL串行时钟线接口SDA串行数据线接口与Arduino板块的两个模拟信号输入接口ANALOGINA4、A5相连接,六轴陀螺仪采集到人的旋转动作数据后,通过I2C总线中的串行时钟线SCL和串行数据线SDA传送给Arduino板块,Arduino板块将数据按照一定算法处理后,通过串口通信传给上位机。[0071]在实际连接电路时,由于ArduinoUNO的VCC接、GND接口、A5接口和A4接口无法同时连接三个传感器的对应接口,在本发明中,借助于Arduino的扩展板实现电路的连接。[0072]如图9所示,动作采集单元的动作指令的采集流程顺次如下:1、初始化三个MPU-6〇〇〇片选接口为输出引脚;2、设置波特率;3、初始化12C总线;4、片选第一个MPU-6000芯片,读取其数据;5、片选第二个MPU-6000芯片,读取其数据;6、片选第三个MPU-6000芯片,读取其数据;7、将三组数据进行处理;8、结合前一次记录的三组数据进行动作判断;9、将采集动作指令序号上传至上位机。[0073]其中一个传感器的数据处理代码片段如下:[0074]bx=bx16384+1;加1可以避免负号出现。[0075]by=by16384+l;[0076]bz=bz16384+l;记录下当前xyz三个方向的值。[0077]ifbx==0{bl=0;}将当前2号传感器的x方向值记录下来。[0078]ifbx==2{bl=2;}[0079]ifbx==l{[0080]ifbl==0{Serial.write⑹;}如果传感器2号的x方向值变为0,则想上位机上传指令“6”,代表魔方前面顺时针旋转90度。[0081]ifbl==2{Serial.write4;}}若是变为2则想上位机上传指令“4”,表示xoz层顺时针旋转90度。[0082]以上代码实现了数据的处理,三个MPU-6000动作采集模块一共要给上位机发送九个数字,这九个数字分别代表一种有效的旋转动作。第一个MPU-6000传感器模块连接ArduinoUNO的2号IO接口,它用于采集三个动作信号,发给上位机三个数字指令,分别为“1”、“2”、“3”。第二个MPU-6000传感器模块连接ArduinoUNO的4号IO接口,它用于采集三个动作信号,发给上位机三个数字指令,分别为“4”、“5”、“6”。第三个MPU-6000传感器模块连接ArduinoUNO的7号IO接口,它用于采集三个动作信号,发给上位机三个数字指令,分别为“7”、“8”、“9”。所有旋转动作的初始状态都是MPU-6000传感器模块面朝上放置。[0083]“1”表示Up,即将虚拟魔方图像的顶层顺时针旋转90度,它对应采集的旋转动作是将第一个传感器模块绕x轴顺时针向后旋转90度并还原到初始状态如图8所示。[0084]“2”表示Left,即将虚拟魔方图像的左面顺时针旋转90度,它对应采集的旋转动作是将第一个传感器模块绕x轴逆时向前旋转90度并还原到初始状态。[0085]“3”表示Y,即将整个虚拟魔方图像整体向左逆时针旋转90度,它的作用是便于玩家观察魔方各个面的颜色分布状态,对应采集的旋转动作是将第一个传感器模块绕z轴逆时针向左旋转90度并还原到初始状态。[0086]“4”表示xoz,即将虚拟魔方图像的前面的横向中间层xoz层顺时针旋转90度,它对应采集的旋转动作是将第二个传感器模块绕x轴逆时针向前旋转90度并还原到初始状0[0087]“5”表示yoz,即将虚拟魔方图像的前面的纵向中间层yoz层顺时针旋转90度,它对应采集的旋转动作是将第二个传感器模块绕x轴顺时针向后旋转90度并还原到初始状0[0088]“6”表示Front,即将虚拟魔方图像的前面顺时针旋转90度,它对应采集的旋转动作是将第二个传感器模块绕2轴顺时针向右旋转90度并还原到初始状态。[0089]“7”表示Down,即将虚拟魔方图像的底层顺时针旋转90度,它对应采集的旋转动作是将第三个传感器模块绕z轴逆时针向左旋转90度并还原到初始状态。[0090]“8”表示Right,即将虚拟魔方图像的右面顺时针旋转90度,它对应采集的旋转动作是将第三个传感器模块绕x轴顺时针向后旋转90度并还原到初始状态。[0091]“9”表示X,即将整个虚拟魔方图像整体向后顺时针旋转90度,它的作用同Y—样是便于玩家观察魔方各个面的颜色分布状态,对应采集的旋转动作是将第一个传感器模块绕Z轴顺时针向右旋转90度并还原到初始状态。[0092]优选地,利用Processing语言(计算机语言)来设计三维立体魔方,因为Processing语言绘图时,有自身的oxyz三维坐标系,自带建立三维点的p〇int函数可以直接调用并设定其坐标,米用processing语言设计较方便。下面以Processing语言为例对三阶魔方模型的设计加以说明。[0093]基于以上模型分析,首先设计小立方体。本设计中将小立方设计成为一个Cube类,这个类中包含小立方体的位置position。虽然每个小立方体只有8个点坐标,但是由于绘制小立方体的时候,以面为单位,绘制一个面需要四个点坐标,所以绘制6个面需要有24个三维点坐标的值,Cube类中将这24个三维点坐标值存放在一个长度为24的PVector型一维数组vertices中。还有七种颜色红、黄、橙、白、绿、蓝、黑,他们存放在长度为7的color型一维数组faceColor中,用于建立小立方体时,给它们的各个面上色。还有长度1,它代表小立方体的边长。六个面的坐标要在Cube类里面进行初始化,它们分别代表着前面、左面、右面、后面、顶面和底面,通过边长来设定他们的坐标,以小立方体的中心点为坐标原点。结合参照图6,下面是Cube类的定义:[0094]classCube{[0095]PVectorposition;三维量position用于存放小立方体的中心位置坐标。[0096]PVector[]vertices=newPVector[24];用于存放对应6个面的24个点坐标,虽然坐标会有重复,但是方便了drawCube函数中小立方体面的绘制。[0097]color[]faceColor=newcolor⑺;存放7种颜色红、黄、橙、白、绿、黑。[0098]float1;小立方体的边长1。[00"]在Cube类中设计drawCube函数用于小立方体的绘制。这个函数有六个整型参数fc、lc、rc、bac、tc、boc,它们分别表不前、左、右、后、顶、底各个面的颜色序号,序号的值将对应faceColor数组中的下标。在for循环中,一次绘制各个面的四个点,每绘制一个面时,都会根据参数中的序号进行上色。drawCube函数代码设计如下:[0100]voiddrawCubeintfc,intlc,intrc,intbac,inttc,intboc{绘制小立方体。[0101]forinti=0;i下-左-右-前-后。每一面的输入顺序为:上面:先沿Y增大的方向,再沿着X增大的方向进行输入;下面:先沿Y增大的方向,再沿着X减小的方向进行输入;左面:先沿Z增大的方向,再沿着X增大的方向进行输入;右面:先沿Z减小的方向,再沿着X增大的方向进行输入;前面:先沿Y增大的方向,再沿着Z减小的方向进行输入;后面:先沿Y增大的方向,再沿着Z增大的方向进行输入。每一面的输入顺序为将该面朝上,从最左上角开始,一行一行输入。[0148]在其它实施例中,初始颜色配置可以从设定好的若干颜色配置模板中选择。[0149]在一实施例中,如图I2所示,三阶魔方虚拟系统的工作流程依次如下:1、开始界面,如图13所示,提供选定视角的三阶魔方模型;2、对界面上的三阶魔方模型进行打乱,打乱后的魔方如图14所示;3、接下来让玩家确定是否开始游戏,例如提供“Play”按钮供玩家确定;4、接收串口动作指令;5、执行对应旋转动作,执行后的结果如图15所示;6、接下来让玩家确定是否需要查看步骤提示,例如提供“提示”按钮,当玩家查看步骤提示后转入下一步或者不查看步骤提示直接转入下一步;7、判断是否复原魔方,若没有,转入步骤4,继续接受串口动作指令,若复原,进入下一步;8、提供游戏完成界面,如图16所示,统计游戏结果,转入下一步骤:9、是否再来一局,若是返回开始界面,若否,结束游戏。’[0150]根据本发明的三阶虚拟魔方系统,能够应用三阶的解魔方仿真教学及训练,该系统包括对三阶魔方进行数字图像采集、对魔方进行软件建模、显示解魔方的步骤及演示图像。首先,通过颜色传感器将实体魔方的颜色等信息录入到软件系统中,接着通过将三阶魔方视为3*3*3方式堆积的27个立方体,在系统中进行软件建模,根据采集到的信息,给出解魔方的具体步骤的提示信息,并相应的改变软件系统中的魔方的演示状态,达到分步骤教学的目的。使用者可以跟随提示信息,操作手中的魔方,并与系统中的魔方进行对照。亦可通过动作采集器控制每一个面的旋转,直接操控软件中的魔方模型。[0151]动作采集器的使用方法具体描述如下:令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令。这九个旋转动作指令分别对应的是N〇l、N〇2和N〇3加速度传感器的三个方向的变化,既从水平变化到向左侧翻转90度、从水平变化到向前翻转90度和从水平变化到向后翻转90度。这九个面接收外部旋转指令;利用动作采集单元向所述三阶魔方模型提供所述九个面的旋转指令;以及使三阶魔方模型在接收所述旋转指令后对所述旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示。在本发明中,三阶魔方模型构造成仅需要九个旋转指令即可实现魔方复原操作,满足随意打乱魔方的要求。[0152]训练功能:当要测试其学习成果时,可以使用该系统进行竞赛。该系统包含随意打乱功能、接收动作采集器的命令来控制三阶魔方模型的功能、计时功能和判断是否结束功能。[0153]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种三阶魔方虚拟方法,其特征在于,包括以下步骤:建立三阶魔方模型并且按照选定的视角在显示界面上显示,其中,将三阶魔方模型配置为按照3*3*3方式堆积的27个立方体,将暴露在外的立方体表面按照真实魔方颜色进行配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;利用动作采集单元向所述三阶魔方模型提供所述九个旋转对象的旋转指令;以及使三阶魔方模型在接收所述旋转指令后对相应的旋转对象及其表面颜色进行整体旋转,并且在所述显示界面上实时显示。2.根据权利要求1所述的三阶魔方虚拟方法,其特征在于,所述动作采集单元包括三个六轴陀螺仪和信号处理模块,其中,所述六轴陀螺仪用于将自身的翻转动作转为检测信号,所述信号处理模块用于对所述三个六轴陀螺仪的检测信号进行采集并且将所述检测信号转为旋转指令,其中,每个所述六轴陀螺仪提供三个旋转对象的旋转指令。3.根据权利要求2所述的三阶魔方虚拟方法,其特征在于,所述三个六轴陀螺仪中的第一六轴陀螺仪提供三阶魔方模型中的顶层、左面和绕Y轴这三个旋转对象的旋转指令,所述三个六轴陀螺仪中的第二六轴陀螺仪提供三阶魔方模型中的中间层xoy、中间层yoz和前面这三个旋转对象的旋转指令,所述三个六轴陀螺仪中的第三六轴陀螺仪提供三阶魔方模型中的底面、左面和绕X轴这三个旋转对象的旋转指令。4.根据权利要求3所述的三阶魔方虚拟方法,其特征在于,所述旋转对象的旋转指令以顺时针旋转90°为一个单位。5.根据权利要求1所述的三阶魔方虚拟方法,其特征在于,将所述三阶魔方模型的未暴露在外的小立方体表面填充黑色。6.根据权利要求1所述的三阶魔方虚拟方法,其特征在于,在接收三个六轴陀螺仪向三阶魔方模型提供的旋转指令之前,对三阶魔方模型的表面颜色进行初始配置。7.—种三阶魔方虚拟系统,其特征在于,包括:建模处理单元,用于建立三阶魔方模型,其中,三阶魔方模型配置为按照3*3*3方式堆积的27个小立方体,将暴露在外的小立方体表面按照真实魔方颜色配置,并令三阶魔方模型中的顶层、左面、绕Y轴、中间层xoy、中间层yoz、前面、底层、右面和绕X轴这九个旋转对象接收外部旋转指令;显示单元,用于按照选定的视角显示所建立的三阶魔方模型;以及动作采集单元,用于向所述三阶魔方模型提供所述九个旋转对象的旋转指令,其中,所述建模处理单元用于根据接收到的旋转指令对相应的旋转对象及其表面颜色进行旋转,并且在所述显示单元上实时显示。8.根据权利要求7所述的三阶魔方虚拟系统,其特征在于,所述动作采集单元包括三个六轴陀螺仪和信号处理模块,其中,所述六轴陀螺仪用于将自身的翻转动作转为检测信号,所述信号处理模块用于对所述三个六轴陀螺仪的检测信号进行采集并且将所述检测信号转为旋转指令,其中,每个所述六轴陀螺仪提供三个旋转对象的旋转指令。9.根据权利要求8所述的三阶魔方虚拟系统,其特征在于,所述六轴陀螺仪为MPU-6000传感器。10.根据权利要求9所述的三阶魔方虚拟系统,其特征在于,所述信号处理模块为ArduinoUNO板,用于对三个MPU-6000传感器进行片选并且将片选后的MPU-6000的检测信号转化为相应旋转对象的旋转指令。

百度查询: 合肥学院 一种三阶魔方虚拟方法和虚拟系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。