hubo5563 发表于 2014-3-23 17:19:13

百慕大截角菱形十二面体魔方仿真时的问题

本帖最后由 hubo5563 于 2014-3-23 17:49 编辑

   

        通过近一周的努力,终于建立了百慕大截角菱形十二面体魔方的3维模型,并且也能够转动了,能够执行序列。
   
     该模型可以构造任意编码的百慕大截角菱形十二面体魔方,面上有菱形、五边形、和梯形中块。

     






     但是有一个问题,就是该模型转动不是精确模型,其他块没问题,主要是角块的旋转误差积累,如果转动多次,就能看出来。

     下面是没转动之前的:



执行同样转动60次,按说应该复原了,但位置是复原了,角块由于误差积累,引起自转一个角度:



执行120次该公式:



执行180次该公式:




执行240次该公式:




执行300次该公式:



执行360次该公式:



执行420次该公式:



执行480次该公式:



执行540次该公式:



执行600次该公式:



最后好像是复原了,其实误差还是有的。


        怎样解决这个问题,可能需要每转动一次,都要实时调整角块的角度,怎样调整?需要理论支持,请大家帮帮忙,解决一下这个问题。


         开始我并不知道这个问题,做好仿真软件后,就试着转了转,发现打乱的魔方角块有的翘起来了,就随便转了一下,让其做重复操作,不试不知道,一试吓一跳,出现了以上情况。



            什么时候调整,每次调多大角度,调整方向正负,需要理论上的计算,怎么计算,现在还没想出来。

          这个魔方的实物魔方是不会出现这个问题的,每次能够自适应。





hubo5563 发表于 2014-3-23 20:03:00


      不只是菱形中心块转动多了以后,误差积累可以使角块转动,五边形中心块多次转动后,也可以误差积累能转动角块。
    如下魔方,紧挨着的3个五边形中块面,按说和五魔方无什么差别,我们知道(U;R;)63次就可以复原,但是
用到这个魔方上,效果如下图:




         颜色复原了,各个角块转动了,仔细观察,每个块转动的角度不同,红蓝白角块转动的角度最大。




继续转:











由此可见,每个块调整起来还很不好掌握呢。


hubo5563 发表于 2014-3-23 20:31:21

本帖最后由 hubo5563 于 2014-3-23 20:36 编辑

      不只是魔方的角块,棱块也可由误差积累而自己旋转。

例如,依次转动三个面一次,看起来不显,多次转动情况就不同了,请看:















角块、棱块都在自己转动。



ggglgq 发表于 2014-3-25 08:22:41

  
  
  
    不知用“近似计算”可否解决此问题?每转动一次后,都对转动层的每个块进行“停靠容错”
  
的“评估”。 可能巧妙地运用如“取整函数”等技巧应该可以解决这种“近似计算”问题。
  
  
  

ggglgq 发表于 2014-3-25 08:23:06

  
  
    这仅仅是用“近似计算”来模拟魔方中“容错”的设想,还需要结合实践不断测试优化才行。
  
    
  

hubo5563 发表于 2014-3-25 08:42:55

本帖最后由 hubo5563 于 2014-3-25 08:53 编辑

ggglgq 发表于 2014-3-25 08:22 static/image/common/back.gif
  
  
  


        这不是近似计算上的误差,实际上是模型本身上的差异造成的,转动角度是72度,平行面的切割应该是70.53度,相差1.47度,转动时有的步骤+1.47度有的步骤-1.47度,实际转动过程中很多都能相互抵消,所以,不是专做某一个公式,角度差的不是很多,不过转动步数多了之后,各个块转动的状态明显不同,有的转动大一些,有的转动小一些,看起来就很不舒服。转动角度差1.47度,每次引起角块转动的不是1.47度,这个我还没有计算出来,可能更小一些。

     我现在想转动一次,转动的块都重新装配一下,就能消除误差积累的影响。需要构造一个编码模型,记录魔方各个块的位置和方向,每次转动时,除了对魔方几何体做转动操作外,还要对编码状态进行修改。最后不以几何转动状态为准,而是以编码状态为准,按照编码状态重新计算各个转动块的装配位置,这样最后就不会发生混乱的状态了,正在编这样的程序。

grigr 发表于 2014-3-25 14:31:20

please add to your simulator - Jumblix and our variations


Fenz 发表于 2014-3-25 16:37:59

grigr 发表于 2014-3-25 14:31 static/image/common/back.gif
please add to your simulator - Jumblix and our variations

That's two different puzzles.
This simulator has same shape with Crazy Comet but not Jumblix.
And same shape not means same puzzle.

Fenz 发表于 2014-3-25 16:50:11

胡老师的程序应该是通过始位置/朝向和转动过程来计算块的终位置/朝向。是个连续的李群。
我的想法是换成离散群。
把块可能的位置和朝向列出来作为一些离散的状态,转动时就是由一个状态跳到另一个状态,这样就可以保证准确性。
当然为了效果还是要保留动画,只在动画完成时追加一个过程,跳到准确的位置上。

hubo5563 发表于 2014-4-4 21:00:49

Fenz 发表于 2014-3-25 16:50 static/image/common/back.gif
胡老师的程序应该是通过始位置/朝向和转动过程来计算块的终位置/朝向。是个连续的李群。
我的想法是换成离 ...

最后还是采用了你的想法,用离散群做目标,每转动一次,调整一次。
页: [1]
查看完整版本: 百慕大截角菱形十二面体魔方仿真时的问题