魔方吧·中文魔方俱乐部

标题: 球面切割魔方Java助手说明书 [打印本页]

作者: hubo5563    时间: 2024-4-14 08:42:33     标题: 球面切割魔方Java助手说明书

本帖最后由 hubo5563 于 2024-7-5 19:44 编辑

          球面切割魔方Java助手说明书

这里是球面切割魔方Java助手特殊部分说明。
Java助手基本部分说明,可看
胡波系列java助手使用说明(2011年10月14日修改)
http://bbs.mf8-china.com/forum.p ... 36&fromuid=4618

基本部分包括:
1、设置魔方种类,和颜色
2、设置魔方初始状态
3、编辑自定义公式
4、编排转动序列
5、输出代码
6、在论坛里发带有java动画图的帖子
7、在自己网页中插入java动画
8、JAVA 演示动画的制作方法
9、在线定义公式
10、在线公式的使用:
11、破解魔方时采用“自动Reverse”
这些需要在下面这个贴子中查看,本贴只列出新增功能和不同操作的说明。

胡波系列java助手使用说明


新增部分说明

内容概述
一楼:Java助手界面说明
二楼:五种显示方式
三楼:外形与切割的独立性
四楼:空间对称群的种类和软件的转动轴的分类
五楼:切割参数的详细说明
六楼:外形参数的相细说明
七楼:一般切割的魔方设计
八楼:魔中魔魔方的设计
九楼:华丽魔方的设计和太阳花魔方的设计
十楼:Bram魔方的设计和二轴正方体正十二面体魔方设计
十一楼:自定切割序列说明
十二楼:自定面修饰说明
十三楼:编排转动序列
十四楼:其它参数说明
十五楼:106种预定切割的实际参数
十六楼:63种预定魔方外形的实际数据
十七楼:特殊魔方的设计实例


Java助手界面说明

          球面切割魔方Java助手是我经历了3年才推出的魔方辅助破解和设计的软件。它不同与过去的魔方Java助手。过去的Java助手都是针对一类魔方设计的,这个是用户可以定义魔方外形,用户可以定义转动切割轴,用户可以定义用来切割魔方面的属性,定义转动轴的属性,用户可以定义切割方式。用它可以设计魔方外形,可以设计不同切割的虚拟魔方。
      可以从魔方吧任意状态下网页的最顶部的菜单栏里的工具栏的最后一项《球面切割魔方Java助手》菜单进入,也可以从倒数第三项菜单,《胡波系列Java助手》的第一个进入。进入后界面如下:
      界面如下:

图0001.PNG
  1:主显示区  显示魔方动画,显示魔方未切割块,显示输出代码等
      2:预定切割   预定的106种切割方式
      3:魔方外形    预定的59种魔方外形
      4:线条           魔方显示时有线条或无线条
      5:切割参数    自定切割参数,在三楼详细说明
      6:外形参数    自定外形参数,在四楼详细说明
      7:面性质        7种面性质,只对预定外形起作用
      8:模式           颜色模式 F9键可编辑魔方各个块的颜色
                            形状模式  F9键可轮流切换主显示区的显示模式
      9:自定去除块  不要的魔方块可去掉,例如空心魔方
      10:自定面修饰  魔方外形增加锥体、台体、对偶锥体、对偶台体 详细说明在八楼
      11:转动速度    控制魔方转动速度的参数
      12:提交按钮   
      13:自定切割序列   另一种切割魔方的方式,可切出捆绑魔方
      14:初始化序列    常规框
      15:待执行序列    常规框
      16:自定义公式    常规框
      17:可选参数       常规框
      18:输出框           常规框

      魔方外形预定义了59种常见对称多面体,包括正多面体,半正多面体,卡塔兰多面体,截角卡塔兰体等。这些立体外形都可以设计成平面、小凹面、大凹面、小凸面,中凸面、大凸面和球面七种方式。这些立体本质上是根据定义数据做出来的,只是把他们的定义数据存到程序里了。59种常见多面体可在Java工具的《魔方外形》选框内查看和选择。
      软件预定义了常用切割方式106种,这些数据转动切割方式也是和自定义切割方式一样的数据格式,只是预先保存到程序里了。预定义切割都用的是平面,并且层数固定。106种常用切割方式在《预定切割》选框内查看和选择。
      软件支持Bram魔方,有内设的227种外形。
       软件支持Bram魔方,有内设的227种转动轴,每种转动轴的切割层,以及每层的切割深度和切割面属性用户可以定义。
       除了这些预定义的外形和切割方式,用户可以通过Java助手自己设计自己的魔方外形,和切割方式。实际上每种轴可以自己定义切割层1到3层,每层可以用平面和半径不同的球面切割,可以用凸球面切割也可以用凹球面切割。切割转动轴与魔方外形是独立的,一种切割转动轴可以用在任意外形上,例如:普通七阶魔方用在正方体上就是普通七阶魔方,用到凹面的四角化六面体就是如下的魔方。
      本软件鼠标点击和原来的有一点不同,鼠标左键点击逆时针转动,右键点击顺时针转动,直接点击转动外层,加上上档键转动12层,加上Ctrl键转动123层。这和手动转动一致,手动转魔方也是一次转多层的。原来的软件加上上档键转动第二层,加上Ctrl键转动12层。
      本软件除了支持正常切割外,还支持魔中魔切割,可以定义每个魔中魔的面属性。最多可以支持3个圈的魔中魔切割。可以支持太阳花魔方的切割,太阳花魔方与普通切割不同就是节点多一倍。支持华丽魔方切割,支持子母魔方切割。
      本软件具有输出obj格式的数据功能。obj格式的文件是3d软件的标准文件,现行的多数3d软件都支持obj文件的导入。因此,本软件增加了obj格式数据的输出。可以输出魔方外形的obj数据,也可以输出任意一个魔方块的obj数据。把它复制到记事本中,保存成obj后缀的文件即可。这里有我调试程序时输出的几个obj文件,下载后解压到一个文件夹里,可以用Windows10自带的3d查看软件看到效果。obj文件的用途很多,可以作为建模软件的初始文件,可以在一些程序中使用。下面是Windows10自带的3D软件的截图:

凸面正方体:
图0002.PNG

图0003.PNG

Bram564外形:
图0004.PNG
图0005.PNG
图0006.PNG
图0007.PNG

下面是我调试程序输出的几个obj文件的压缩文件,下载后解压到一个目录即可用3D软件查看。


obj.zip (556.39 KB, 下载次数: 3)



附件: 图0001.PNG (2024-4-14 08:40:45, 96.35 KB) / 下载次数 68
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTAyfDMzYjJhZjFhfDE3Mjc0ODUwNzd8MHww

附件: 图0007.PNG (2024-4-14 08:44:25, 188.18 KB) / 下载次数 67
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTA4fGY2NDE0MmMzfDE3Mjc0ODUwNzd8MHww

附件: 图0006.PNG (2024-4-14 08:44:24, 241.58 KB) / 下载次数 70
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTA3fGJiMjE0YzlhfDE3Mjc0ODUwNzd8MHww

附件: 图0005.PNG (2024-4-14 08:44:24, 214.54 KB) / 下载次数 67
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTA2fDQ3NGQxYmQyfDE3Mjc0ODUwNzd8MHww

附件: 图0004.PNG (2024-4-14 08:44:23, 138.08 KB) / 下载次数 68
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTA1fGFlNTgyZmM3fDE3Mjc0ODUwNzd8MHww

附件: 图0003.PNG (2024-4-14 08:44:23, 306.55 KB) / 下载次数 68
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTA0fDIxNTMyODE1fDE3Mjc0ODUwNzd8MHww

附件: 图0002.PNG (2024-4-14 08:44:22, 143.3 KB) / 下载次数 67
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTAzfDg0NTFiZDFkfDE3Mjc0ODUwNzd8MHww

附件: obj.zip (2024-4-14 08:58:29, 556.39 KB) / 下载次数 3
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxNTA5fGY4NTQ5YzcwfDE3Mjc0ODUwNzd8MHww
作者: hubo5563    时间: 2024-4-14 08:50:25

本帖最后由 hubo5563 于 2024-7-5 19:00 编辑

五种显示方式

      Java助手主框显示方式有5种,第一种正常魔方动画,第二种显示没有切割的魔方,第三种显示魔方的单块,第四种显示魔方一组相似块,第五种逐层显示魔方。当界面的《模式》选择《形状》时,由F9键轮流切换。当《模式》选择《颜色》时,F9键和原来的一样,进入颜色编辑状态,操作也一样。
      当处在第一种正常魔方动画方式,除F9键之外,其他功能键与原来的一致。
      F1:帮助信息
      F2:退出文本态回到魔方状态
      F3:显示点击的步骤
      F4:显示初始化序列步骤
      F5:显示论坛代码
      F6:显示html代码
      F7:显示其他参数
      F8:同F2
       当处在第二种显示没有切割的魔方状态,功能键如下:
       F1:帮助信息
       F2:退出文本态回到魔方状态
       F3:显示魔方外形参数
       F4:显示魔方各个转动轴参数
       F7:显示魔方外形参数的OBJ格式的数据,可以按CtrL+a键,把它全选,再Ctrl+c键把它复制下来,再粘贴到Windows的记事本里,把它保存成扩展名为obj的文件,就是通用的3D软件文件。这样的文件可以导入到其他3D建模软件中,也可以在程序中使用。
       F9:键轮流切换显示模式
      当处在第三种显示魔方的单块状态,功能键如下:
       F1:帮助信息
       F2:退出文本态回到魔方状态
       F3:显示当前显示块的外形参数
       F5:显示前一块
       F6:显示后一块
       F7:显示当前显示快的外形参数的OBJ格式的数据。
       F9:键轮流切换显示模式
       当处在第四种显示魔方一组相似块状态,功能键如下:
        F1:帮助信息
        F2:退出文本态回到魔方状态
        F3:显示当前显示块族序号,你可以记录下该序号,把同样块的所有序号记录后,可以移除这些块,来定义空心魔方等。
      

作者: hubo5563    时间: 2024-4-14 09:04:27

本帖最后由 hubo5563 于 2024-7-5 19:37 编辑

外形与切割的独立性

     通常的魔方仿真软件以魔方为主,包括外形和切割,切割和魔方相对应,切割和外形是一体的。本软件的切割轴和外形是独立的,这样不同切割在不同外形下呈现不同的魔方,能方便看到不同外形的等价魔方是很有趣的。
例如:

正方体只转上面四个角的转角魔方:





[SCubejava=580,500]
[param=Order]1[/param]
[param=AxisType]7[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=MoveCut]UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;ULB';UFL';URF';UBR';ULB';UFL';URF';UBR';ULB';UFL';URF';UBR';[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]


等价的八面体魔方

[SCubejava=580,500]
[param=Order]2[/param]
[param=AxisType]7[/param]
[param=FaceType]4[/param]
[param=Speed]6[/param]
[param=MoveCut]UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;ULB';UFL';URF';UBR';ULB';UFL';URF';UBR';ULB';UFL';URF';UBR';[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]



等价的四角化六面体魔方

[SCubejava=580,500]
[param=Order]12[/param]
[param=AxisType]7[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=MoveCut]UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;UFL;ULB;UBR;URF;ULB';UFL';URF';UBR';ULB';UFL';URF';UBR';ULB';UFL';URF';UBR';[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]

形状不同,但切割相同,出来的魔方外形不同的。

著名的捆绑魔方Bicube魔方:

[SCubejava=580,500]
[param=Order]1[/param]
[param=AxisType]1[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=MoveCut]f2;r;R;U';L;U2;R';U;F';L';U';F;R;U;L;F;U';F';U';F2;[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]



等价的八面体魔方:

[SCubejava=580,500]
[param=Order]2[/param]
[param=AxisType]1[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=MoveCut]f2;r;R;U';L;U2;R';U;F';L';U';F;R;U;L;F;U';F';U';F2;[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]


等价的菱形十二面体魔方

[SCubejava=580,500]
[param=Order]8[/param]
[param=AxisType]1[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=MoveCut]f2;r;R;U';L;U2;R';U;F';L';U';F;R;U;L;F;U';F';U';F2;[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]

以上三个魔方等价的,你看不是很有趣。

作者: hubo5563    时间: 2024-4-14 09:15:45

本帖最后由 hubo5563 于 2024-7-5 19:01 编辑


空间对称群的种类和软件的转动轴的分类
标准轴
根据数学理论,空间有限的完全对称的变换群只有四类:
1:四面体对称群,
2:正方体对称群,
3:正十二面体对称群,
4:二面体对称群。

        魔方的设计大都是基于这些群设计的转动轴和转动面。
      上面的对称群实际上对三维空间点都是对称的,他的范围是无限大空间。另外,在局部有限尺度范围内,还有其他类型的有限对称群,不是全空间的对称群,Bram切割就是一种。除了以上四类全空间的对称群,在加上Bram切割算是5大类。
我这里也是根据这个设计的转动轴和切割方式,外形也是基于这些对称群设计的。因此我把轴和外形都设计成5大类。为编程方便,共设六类。下面分别介绍。
大类:
0-四面体切割群
1-正方体切割群
2-五魔方切割群
3-二面体对称群
外形类型:4-我设计的多面体
切割类型:4-五魔方和正方体魔方的二轴魔方
5-Bram魔方

大类0-2的小类表
小类:
大类0-四面体切割群的小类:
   0-四面体(转面)
   1-四面体(转角)
   2-正方体(转棱)
   3-三角化四面体(卡塔兰)
   4-菱形十二面体,卡塔兰
   5-小斜五魔方
   6-小斜五魔方
   7-正十二面体部分
   8 -大斜五魔方
   9-可截成正二十面体
   10-10可截成正二十面体
   11-二十二面体部分面
   12-等边
   13-截角菱形十二面体
   14-十六面体
   15-正二十面体
   16 -大斜五魔方
大类1-正方体切割群的小类:
   0-正方体转面
   1-正方体转角
   2-正方体转棱
   3-四角化六面体(卡塔兰体)
   4-鸢形24面体 (卡塔兰体)
   5-五角24面体1
   6-五角24面体2
   7-三角化八面体(卡塔兰体)
   8-六角化八面体(卡塔兰体)前
   9-六角化八面体(卡塔兰体)后
大类2-五魔方切割群的小类
   0-正十二面体转面
   1-正十二面体转角
   2-正十二面体转棱
   3-五角化十二面体,卡塔兰体
   4-鸢形60面体,卡塔兰体
   5-五角60面体1
   6-五角60面体2
   7-三角化二十面体
   8-六角化二十面体(卡塔兰体)前
   9-六角化二十面体(卡塔兰体)后

作者: hubo5563    时间: 2024-4-14 09:42:36

本帖最后由 hubo5563 于 2024-9-23 22:30 编辑

切割参数的详细说明
      这里的切割参数是Java助手里的《切割参数》,对应小应用程序的参数:Slice
      这个参数是构造自定义轴和切割平面的,与魔方外形无关,但是实现必须有外形。最好外形选择一致。

      这个参数可以为空,当这个参数为空时,切割采用预定切割。即《预定切割》的参数起作用。预定切割有106种,可以用预定切割设置轴的类型和切割面。这个参数不为空时,必须遵守这里规定的数据格式输入有效参数。当参数格式不对或数据大小不对,将出现错误状态。
下面数据结构中的大括号和中括号实际数据中并不存在,这里只表示重复项。
      同一轴的多层切割要从外到里排列,即深度从大到小排列。
     对切时深度不要用0,要用0.0001,否则没法判断切割面方向。

切割参数:0,1,2
                0:四面体对称群切割类
                 1:正方体对称群切割类
                 2:正十二面体对称群切割类
          数据结构l,n,{m,k,[u,r,],sx,[u,r]};
          l---大类,
          n---轴类数,
          m---小类,
          k=切割层数,
          u---深度,
          r----半径
         sx---附加属性
           其中:大类l只能是0,1,2  三个数之一,如楼上所述。
          轴类数n,是指这个切割中,有几种轴,可以有1,2,3这3种选择。
                         紧接着大括号里是重复内容,重复次数就是轴类数n。
          小类m,如楼上所述。
          切割层数k,就是这种轴切割的层数,可以有1,2,3这三种选择。
                            紧接着中括号里是重复内容,重复次数就是切割层数k。
          深度u,就是切割深度,0.0001到1.5之间任意实数,但是不能大于魔方外形,不然就切不到任何东西,形不成转动层。
          半径r,切割球面半径,
                    为0,代表切割面是平面;
                    正数代表切割面向外凸,
                    负数代表切割面向外凹。一般小于10;
          附加属性sx:
               0,1两位表示附加切割层数,也是后面中括号里的重复次数,用来设置魔中魔魔方。
               2,3两位  为0 正常转动  
                              为1 太阳花和华丽魔方的转动方式  
                              为2  45度  子母魔方转动  
                              为3  30度  子母魔方转动
              子母魔方只有正方体转面切割才起作用,其他切割无效。
         附加切割层的转动用:locked的值来控制。在魔中魔魔方设计时再详细介绍。
       切割参数:3  二面体对称群切割类
   
         精简数据结构:3,0,m,k1,[u,r],k2,[u,r]
                          精简数据结构定义简单的真正二面体对称轴。 第二个参数为0是精简数。
                          m---为上下底的边数,m大于3
                           k1----上下底切割层数,后面的[u,r]出现k1次
                           u----切割深度
                           r----切割球面半径
                                    为0,代表切割面是平面;
                                    正数代表切割面向外凸,
                                    负数代表切割面向外凹。
                           k2----是侧面轴的切割层数,后面的[u,r]出现k2次。
                                   侧面切割倾斜角为90度,水平初始角为0。

         扩展数据结构:3,m,k1,[u,r],ks1,[u,r],k2,[u,r],ks2,[u,r],n,{jiao1,jiao2,k3,[u,r],ks3,[u,r]}
                       u----切割深度
                      r-----球面半径
                                    为0,代表切割面是平面;
                                    正数代表切割面向外凸,
                                    负数代表切割面向外凹。
                     m----为上下底的边数,也是侧轴每层的轴数
                     k1----上底切割层数,k1=0时后面跟的[u,r]以及ks1和后面的[u,r]不出现
                              当k1不等于0时,后面的[u,r]出现k1次,然后是ks1参数。
                     ks1----上底的附加层数
                              当ks1为0时,后面紧跟的[u,r]不出现
                             当ks1不等于0时,后面紧跟的[u,r]出现ks1次。
                   然后就是下底切割参数,格式相同,不在详细解释。
                     k2----下底切割层数,k2=0时后面跟的[u,r]以及ks2和后面的[u,r]不出现
                     ks2---是下底的附加层数,数据格式同上底。
                  然后是侧面多组切割参数:
                     n---是侧面轴的层次数,最少为1
                     大括号里的出现n次
                         jiao1---是该层轴的倾斜角,和z轴平行倾斜角为90度,小于90度,上小下大,大于90度下小上大。
                         jiao2---是该层的水平初始角,该层轴的排列初始轴不一定是0,需要转动jiao1度,以后各个轴都均匀分布在该层的圆周上。
                          
                            k3----是侧面轴的切割层数,k3=0时后面跟的[u,r]以及ks3和后面的[u,r]不出现,一般不会出现这种情况。
                                   后面出现k3次[u,r]
                           ks3是侧面的附加层数,ks3可以为0,当k3为0时,后面的[u,r]不出现。
                                   当ks3不为0时,后面的[u,r]出现k3次。
                             
              附加切割层的转动用:locked的值来控制。在魔中魔魔方设计时再详细介绍。

   切割参数:4   正方体或正十二面体的二轴切割类

          数据结构:l,m,k,[u,r],k1,[u,r],deep;
           其中:l---类型 4     
           m---小类,m的范围:0-36;具体参考下面附表
          其中0-22是正十二面体数据,外形最好是正十二面体对称群外形,这样魔方就不变形
           23-36是正方体数据,外形最好是正方形对称群外形,这样魔方就不变形
           k----是正常切割层数,紧接中括号代表重复内容,k是重复内容。
          当k1为0时,是轴1和轴2的共同切割,当k1不为0时,只是轴1的切割。
           u----切割深度
           r----球面半径,为0,代表切割面是平面;
                                正数代表切割面向外凸,
                                负数代表切割面向外凹。
          k1---轴2切割层数,为0,代表轴2的切割同轴1。不为0时,是轴2的切割层数
          k1不为0时,后面中括号是轴2的切割深度和切割面球面半径。  
          deep---为解绑深度,两轴各转一次,算1。一般取10左右。


切割参数:5  Bram切割轴类
          模式0,预定轴,
          数据结构:5,0,m,k,[u,r,],k1,[u,r],deep;

其中:m---小类,m的范围:0-226;代表不同的Bram切割。227-453为0-226的对称Bram切割。
                             具体值与外形参数一致,参看楼下。
          k----是正常切割层数,紧接中括号代表重复内容,k是重复内容。
         当k1为0时,是轴1和轴2的共同切割,当k1不为0时,只是轴1的切割。
          u----切割深度
          r----球面半径,为0,代表切割面是平面;
                                正数代表切割面向外凸,
                                负数代表切割面向外凹。
          k1---轴2切割层数,为0,代表轴2的切割同轴1。不为0时,是轴2的切割层数
          k1不为0时,后面中括号是轴2的切割深度和切割面球面半径。
         deep---为解绑深度,两轴各转一次,算1,当u值小到一定程度,该数越大,计算量越大,存储空间需要越多。当deep越小,能完全解绑的魔方解绑不彻底。要从小到大适当调整该值。

         模式1,自定义轴
         数据结构:5,1,a,aa,b,bb,c,cc,k,[u,r,],k1,[u,r],deep;
         a,aa----Bram(a,b,c)的a的分子和分母都是整数
         b,bb----Bram(a,b,c)的b的分子和分母都是整数
         c,cc----Bram(a,b,c)的c的分子和分母都是整数
         k,u,r,k1,deep含义同上。
切割参数6:散点构造切割轴
  

         数据格式小类0,为三维坐标构造,数据格式:6,0,n,{x,y,z,k,[u,r],sx,[u,r]}
         n----轴特征点的个数,后面大括号里面的内容重复n次
         (x,y,z)---特征点三维坐标
         k----该轴的切割层数,范围1-3,后面中括号的u,r,重复k次
         sx---轴属性,低二位为辅助切割层数
         后面中括号的u,r,重复sx最低二位表示的次数。

           数据格式小类1,为经纬坐标构造,数据格式:6,1,n,{jiao1,jiao2,k,[u,r],sx,[u,r]}
         n----轴特征点的个数,后面大括号里面的内容重复n次
         jiao1---是该轴的倾斜角,和z轴平行倾斜角为90度,小于90度,上小下大,大于90度下小上大。
         jiao2---是该轴的水平初始角,该轴水平需要转动jiao1度。
         k----该轴的切割层数,范围1-3,后面中括号的u,r,重复k次
        sx---轴属性,低二位为辅助切割层数

         后面中括号的u,r,重复sx最低二位表示的次数。数据格式小类2,为经纬增量构造,
数据格式:6,2,n,{jiao1,jiao2,zl,k,[u,r],sx,[u,r]}
        n----轴特征点组的个数,后面大括号里面的内容重复n次
         jiao1---是该轴的倾斜角,和z轴平行倾斜角为90度,小于90度,上小下大,大于90度下小上大。
         jiao2---是该轴的水平初始角,该轴水平需要转动jiao1度。
         zl--------是该轴的水平角,每生成一轴的增量,重复到大于等于360度。
         k----该轴的切割层数,范围1-3,后面中括号的u,r,重复k次        
          sx---轴属性,低二位为辅助切割层数
         后面中括号的u,r,重复sx最低二位表示的次数。
         u,r-----为切割深度和切割球面半径,同上。

          切割参数:7,8,9
          参数7,8,9提供了基于多面体的转面,转角,转棱轴的设计。这里的多面体是所有面都是中心指向坐标原点的、并且垂直坐标原点到面中心连线的多面体。转面轴是坐标原点到面中心的连线轴,转角轴是坐标原点到多面体顶点的连线轴,转棱轴是坐标原点到棱中点的连线轴。
          数据结构:7,n,{m,k,[u,r,],sx,[u,r]};
                            8,lx,n,{m,k,[u,r,],sx,[u,r]};
                            9,js,(外形参数),n,{m,k,[u,r,],sx,[u,r]};

          n---轴类数,
          m---小类,0为转面轴,1为转角轴,2为转棱轴。
          k=切割层数,
          u---深度,
          r----半径
         sx---附加属性
         上面参数说明同参数0,1,2参数一样。
         参数7没有其他参数,以当前外形为参考多面体。
         参数8以预定多面体为参考多面体。有一个其他参数lx,它是魔方外形的序号减1。
         参数9以参数里现定义的多面体为参考多面体。跟着参数9后的js是外形参数的个数,后面一组外形参数,数据和数据格式与外形参数一样。







附件: 切割参数4的小类说明.zip (2024-5-4 09:46:19, 711 Bytes) / 下载次数 2
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxOTIxfGNhMDUzZjY2fDE3Mjc0ODUwNzd8MHww
作者: hubo5563    时间: 2024-4-14 09:49:25

本帖最后由 hubo5563 于 2024-7-5 19:02 编辑

     外形参数的相细说明
    这里的外形参数是Java助手里的《外形参数》,对应小应用程序的参数:Shape


     这个参数可以为空,当它为空时,以《魔方外形》设置的预定形状为准。当它不空时,数据格式必须满足下面规定的格式,否则将会出现错误状态。

外形参数:0,1,2
                0:四面体对称群类外形
                1:正方体对称群类外形
                2:正十二面体对称群类外形
               数据结构:l1,m1,k,s,u1,l2,m2,u2,l3,m3,u3;
               其中l1,l2,l3为三次切割的大类,数值只能是0,1,2三个之一。
               m1,m2,m3为三次切割的小类,数值参考上表。
               u1,u2,u3为切割深度,数值是实数,0.0001-1.8之间。
               k为切割次数,k为1时,没有l2之后的数据。k为2时,没有l3之后的数据。数据都是以英文逗号隔开,最后是英文分号。
               s是对偶特征,当s=1时,最后外形取其对偶多面体。

外形参数:3
                3为二面体对称群切割外形类
              柱锥台的切割参数数据结构:3,0,m,r1,r2,h;
               这里:

              第二个参数为0,是棱台、棱柱或棱锥体,
               m-----为上下底面的边数。
               r1-----为上底面外接圆的半径,实数<2
               r2-----为下底面外接圆的半径,实数<2
               h------为它的高,实数>0<3;
               r1,r2不能同时为0,当r1或r2有一个为0时切出的是棱锥,当r1=r2并且不等于0时,切出的是棱柱,r1不等于r2都不为0时切出的是棱台。

     3,0,6,0.0,0.5,1.0;             六棱锥(尖)
     3,0,6,0.0,1.0,1.0;           六棱锥(中)
     3,0,6,0.0,1.5,0.7;           六棱锥(矮)
  
     3,0,6,0.5,0.5,1.0;           六棱柱(长)
     3,0,6,1.0,1.0,1.0;           六棱柱(中)
     3,0,6,1.0,1.0,0.5;           六棱柱(短)
  
     3,0,6,0.6,1.0,1.0;           六棱台(高)
     3,0,6,0.6,1.0,0.7;           六棱台(中)
     3,0,6,0.6,1.0,0.4;            六棱台(矮)
  
              
       当第二个参数不为0时
       其他切割的数据结构:3,n,m,u1,r1,u2,r2,[jiao1,jiao2,u,r];  k>0;
            
                n----为切割轴圈的个数。
                m-----为上下底面的边数。
                u1------上底切割的深度。
                r1------上底切割的球面半径,r1=0为平面,r1>0为凸面。r1<0为凹面。
                u2------下底的切割深度。
                r2-------下底切割面的球面半径,r2=0为平面,r2>0为凸面。r2<0为凹面。
                中括号重复次数为n。
                jiao1----切割面倾斜角度,以度为单位,90度与Z轴平行,小于90度,上小下大,大于90度上大下小。
                jiao2----初始水平转角,以度为单位。
                u-----切割深度
                r-----切割面半径,r=0为平面,r>0为凸面,r<0为凹面。

两个例子:
                3,1,5,0.5,0,0.8,0,80,0,0.5,0;
                3,2,6,0.5,5.5,0.55,5,67,0,0.5,0,113,30,0.5,0;



     外形参数:4
                4 为我设计的一系列多面体
                数据结构:4,m,n,p,a,c;
                m----参数1,奇数
                n-----参数2,
                p-----参数3,
                a----切割深度,通常取1即可
                c----配色方案:

                                 0:单色
                                 1:自动配色,保证相邻面不重复颜色
                                 2:根据面的边数配色
                                 
外形参数:5
                5为Bram几何
                模式0为预定的226种几何体,数据结构:5,0,m;
                其中m为Bram几何的序号。参见Bram几何表。

                模式1为自定义Bran几何体,数据结构:5,1,a,aa,b,bb,c,cc,u,r,u1,r1;
                其中:
               a,aa----Bram(a,b,c)的a的分子和分母都是整数
               b,bb----Bram(a,b,c)的b的分子和分母都是整数
               c,cc----Bram(a,b,c)的c的分子和分母都是整数
               模式1定义出来的几何体当切割深度大一些时转动不变形。
              模式2为自定义Bran几何体,数据结构:5,1,a,aa,b,bb,c,cc,u,r,u1,r1;
                其中:
               a,aa----Bram(a,b,c)的a的分子和分母都是整数
               b,bb----Bram(a,b,c)的b的分子和分母都是整数
               c,cc----Bram(a,b,c)的c的分子和分母都是整数
               模式2定义出来的几何体作为参考。


  Bram几何体外形参数:
说明01.PNG
说明02.PNG

切割参数6:散点构造外形

       由于外形是由最初的正方体逐步切割而成的,故散点构造外形是构造每个面的中心点,和面中心到坐标原点的距离,以及切割球面半径。
      模式0,数据结构6,0,n,{x,y,z,u,r}
      n---面数,中括号里的要重复n次。
     (x,y,z)----为轴的法向量,也叫特征点。
        u每个面切割深度。
        r-----切割球面半径,0为平面,证书为凸面,负数为凹面。
        
模式1,数据结构6,1,n,{jiao1,jiao2,u,r}
       n---面数,中括号里的要重复n次。
       jiao1----为轴的法向量倾斜角。
       jiao2----为轴的法向量水平分量角。
       u每个面切割深度。
        r-----切割球面半径,0为平面,证书为凸面,负数为凹面。

模式2,数据结构6,2,n,{jiao1,jiao2,zl,u,r}
       n---面类数,中括号里的要重复n次。
       jiao1----为轴的法向量倾斜角。
       jiao2----为轴的法向量水平分量角。
       zl-----是该轴的水平角每生成一轴的增量,重复到大于等于360度。
       u每个面切割深度。
        r-----切割球面半径,0为平面,证书为凸面,负数为凹面。







附件: 说明02.PNG (2024-5-10 22:22:26, 15.68 KB) / 下载次数 59
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgyMDY2fDgwY2M3OGM5fDE3Mjc0ODUwNzd8MHww

附件: 说明01.PNG (2024-5-10 22:22:26, 89.54 KB) / 下载次数 56
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgyMDY1fDU2YThhMjEwfDE3Mjc0ODUwNzd8MHww
作者: hubo5563    时间: 2024-4-14 10:05:41

本帖最后由 hubo5563 于 2024-4-23 20:55 编辑

一般切割的魔方设计
      软件定义了106种切割方式,和59种预定外形,再加上7种外形面性质,用户用这些就能设计出很多魔方了。直接选《预定切割》《魔方外形》《面性质》这三个参数即可。

         如果用户掌握《切割参数》和《外形参数》后,就可以更好的设计其他切割和其他外形的魔方了。

下面举例说明:

1、二层转角魔方的设计
     魔方外形是正方体,直接从魔方外形选择预定外形2:正方体。从预定切割里找,没有二层转角魔方,只能设计切割参数来实现。由于是正方形二层转角,所以大类肯定是正方体对称类,大类选1,找到大类为0-2的格式说明:
     数据结构:l,n,{m,k,[u,r,],sx,[u,r]};
          l---大类,
         n---轴类数,
         m---小类,
         k=切割层数,
         u---深度,
         r----半径
         sx---附加属性

l为大类1,n为轴类数,这里只是转角,所以有1类轴,选1,m为小类,查表,转角小类为1,k为切割层数,这里是2层,所以为2,n为1,大括号循环1次,k为2,中括号里循环2次,由于普通切割,sx为0,后面中括号里面循环0次,不需要数据。由于采用平面切割,所以切割半径为0,格式为:1,1,1,2,u,r,u,r,0;y额就是1,1,1,2,u,0,u,0,0;再确定切割深度。
注意:多层切割深度从浅到深排列,否则就转动不对了。

      经过多次实验,最终切割参数为:      1,1,1,2,0.7556,0.0,0.0002,0.0,0;
这样就可以了。





[SCubejava=580,500]
[param=Order]1[/param]
[param=AxisType]3[/param]
[param=Slice]1,1,1,2,0.7556,0.0,0.0002,0.0,0;[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]

2:花瓣直升机魔方:
     魔方外形是正方体,直接从魔方外形选择预定外形2:正方体。从预定切割里找,没有球面切割,只能设计切割参数来实现。由于是正方形球面切割转棱,所以大类肯定是正方体对称类,大类选1,找到大类为0-2的格式说明:
     数据结构:l,n,{m,k,[u,r,],sx,[u,r]};
           l---大类,
         n---轴类数,
         m---小类,
         k=切割层数,
         u---深度,
         r----半径
         sx---附加属性
l为大类1,n为轴类数,这里只是转棱,所以有1类轴,选1,m为小类,查表,转棱小类为2,k为切割层数,这里是1层,所以为1,n为1,大括号循环1次,k为1,中括号里循环1次,由于普通切割,sx为0,后面中括号里面循环0次,不需要数据。格式为:1,1,1,2,u,r,0;
采用的是凹面切割才能达到效果,所以,r要取负值。多次调整切割深度u和切割半径最后就是
1,1,2,1,0.556,-1.8,0;



[SCubejava=580,500]
[param=Order]1[/param]
[param=AxisType]3[/param]
[param=Slice]1,1,2,1,0.556,-1.8.0,0;[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]


3:窗花魔方切割参数
     魔方外形是正方体,直接从魔方外形选择预定外形2:正方体。从预定切割里找,没有球面切割,只能设计切割参数来实现。由于是正方形球面切割转角加转面,所以大类肯定是正方体对称类,大类选1,找到大类为0-2的格式说明:
     数据结构:l,n,{m,k,[u,r,],sx,[u,r]};
           l---大类,
         n---轴类数,
         m---小类,
         k=切割层数,
         u---深度,
         r----半径
         sx---附加属性
l为大类1,n为轴类数,这里是转面加转角,所以有2类轴,选2,大括号里面有两个循环,第一个循环,转面,m为小类,查表,转面小类为0,k为切割层数,这里是1层,所以为1,中括号里循环1次,由于普通切割,sx为0,后面中括号里面循环0次,不需要数据。第二个循环,转角,m为小类,查表,转角小类为1,中括号里循环1次,由于普通切割,sx为0,后面中括号里面循环0次,不需要数据。
       格式为:1,2,0,1,u,r,0,1,1,u,r,0;
      转面轴采用平面切割,所以对应的r为0,转角采用的是凹面切割才能达到效果,所以,r要取负值。多次调整切割深度u和切割半径最后就是
     1,2,0,1,0.5,0.0,0,1,1,0.73,-2.0,0;


[SCubejava=580,500]
[param=Order]1[/param]
[param=AxisType]3[/param]
[param=Slice]1,2,0,1,0.5000,0.0,0,1,1,0.73,-2.0,0;[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]
4:大雁大宝石9的设计
     这个魔方外形是截角八面体,但是不是正常情况下的截角八面体,是比正常的截角八面体截的深一些。因此预定的59种魔方外形没有这个,需要设计设置外形参数来达到。这个是正方形对称群的,设置外形选大类为1,切割有两种,一种是正方体切面,一种是正方体切角适当调节它们的深度,最后外形参数如下:
1,1,2,0,0.5,1,0,0.5;

切割直接选择转棱6即可:

[SCubejava=580,500]
[param=Order]11[/param]
[param=AxisType]15[/param]
[param=Shape]1,1,2,0,0.5,1,0,0.5;[/param]
[param=FaceType]0[/param]
[param=Speed]6[/param]
[param=butbgcolor]99d658[/param]
[param=bgcolor]f3a0e2[/param]
[/SCubejava]


   总之,一般魔方设计主要考虑的是外形和切割方式,尽量从预定义里面选择,预定义里没有,就要设计外形切割参数和转轴切割参数。要想正确选择参数,需要计算,或逐步实验。
作者: hubo5563    时间: 2024-4-14 10:16:35

本帖最后由 hubo5563 于 2024-5-3 08:44 编辑

魔中魔魔方的设计
      软件支持辅助层,就是用来设计魔中魔魔方的。

1、三阶双圈魔中魔魔方的设计
      外形,选择预定义外形,2:正方体
      切割面和切割轴,用切割参数来设计,三阶魔方,有一个切割主层,两个圈,需要两个辅助层。
1,1,0,1,0.3,0,2,0.7,-1.0,0.6,-1.2;
     出来是这样的:


图001.PNG

点击这里进入

明显,每个面都是跟着主面转动的,需要为每个面指定属性。
可以用locked参数来实现:


locked参数在其它参数框里输入即可。格式是一个字符串,一个面对应一个字符,顺序和轴的序号一致。可以在形状模式下,按F9键进入整体显示状态,然后按F4键输出轴信息来确定。
0---主面转动时所有圈内的块跟着转动。
1---主面转动时,只有最里面的小圈内的块不跟转动,其它块跟着转动
2---主面转动时,最里面两个圈内的块不跟着转动,其它块跟着转动
3---主面转动时,从里往外数三个圈内的块不跟着转动,其它块跟着转动
只有这4种状态。


根据魔方性质locked参数
      locked=021210;


由于魔方红面对应的是橙色面,所以需要为紫色面5设置颜色
选颜色模式,按F9键,进入颜色编辑状态,选整面填色,选橙色,然后点紫面的任一块,紫面就变为橙色了。然后按F7键输出。其它参数。

locked=021210;
Face1=1111111111111111111111111;
Face2=2222222222222222222222222;
Face3=3333333333333333333333333;
Face4=4444444444444444444444444;
Face5=bbbbbbbbbbbbbbbbbbbbbbbbb;
Face6=6666666666666666666666666;

把它复制下来,粘贴到助手的其它参数框里,提交后,魔方设计完成。之后,你可以用来破解或者做演示,可以输入初始化序列,公式等。
最后结结果:




点击这里进入查看



等价的截角八面体魔方是这样的:

说明书图003.PNG

点击进入查看


2、三圈魔中魔五魔方
外形选预定形状的3:正十二面体
切割参数:
2,1,0,1,0.848,0,3,1.0,-1.0,1.176,-1.15,1.25,-1.2;

其它参数选:
locked=012301230123;



设计结果

说明书图001.PNG

点击进入查看


附件: 图001.PNG (2024-5-3 08:42:45, 70.41 KB) / 下载次数 61
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxODk4fDc3MDEyMWYyfDE3Mjc0ODUwNzd8MHww

附件: 说明书图003.PNG (2024-5-3 08:42:09, 90.7 KB) / 下载次数 60
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxODk3fGJkMWNmMjhjfDE3Mjc0ODUwNzd8MHww

附件: 说明书图001.PNG (2024-5-3 08:42:09, 142.93 KB) / 下载次数 58
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxODk2fGUwZGY2YmJmfDE3Mjc0ODUwNzd8MHww
作者: hubo5563    时间: 2024-4-14 10:25:51

本帖最后由 hubo5563 于 2024-7-5 19:04 编辑

华丽魔方的设计和太阳花魔方的设计

华丽魔方和太阳花魔方的特点就是最外层比原来有双倍的节点,在切割参数中的属性设置4即可。

1、华丽魔方的设计

外形:选44:截角三角化8面体
切割参数:1,1,0,2,1.083,0,0.45,0,4;

解释:第一个1为大类,正方体对称群类
          第二个1为轴的种类数,由于只有一类轴
          第三个0为小类,即正方体转面轴
          第四个2为该类轴设计两个切割层
          第五个1.083是外层切割深度,这个可以实验得出。
          第六个0为切割球半径,为0代表平面
          第七个0.45为里层切割深度,通过实验的出。
          第八个0为切割球面半径,0表示切割面为平面
          第九个4为属性,第01两位是0,表示没有附加层,第23两位为4即表示23两位是1,表示华丽魔方或太阳花魔方。

          结果:

说明书图006.PNG

         点击进入

2、华丽双圈魔中魔魔方
外形:选44:截角三角化8面体
切割参数:1,1,0,2,1.083,0,0.45,0,6,1.1,-1.0,1.25,-1.0;
根据魔方面性质再设计locked参数,设为012120;
或使用时在其它参数里输入即可。
解释:1-8个参数同上
        第九个6,第01位为2,第23位为1表示有2个附加层,即两个圈,第23位为1表示是华丽魔方或太阳花魔方。
       第十个参数1.1为里面小圈切割深度,由实验得出。
       第十一个参数-1.0为里面小圈切割球面半径,负数表示凹面切割,也是由实验得出。
       第十二个参数1.25为外面大圈切割深度,由实验得出。
       第十三个参数-1.0为外面大圈切割球面半径,负数表示凹面切割,也是由实验得出。

结果:

说明书图005.PNG


点击进入

3、太阳花魔方

外形 2:正方体
切割参数:1,1,0,1,0.41,0,4;
解释:第一个1为大类,正方体对称群类
          第二个1为轴的种类数,由于只有一类轴
          第三个0为小类,即正方体转面轴
          第四个1为该类轴设计一个切割层
          第五个0.41是外层切割深度,这个可以实验得出。
          第六个0为切割球半径,为0代表平面
          第七个4为属性,其中01位为0,没有附加切割层,其中23为4即为1属于太阳花或华丽魔方。

结果:
     
       说明书图004.PNG

点击进入参看动画


4、魔中魔太阳花
外形 2:正方体
切割参数:1,1,0,1,0.41,0,5,0.7,-1.5;

解释:前面六个参数同太阳花魔方
第七个参数5,属性,其中01为为1,代表有一个辅助切割层,即有一个圈
第八个参数0.7代表圈的切割深度,由实验确定。
第九个参数-1.5为圈的切割面半径,负数表示凹面切割,由实验确定。

结果:


说明书图007.PNG

点击进入参看动画




  

附件: 说明书图004.PNG (2024-5-3 09:06:29, 43.01 KB) / 下载次数 58
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxODk5fDYzNWY2ZDY2fDE3Mjc0ODUwNzd8MHww

附件: 说明书图006.PNG (2024-5-3 09:11:12, 79.42 KB) / 下载次数 58
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxOTAxfDllNzFlYThjfDE3Mjc0ODUwNzd8MHww

附件: 说明书图005.PNG (2024-5-3 09:11:12, 92.9 KB) / 下载次数 60
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxOTAwfDBjZmMwZjcxfDE3Mjc0ODUwNzd8MHww

附件: 说明书图007.PNG (2024-5-3 09:23:52, 72.81 KB) / 下载次数 57
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MjgxOTAyfGI2ZmVkNmJkfDE3Mjc0ODUwNzd8MHww
作者: hubo5563    时间: 2024-4-14 10:33:58

本帖最后由 hubo5563 于 2024-5-11 23:00 编辑

Bram魔方的设计和二轴正方体正十二面体魔方设计
        Bram魔方和Bram几何详细内容可以参考redcarrot 老师的帖子:Bram几何——无jumble魔方的可能性探索:http://bbs.mf8-china.com/forum.php?mod=viewthread&tid=115214
       简单来说就是二轴魔方。我这里专门设计了这类魔方的切割。这类魔方除了与正多面体有关的几个,主要是Bram(3,3,2)正八面体转面,Bram(3,3,3)正四面体转面,Bram(4,4,3)正方体转面,Bram(5,5,3)正十二面体转面等由于对称性,所以比较简单,其它的和正多面体无关的Bram魔方切割深度越深,切出的块越多,多达成千上万。由于Java小应用程序不能太占用资源,所以很难做到完美切割的。
      我把和正多面体有关的Bram魔方专门设计一类,切割大类为4。列出了所有的与正多面体相关的,共36个。这些用正十二面体或正方体做外形,切割不深时都不变形。这类魔方的设计主要参考切割参数说明的第4大类。其它Bram魔方的设计参考切割参数说明的第5大类。外形设计也参考:外形参数说明的第5大类说明。


作者: hubo5563    时间: 2024-4-14 10:41:18

本帖最后由 hubo5563 于 2024-5-10 23:16 编辑

自定切割序列说明:
      自定切割序列是一边转动,一边切割的一种切割方式,当转动被卡住时,用相应的面就将所有卡住的块进行切割。
切割命令是合法的转动序列,前面可以冠以前置词,以&结束或自然结束的多个命令段。
   前置词有两个,都是小写字母加英文冒号。
   1-----a: 后面直到&之前的所有命令执行全对称切割。
    大类0是正四面体对称群,正四面体的全对称有4个面,每面3个方向,共12种。
    大类1的正方体对称群,正方体的全对称有6个面,每面4个方向,共24种。
    大类2的正十二面体对称群,正十二面体全对称有12个面,每面5个方向,共60种。
    大类3的二面体对称群,边数为m的二面体的全对称有2m种。其中m是边数。
   2-----am:后面直到&之前的所有命令执行面对称切割。
    大类0是正四面体对称群,有4个面,面对称有4种。
    大类1是正方体对称群,正方体有6个面,面对称有6种。
    大类2的正十二面体对称群,正十二面体有12个面,面对称有12种
    大类3不设面对称。
   其它大类切割不可加前置词。
        每个命令段执行完就自动倒回,带前置的命令段要根据对称性重复多次执行,每次执行完都要倒回。所以最后就是切割好的魔方,像是没有转动过的魔方。
        这个功能主要用来对正常魔方构造捆绑魔方,例如用三阶魔方构造BiCube魔方等,利用太阳花魔方构造百慕大魔方。应用好这个功能可以构造任意魔方的任意捆绑魔方。
        这个功能还可以用在Jumble魔方的解绑。例如子母魔方二代,子三母四子母魔方,九芯魔方等。

作者: hubo5563    时间: 2024-4-14 10:46:55

本帖最后由 hubo5563 于 2024-7-2 22:02 编辑

自定面修饰说明

    该功能让你在切割好的多面体后,再在上面加锥体或台体来修饰多面体。
自定面修饰,对应的参数为adorn。
adorn参数:
支持四种面修饰:
1、锥面化
     数据格式1,u;
     将切割好的多面体锥面化,h是锥体顶点到中心的距离,h必须大于0.当h>面中心到中心原点距离,锥顶点向外,呈正锥面;当h<面中心到中心原点距离,呈负锥面,锥面比面低时凹锥。
自动计算采用平面,凸球面或凹球面做锥面的侧面。平面切割的立体采用平面做锥面侧面,凸面立体锥面化锥面侧面采用凸球面做锥面的侧面,凹面立体锥面化锥面侧面采用凹球面做锥面的侧面,半径大小由棱的圆弧和锥面高度来决定。

2、多面体中心锥面化
数据格式:2,h,r;
将切割好的多面体中心锥面化,可以生成多面体与他的对偶多面体的复合体,多面体中心锥面化是由每个多面体的面的中点到原点的延长线上的某一点为顶点,每个面的棱中点为底面的顶点的锥面。
h为锥面顶点距原点的距离,r为锥面侧面的球面半径,当r>0为凸球面,当r<0时为凹球面。当球面半径绝对值太小时构不成球面,就转换成平面。当r值不合适时就构不成想要的锥面,此时就要调整r和h的值,最后出来效果即可。

3、台面化
数据格式:3,h,v,R;
    台面化,将切割好的多面体台面化,h是台面化之前的锥体顶点到中心的距离,h必须大于0.当h>面中心到中心原点距离,锥顶点向外,呈正锥面的棱台;当h<面中心到中心原点距离,呈负锥面棱台,锥面比面低是凹棱台。
v是台面化后台面上底中心点到原点的距离,当h大于面中心到中心原点距离时,v也必须大于面中心到中心原点距离,也需要小于h;当h小于面中心到中心原点距离时,v也必须小于面中心到中心原点距离,并且也需要大于h。
R是台体顶面的球面半径,R=0为平面,R>0为凸球面,R<0为凹球面。

4、中心台面化
数据格式:4,h,r,v,R;
     中心台面化,将切割好的多面体中心台面化,首先将切割好的多面体中心锥面化,h为台面化之前的锥面的顶点距原点的距离,r为锥面侧面的球面半径,r>0为凸球面,当r<0时为凹球面。当球面半径绝对值太小时构不成球面,就转换成平面。
然后再将锥面的角切掉,形成中心台面。v是台面化后台面上底中心点到原点的距离,当h大于面中心到中心原点距离时,v也必须大于面中心到中心原点距离,也需要小于h;当h小于面中心到中心原点距离时,v也必须小于面中心到中心原点距离,并且也需要大于h。
R是台体顶面的球面半径,R=0为平面,R>0为凸球面,R<0为凹球面。

四种面修饰都需要参考没有修饰的多面体的面中心到原点的距离,下面表里是平面模型的数据,凸面需要适当增加,凹球面需要适当减少。
各个预定义多面体面中心到原点距离表:
1:四面体--0.3
2:正方体        --1.0
3:正八面体--0.5
4:正十二面体--0.5
5:正二十面体--0.5
6:截角四面体,正六边形--0.5,正三角形--0.833347037
7:三角化四面体--0.5
8:截半立方体,正方形--0.5,正三角形--0.57735027
9:菱形十二面体--0.5
10:截角立方体,正方形--0.5,正三角形--0.696923425
11:三角化八面体--        0.5
12:截角八面体,正六边形--0.5,正方形--0.577350269
13:四角化六面体--0.5
14:小斜方截半立方体。正方形        --0.5,正三角形0.527821446
15:鸢形二十四面体--0.5
16:大斜方截半立方体,正八边形--0.4129713,正六边形--0.4761599,正方形--0.45106153
17:六角化八面体--0.5
18:扭棱立方体(左斜),正方形面--0.425,正三角形面--0.4513
19:五角二十四面体(左斜--0.5
20:扭棱立方体(右斜),正方形面--0.425,正三角形面--0.4513
21:五角二十四面体(右斜)--0.5
22:截半十二面体,正五边形--0.425325404,正三角形--0.467086179
23:菱形三十面体--0.5
24:截角十二面体,正十边形--0.41925257,正三角形--0.490458188
25:三角化二十面体--0.5
26:截角二十面体,正六边形--0.4574792,正五边形--0.46961681
27:五角化十二面体--0.5
28:小斜方截半十二面体,正五边形--0.46229705,正三角形--0.48299768,正方形0.4742680099},
29:鸢形六十面体--0.5
30:大斜方截半十二面体,正十边形--0.45247209,正六边形--0.48239898,正方形--0.49127832
31:六角化二十面体--0.5
32:扭棱十二面体(左斜),正五边形面--0.462,正三角形面0.4844
33:五角六十面体(左斜)--0.5
34:扭棱十二面体(右斜),正五边形面--0.462,正三角形面0.4844
35:五角六十面体(右斜)--0.5
36:二十二面体,五边形--1.0670601667,正六边形--1.0
37:五六边形92面体        ,六边形--1.0,正六边形--0.998094,正五边形--1.007908
38:五角星正六边形,菱形--1.0,正六边形0.95379
39:四边形,正六边形32面体,四边形--1.0,正六边形--0.860663
40:五边形六边形32面体24个五边形8个正六边形,五边形--1.0,正六边形--0.9356416057163
41:截角三角化四面体,五边形--1.0,正六边形--0.93
42:截角菱形十二面体,六边形--1.0,正方形--1.1
43:截角菱形三十面体 ,六边形--1.0,正五边形--1.02
44:截角三角化八面体, 五边形--1.0,正八边形--0.9
45:截角四角化六面体,五边形--1.0,正六边形--0.96
46:截角鸢形二十四面体,五边形--1.0,正方形--1.0
47:截角六角化八面体,四边形--1.0,正八边形0.95
48:截角五角二十四面体(左斜)六边形--1.0,正方形--1.07
49:截角五角二十四面体(右斜)六边形--1.0,正方形--1.07
50:菱形90面体,宽菱形--0.5,窄菱形--0.509
51:截角三角化二十面体,五边形--1.0,正十边形--0.935
52:截角鸢形六十面体,五边形--1.0,正五边形--0.985
53:截角六角化二十面体,四边形--1.0正十边形0.965
54:截角五角六十面体(左斜),六边形--1.0,正五边形1.01
55:截角五角六十面体(左斜),六边形--1.0,正五边形1.01
56:截角五角化十二面体,五边形--0.5,正六边形--0.499046944
57:小邪五魔方--1.0
58:大邪五魔方1--1.0
59:大邪五魔方2-1.0
60:九芯魔方,五边形--0.5,正方形--0.55
61:截角六棱柱,菱形面 --0.5,梯形面--0.5
62:双五棱台 --0.5
63:截六棱五魔方,六边形--1.21582134,长方形 --1.15425

作者: hubo5563    时间: 2024-4-14 10:53:03

本帖最后由 hubo5563 于 2024-8-2 22:26 编辑


              编排转动序列


             转动序列可以用在初始化序列框里,来初始化魔方,也可以用在待执行序列框里来演示你的动画,执行框里的转动可加或括号和文字说明,动画演示时作为动作说明显示在动画标题下面动画上面,默认以红色显示。可以用命令改变颜色。
              
             转动序列可分段,格式如下:
           {段落说明}步骤;步骤;(步骤;步骤;步骤;)重复数字;步骤;步骤;步骤;[1];步骤;步骤;步骤;&
            {段落说明}步骤;步骤;(步骤;步骤;步骤;)重复数字;步骤;步骤;[1];步骤;步骤;[2];步骤;步骤;&
            {段落说明}步骤;步骤;(步骤;步骤;步骤;)重复数字;步骤;[3];步骤;[3];步骤;步骤;步骤;&
              .........
            {段落说明}步骤;步骤;(步骤;步骤;步骤;)重复数字;步骤;[3];步骤;步骤;[3];步骤;

             转动序列里可以引用自定义公式,方括号内的是引用公式的序号。
            另外,演示过程分段处理,初始化序列同演示步骤格式,也支持自定义公式。
            &号用来分隔每个公式,或每个段落,最后一个不用。
            步骤后的分号是必须的,分号是半角分号,全角的不认。
            缺少分号的步骤将被忽略掉。尤其是右括号前面的步骤必须要有分号,如果缺少分号,不但步骤被忽略掉,而且括号和数字也被忽略掉。

          步骤定义为:
         步骤:前缀转轴名后缀或中括号里面加数字代表公式索引
         前缀:空,或表示一同转动的数字串,可以是12或123,12表示12层同时转动,123表示123层同时转动。子母魔方用M表示中间层。
         转轴名:用大写字母或大写字母串表示层转动的名字,用小写子母或小写字母串表示整体转动的转轴。

         不同魔方的转轴名不同。下面列出常用转动名称:
    层转动的轴名称:
    正四面体转面---"L","R","B","D",                                               
    正四面体转角----"RLD","LRB","LBD","BRD",
    正四面体转棱----"LR","BL","LD","RB","RD","BD",
    正四面体扩展12面-----"LR","LB","LD","RB","RL","RD","BD","BL","BR","DR","DL","DB",

   正方体转面----"U","R","F","L","B","D",
   正方体转角----"UFL","ULB","UBR","URF","DRB","DFR","DLF","DBL",
   正方体转棱----"UL","UB","UR","UF","BR","DR","FR","DF","FL","DL","BL","DB",
   正方体扩展24面----"UL","UB","UR","UF","RU","RB","RD","RF","FU","FR","FD","FL","LU","LF",
                               "LD","LB","BU","BL", "BD","BR","DR","DB","DL","DF",

   五魔方转面----"U","F","L","J","B","R","W","V","Z","Y","X","D",
   五魔方转角----"UBR","URF","UFL","ULJ","UJB","FRW","FWV","FVL","LVZ","LZJ", "JZY","JZB","BZX","BXR","RXW","WXD",
                          "VWD","ZVD","YZD","XYD",
   五魔方转棱----"UR","UF","UL","UJ","UB","FR","FW","FV","FL","LV", "LZ","LJ","JZ","JY","JB","BY","BX","BR","RX","RW",
                          "WX","WD","VW","VD","ZV","ZD","YZ","YD","XY","XD",
   五魔方扩展60面----"UR","UF","UL","UJ","UB","FR","FW","FV","FL","FU", "LF","LV","LZ","LJ",
                               "LU","JL","JZ","JY","JB","JU", "BJ","BY","BX","BR","BU","RB","RX","RW",
                               "RF","RU", "WR","WX","WD","WV","WF","VF","VW","VD","VZ","VL",
                               "ZL","ZV","ZD","ZY","ZJ","YJ","YZ","YD","YX","YB","XB","XY","XD","XW",
                             "XR","DW","DX","DY","DZ","DV",  

    二面体上下轴----"UP","DN",
    二轴魔方-----"L","R",  
    三循环轴----"L","R","U",
    四循环轴----"F","R","B","L",
    五循环轴----"F","R","B","J","L",
    六循环轴----"A","B","C","D","E","F",
    七循环轴----"A","B","C","D","E","F","G",
    八循环轴----"A","B","C","D","E","F","G","H",
    九循环轴----"A","B","C","D","E","F","G","H","I",
    十循环轴----"A","B","C","D","E","F","G","H","I","J",
    十一循环轴----"A","B","C","D","E","F","G","H","I","J","K",
    十二循环轴----"A","B","C","D","E","F","G","H","I","J","K","L",
     
      整体转动的转动名称:
      正四面体整体转动----"l","r","b","d",
      正方体整体转动----"u","r","f","l","b","d",
      正十二面体整体转动----"u","f","l","j","b","r","w","v","z","y","x","d"},
      二面体整体转动----"up","dn","a","b","c","d","e","f","g","h","g","h","i","j","k","l","m","n",
                                  "o","p","q","r"。

      后缀:表示转动步骤的转动位置
      不同魔方由于节点不同所以步骤后缀不同,下面列出常用后缀:

      节点2一般转动---"",    ";",
      节点3一般转动---"",   ";",    "';",
      太阳八面体节点 6----"",  "1;",  ";",  "3;",  "';",  "1';",
       节点 4一般转动----"",  ";",  "2;",  "';",
       太阳魔方节点8----"",  "1;",  ";",  "3;",  "2;",  "'3;",  "';",  "'1;",
       节点5一般转动----"",  ";",  "2;",  "'2;",  "';",
       太阳五魔方节点10----"",  "1;",   ";",   "3;",   "2;",   "5;",   "'2;",   "'3;",   "';",   "'1;",
        正方体魔方转棱有jumble节点6----"",  "1;",  "2;",  ";",  "'2;",  "'1;",
        五魔方转角有jumble节点9----"",  "1;",  "2;",  ";",  "4;",  "'4;",  "';",  "'2;",  "'1;",
        五魔方转棱有jumble节点6----"",  "1;",  "2;",  ";",  "'2;",  "'1;",


        四角化六面体节点5----"",  "'2;",  ";",    "';",  "2;",
        五角二十四面体转面节点 9----"", ";","'4;", "2;","'3;", "3;","'2;","4;", "';",
        鸢形24面体节点7----"",  "'3;",   ";",  "'2;",  "2;",   "';",  "3;",
        大斜五魔方节点 9----"",   ";",  "2;",  "3;",  "4;",  "4';",  "3';",  "2';",  "';",  
        小斜五魔方节点  9----"",  ";",  "2;",  "3;",  "4;",  "4';",  "3';",  "2';",  "';",
        五角六十面体节点9----"",  ";",  "'4;",   "2;",  "'3;",  "3;",  "'2;",  "4;",  "';",
        三角化四面体节点5----"",  "'2;",  ";",    "';",  "2;",

        六角化八面体节点7----"", "'3;",  ";",  "'2;", "2;",   "';",  "3;"
     
        标准2节点----"",  ";",
        标准3节点----"",  ";",  "';",  
        标准4节点----"",  ";",  "2;",  "';",                                                                                                                                                                                                  //18
        标准5节点----"",  ";",  "2;",  "'2;",  "';",
        标准6节点----"",  ";",  "2;",  "3;",  "'2;",  "';",
        标准7节点----"",  ";",  "2;",  "3;",  "'3;",  "'2;",  "';",
        标准8节点----"",  ";",  "2;",  "3;",  "4;",  "'3;",  "'2;",  "';",
        标准9节点----"",  ";",  "2;",  "3;",  "4;",  "'4;",  "'3;",  "'2;",  "';",
        标准10节点----"",  ";",  "2;",  "3;",  "4;",  "5;",  "'4;",  "'3;",  "'2;",  "';",
        标准11节点----"",  ";",  "2;",  "3;",  "4;",  "5;",  "'5;",  "'4;",  "'3;",  "'2;",  "';",
        标准12节点----"",  ";",  "2;",  "3;",  "4;",  "5;",  "6;",  "'5;",  "'4;",  "'3;",  "'2;",  "';",
   
   
       二节点二分角节点4----"",  "1;",  ";",  "'1;",
       二节点三分角节点6----"",  "1;",  "2;",  ";",  "'2;",  "'1;",
       三节点三分角节点9----"",  "1;",  "2;",  ";",  "3;",  "'3;",  "';",  "'2;",  "'1;",  "",
       四节点三分角节点12----"",  "1;",  "3;",  ";",  "4;",  "5;",  "2;",  "'5;",  "'4;",  "';",
                              "'3;",  "'1;",
       五节点三分角节点15----"",  "1;",  "3;",  ";",  "4;",  "5;",  "2;",  "6;",  "'6;",  "'2;",
                              "'5;",  "'4;",  "';",  "'3;",  "'1;",
   
  
         花括号里的是说明性的文字,动画演示时,在动画的上方标题的下方显示花括号中的文字说明。
         可以利用键盘直接在待执行序列里编排转动序列,也可以用鼠标转动左边魔方模型,用F3键输出转动序列,把它复制到待执行序列输入框里来编辑,可以加上花括号里的文字说明。可以一段一段来转动魔方来输入。
         转动序列里自定义公式的使用:
         自定义公式必须用键盘输入,在转动序列里输入中括号,括号里写上自定义公式的序号即可。自定义公式里公式之间必须用半角的和号“&”来分割,第一个公式序号为1,第二个公式序号为2,依次类推。

         在Java助手界面,可以在线编辑转动序列:
         首先,用鼠标按照转动想要的转动,转动左边的魔方模型, 鼠标操作是这样定义的:
         鼠标单击魔方转动轴附近,相应的魔方外层就转动;加按shift键,外层与次外层同时转动;加按Ctrl键外层和次外层和从外数第三层同时转动。

              鼠标左键:逆时针转  

               鼠标右键:顺时针转

              鼠标拖动整体转 ,不改变各面字母符号  

               Alt+鼠标右键整体顺时针转 改变各面字母符号

              Alt+鼠标右键整体逆时针转 改变各面字母符号      

     当魔方不只一层可转时:

               Shift+鼠标右键第一二层顺时针转

               Shift+鼠标左键第一二层逆时针转

               Ctrl+鼠标右键一二三层顺时针转

               Ctrl+鼠标右键一二三层逆时针转

              可以用键盘的退格键倒退,最后的步骤会返回。可以一直用退格键,直到初始状态。

最后,按F3功能键,即可显示你转动的步骤序列。把它复制下来,可以粘贴到,初始化序列,待执行序列,自定义公式输入框里,可以进行编辑。




       魔方在线玩的公式定义和公式使用请参看:

java助手和演示软件升级了,支持在线定义公式

http://bbs.mf8-china.com/forum.p ... 83&fromuid=4618

作者: hubo5563    时间: 2024-4-14 10:59:15

本帖最后由 hubo5563 于 2024-7-16 20:43 编辑

其它参数说明


其它参数是一些Java助手没有给出具体输入框的其它参数。下面一一说明。

1、字体类型参数
fonttype   该参数控制显示字的显示类型
fonttype=0;或不设此参数,显示的是正常字
fonttype=1;显示空心字

2、背景颜色参数
bgcolor   该参数设置背景设,可以将背景设为24位任意色
格式:六位16进制数,hhhhhh;前两位为红色分量,中间两位为绿色分量,后两位为蓝色分量,范围00-ff。
例如:bgcolor=ffffff;     背景为白色
          bgcolor=ff55cc;  背景为淡紫色
          bgcolor=ffffcc;   背景为淡黄色

3、控制条背景颜色参数
butbgcolor该参数设置控制条背景设,可以将背景设为24位任意色
格式:六位16进制数,hhhhhh;前两位为红色分量,中间两位为绿色分量,后两位为蓝色分量,范围00-ff。
butbgcolor=ff55cc;

4、提示字体颜色
hlcolor参数设置,演示时上方显示字体的颜色,格式:六位16进制数,hhhhhh;前两位为红色分量,中间两位为绿色分量,后两位为蓝色分量,范围00-ff。
hlcolor=ffffcc;
设置提示字为淡黄色。

5、窗口上方和控制条下方的背景颜色
bgColor2 该参数设置窗口上方和控制条下方的背景色,可以将背景设为24位任意色



6、调色板颜色重设
本软件采用的魔方颜色是调色板颜色,共设了22个调色板颜色,填色时采用这些颜色。
colors参数可重新定义调色板的实际颜色,每种调色板需要6个字符,字符串里每个字符是0-9,a-f这16个字符之一,6个字符每两位为一组,组成2位16进制数,共3组,第一组为红色分量,第二组为绿色分量,第三组为蓝色分量。
两位16进制最多表示0-255,是一个字节8位,红绿蓝每个颜色分量是8位二进制数,共24位。所有颜色为24为色。
参数里可以最多设置22个调色板颜色值。最多22*6=132位。可以比132少,依次修改0123456789abcdefghijkl代表的颜色的24为颜色。比132少时,只修改前面的调色板,后面的不变。

该参数为空时:
调色板默认颜色为
0-黑       1-白         2-蓝        3-红       4-暗绿
5-紫       6-黄         7-亮绿    8-粉        9-淡黄
a-天蓝    b-橙色     c-灰        d-栗色    e-土色
f-暗青     g-暗紫     h-蓝灰    i-墨绿     j-黄绿
k-淡紫     l-深灰

7、块颜色参数
可以选Java助手里的模式为颜色,此时F9键进入填色模式。在填色模式,你可以改变任何面的任何块的颜色。
然后按CTRL+F7键输出其它参数值,其中里面的Face数字就是相应面的颜色值。这里的颜色值用一个字符串表示,
例如,在没有改变调色板时:
Face1=1c121131d;
表示第1块颜色值是1,为白色
第2块颜色值为c,为灰色,以此类推。

当用colors重新改变调色板颜色后,采用的是新的颜色。

例如:colors=0404047788ff454566;

0号色变为040404,也是接近黑色的,1号色变为7788ff,是一种蓝色,2号颜色为454566,是一种灰色。


8、可以用locked参数来实现:

locked参数在其它参数框里输入即可。格式是一个字符串,一个面对应一个字符,顺序和轴的序号一致。可以在形状模式下,按F9键进入整体显示状态,然后按F4键输出轴信息来确定。
0---主面转动时所有圈内的块跟着转动。
1---主面转动时,只有最里面的小圈内的块不跟转动,其它块跟着转动
2---主面转动时,最里面两个圈内的块不跟着转动,其它块跟着转动
3---主面转动时,从里往外数三个圈内的块不跟着转动,其它块跟着转动
只有这4种状态。
locked
9、修改部分轴的转动节点
Axis该参数修改部分轴的转动节点
逐轴修改的数据格式:Axis=k,{zhou,n,[jiao]};
        k为修改的轴数,大括号里面重复k次               
               zhou为修改的轴号,
               n为修改后的节点数
               jiao为各个停靠角
成组修改的数据格式:Axis=0,k,{m,[zhou],n,[jiao]};
        k为组数,
        m为每组的轴数,
        zhou为修改的轴号,有m个轴号
        n为节点数,
        jiao为停靠角,有n个停靠角。

10、用内部球面切割魔方,把球内切下的块去掉。
hollow=Y;用内部球面切割魔方,把球内切下的块去掉。用来构造空心球面魔方。
不设置就不切割。
11、切割前平移魔方
      这个功能可设计各种魔方的镜面魔方,镜面魔方是轴的中心偏离魔方中心的结果。
数据格式:MoveTo=x,y,z;
      (x,y,z)是移动后魔方外形中心点的坐标,没移动之前魔方外形的中心坐标为(0,0,0,)。
结果是在魔方切割前,将魔方中心从(0,0,0)点平移到(x,y,z)点,然后再切割。
这个参数在魔方助手的其它参数框里输入。

12、切割前转动魔方
      这个功能可设计各种魔方的移棱魔方、类似的鬼魔魔方。
数据格式:Turn=jiao,x,y,z;
      作用是在切割魔方前,以(0,0,0)->(x,y,z)为转动轴,转动jiao度,然后再切割。
这个参数在魔方助手的其它参数框里输入。



作者: hubo5563    时间: 2024-4-14 11:04:26

本帖最后由 hubo5563 于 2024-7-3 20:22 编辑

106种预定切割的实际参数

      球面切割魔方Java助手预定了106种切割方法,可以在Java助手的"预定切割"选择框里选择序号。实际上也是通过像"切割参数"栏里输入的数据格式一样,你把下列列出来的实际参数值直接输入到Java助手里的"切割参数"栏里,效果与从“预定切割”栏里输入序号完全一样。这里给出的表,就是真实切割参数。为的是你设计带曲面的时候作为参考。
因此下面的表是很有用的。

参数格式的详细说明请参看上面五楼。

正方体魔方,可支持八面体,菱形12面体的轴
转面魔方:
1:二阶魔方----1,1,0,1,0.0001,0.0,0;
2:三阶魔方----1,1,0,1,0.333,0.0,0;
3:四阶魔方----1,1,0,2,0.5,0.0,0.0001,0.0,0;
4:五阶魔方----1,1,0,2,0.6,0.0,0.2,0.0,0;

5:六阶魔方----1,1,0,3,0.666,0.0,0.333,0.0,0.0001,0.0,0;
6:七阶魔方----1,1,0,3,0.714285,0.0,0.428571,0.0,0.142857,0.0,0;

转角魔方:
7:转角1魔方----1,1,1,1,0.5680,0.0,0.0,0;
8:转角2魔方----1,1,1,1,0.30,0.0,0.0,0;
9:转角3魔方----1,1,1,1,0.1667,0.0,0.0,0;
10:转角4魔方----1,1,1,1,0.0001,0.0,0.0,0;

转棱魔方:
11:转棱1魔方----1,1,2,1,0.9267,0.0,0;
12:转棱2魔方----1,1,2,1,0.6950,0.0,0;
13:转棱3魔方----1,1,2,1,0.4633,0.0,0;
14:转棱4魔方----1,1,2,1,0.4093,0.0,0;
15:转棱5魔方----1,1,2,1,0.3475,0.0,0;  
16:转棱6魔方----1,1,2,1,0.2701,0.0,0;
17:24板魔方----1,1,2,1,0.0001,0.0,0;

五魔方转轴,可支持二十面体,菱形三十面体的轴

转面五魔方:
18:三阶五魔方----2,1,0,1,0.884,0,0;
19:转面五魔方2----2,1,0,1,0.74,0,0;
20:菊花五魔方----2,1,0,1,0.605,0,0;
21:转面五魔方4----2,1,0,1,0.474,0,0;
22:转面五魔方5----2,1,0,1,0.318,0,0;
23:转面五魔方6----2,1,0,1,0.135,0,0;
24:转面五魔方7---- 2,1,0,1,0.0001,0,0;
25:五阶五魔方----2,1,0,2,1.1050,0.0,0.8500,0.0,0;
26:七阶五魔方----2,1,0,3,1.19,0.0,1.02,0.0,0.85,0.0,0;

转角五魔方:
27:转角五魔方1----2,1,1,1,1.2656,0.0,0;
28:转角五魔方2----2,1,1,1,1.1711,0.0,0;
29:转角五魔方3----2,1,1,1,1.0730,0.0,0;
30:转角五魔方4----2,1,1,1,0.9917,0.0,0;
31:转角五魔方5----2,1,1,1,0.9161,0.0,0;
32:转角五魔方6----2,1,1,1,0.8406,0.0,0;
33:转角五魔方7---- 2,1,1,1,0.7990,0.0,0;
34:转角五魔方8---- 2,1,1,1,0.7556,0.0,0;
35:转角五魔方9---- 2,1,1,1,0.7178,0.0,0;
36:转角五魔方10----2,1,1,1,0.6802,0.0,0;
37:转角五魔方11----2,1,1,1,0.5667,0.0,0;
38:转角五魔方12----2,1,1,1,0.3872,0.0,0;
39:转角五魔方13----2,1,1,1,0.2550,0.0,0;
40:转角五魔方14----2,1,1,1,0.1794,0.0,0;
41:转角五魔方15----2,1,1,1,0.1322,0.0,0;
42:转角五魔方16----2,1,1,1,0.0850,0.0,0;
43:转角五魔方17----2,1,1,1,0.0001,0.0,0;

转棱五魔方:
44:转棱五魔方1----2,1,2,1,1.3234,0.0,0;
45:转棱五魔方2----2,1,2,1,1.2850,0.0,0;
46:转棱五魔方3----2,1,2,1,1.2087,0.0,0;
47:转棱五魔方4----2,1,2,1,1.1485,0.0,0;
48:转棱五魔方5----2,1,2,1,1.1028,0.0,0;
49:转棱五魔方6---- 2,1,2,1,1.0775,0.0,0;
50:转棱五魔方7---- 2,1,2,1,1.0499,0.0,0;
51:转棱五魔方8----2,1,2,1,0.9824,0.0,0;
52:转棱五魔方9----2,1,2,1,0.8823,0.0,0;
53:转棱五魔方10----2,1,2,1,0.8558,0.0,0;
54:转棱五魔方11----2,1,2,1,0.8293,0.0,0;
55:转棱五魔方12----2,1,2,1,0.7942,0.0,0;
56:转棱五魔方13---- 2,1,2,1,0.7588,0.0,0;
57:转棱五魔方14----2,1,2,1,0.7411,0.0,0;
58:转棱五魔方15----2,1,2,1,0.7323,0.0,0;
59:转棱五魔方16----2,1,2,1,0.7120,0.0,0;
60:转棱五魔方17----2,1,2,1,0.6617,0.0,0;
61:转棱五魔方18----2,1,2,1,0.5999,0.0,0;
62:转棱五魔方19----2,1,2,1,0.5558,0.0,0;  
63:转棱五魔方20----2,1,2,1,0.5205,0.0,0;
64:转棱五魔方21----2,1,2,1,0.4941,0.0,0;
65:转棱五魔方22----2,1,2,1,0.4588,0.0,0;
66:转棱五魔方23----2,1,2,1,0.4411,0.0,0;
67:转棱五魔方24----2,1,2,1,0.4110,0.0,0;
68:转棱五魔方25----2,1,2,1,0.3540,0.0,0;
69:转棱五魔方26----2,1,2,1,0.3264,0.0,0;
70:转棱五魔方27----2,1,2,1,0.3000,0.0,0;
71:转棱五魔方28----2,1,2,1,0.2697,0.0,0;
72:转棱五魔方29----2,1,2,1,0.2294,0.0,0;
73:转棱五魔方30----2,1,2,1,0.1941,0.0,0;
74:转棱五魔方31----2,1,2,1,0.1765,0.0,0;
75:转棱五魔方32----2,1,2,1,0.0002,0.0,0;


四面体魔方转轴:
76:三层四面体----0,1,1,2,0.95,0,0.19,0.0,0;
77:四层四面体----0,2,0,1,0.0001,0,0,1,2,1.14,0,0.572,0,0;
78:五层四面体----0,2,0,1,0.114,0,0,1,3,1.254,0,0.798,0,0.342,0,0;

八面体转面转轴:
79:二层八面体---- 1,1,1,1,0.0001,0,0;
80:三层八面体----1,1,1,1,0.328,0,0;
81:四层八面体----1,1,1,2,0.49,0,0.0001,0.0,0;
82:五层八面体----1,1,1,2,0.6,0,0.2,0.0,0;
83:六层八面体----1,1,1,3,0.666,0,0.3333,0.0,0.0001,0,0;
84:七层八面体----1,1,1,3,0.7142,0,0.4285,0.0,0.1428,0,0;


菱形十二面体转面轴:
85:二层菱形十二面体----1,1,2,1,0.0001,0,0;
86:三层菱形十二面体----1,1,2,1,0.4,0,0;
87:四层菱形十二面体----1,1,2,2,0.60,0,0.0005,0,0;
88:五层菱形十二面体----1,1,2,2,0.72,0,0.24,0,0;
89:六层菱形十二面体----1,1,2,3,0.8,0,0.40,0,0.0005,0,0;
90:七层菱形十二面体----1,1,2,3,0.8571,0,0.5142,0.0,0.1714,0,0;

正二十面体转面轴:
91:转面二十面体1---- 2,1,1,1,1.0674,0,0;
92:转面二十面体2----2,1,1,1,1.006,0,0;
93:转面二十面体3---- 2,1,1,1,0.9181,0,0;
94:转面二十面体4----2,1,1,1,0.8266,0,0;
95:转面二十面体5----2,1,1,1,0.7854,0,0;
96:转面二十面体6----2,1,1,1,0.7631,0,0;
97:转面二十面体7----2,1,1,1,0.7464,0,0;
98:转面二十面体8----2,1,1,1,0.7166,0,0;
99:转面二十面体9----2,1,1,1,0.5988,0,0;
100:转面二十面体10---- 2,1,1,1,0.515,0,0;
101:转面二十面体11----2,1,1,1,0.4479,0,0;
102:转面二十面体12----2,1,1,1,0.3807,0,0;
103:转面二十面体13----2,1,1,1,0.3210,0,0;
104:转面二十面体14----2,1,1,1,0.2015,0,0;
105:转面二十面体15----2,1,1,1,0.1418,0,0;  
106:转面二十面体16----2,1,1,1,0.0001,0,0;

作者: hubo5563    时间: 2024-4-14 11:11:44

本帖最后由 hubo5563 于 2024-7-3 20:26 编辑

63种预定魔方外形的实际数据

    球面切割魔方Java助手预定了63种魔方外形,可以在Java助手的"魔方外形"选择框里选择序号。实际上也是通过像"外形参数"栏里输入的数据格式一样,你把下列列出来的实际参数值直接输入到Java助手里的"外形参数"栏里,效果与从“魔方外形”栏里输入序号完全一样。这里给出的表,就是真实魔方外形参数。为的是你设计其它形状时作为参考。特别是有些外形的对偶,只需修改一个数,因此下面的表是很有用的。
参数格式的详细说明请参看上面六楼。
1:四面体----0,0,1,0,0.3;
2:正方体----1,0,1,0,1.0;
3:正八面体----1,1,1,0,0.5;
4:正十二面体----2,0,1,0,0.5;
5:正二十面体----2,1,1,0,0.5;
6:截角四面体----0,0,2,0,0.5,0,1,0.833347037;
7:三角化四面体----0,3,1,0,0.5;
8:截半立方体----1,0,2,0,0.5,1,1,0.57735027;
9:菱形十二面体----1,2,1,0,0.5;
10:截角立方体----1,0,2,0,0.5,1,1,0.696923425;
11:三角化八面体----1,7,1,0,0.5;
12:截角八面体----1,1,2,0,0.5,1,0,0.577350269;
13:四角化六面体----1,3,1,0,0.5;
14:小斜方截半立方体----1,0,3,0,0.5,1,2,0.5,1,1,0.527821446;
15:鸢形二十四面体----1,4,1,0,0.5;
16:大斜方截半立方体----1,0,3,0,0.4129713,1,2,0.4761599,1,1,0.45106153;
17:六角化八面体----1,8,2,0,0.5,1,9,0.5;
18:扭棱立方体(左斜)----1,5,1,1,0.5;
19:五角二十四面体(左斜)----1,5,1,0,0.5;
20:扭棱立方体(右斜)----1,6,1,1,0.5;
21:五角二十四面体(右斜)----1,6,1,0,0.5;
22:截半十二面体----2,0,2,0,0.425325404,2,1,0.467086179;
23:菱形三十面体----2,2,1,0,0.5;
24:截角十二面体----2,0,2,0,0.41925257,2,1,0.490458188;
25:三角化二十面体----2,7,1,0,0.5;
26:截角二十面体----2,1,2,0,0.4574792,2,0,0.46961681;
27:五角化十二面体----2,3,1,0,0.5;
28:小斜方截半十二面体----2,0,3,0,0.46229705,2,1,0.48299768,2,2,0.4742680099;
29:鸢形六十面体----2,4,1,0,0.5;
30:大斜方截半十二面体----2,0,3,0,0.45247209,2,1,0.48239898,2,2,0.49127832;
31:六角化二十面体----2,8,2,0,0.5,2,9,0.5;
32:扭棱十二面体(左斜)----2,5,1,1,0.5;
33:五角六十面体(左斜)----2,5,1,0,0.5;
34:扭棱十二面体(右斜)----2,6,1,1,0.5;
35:五角六十面体(右斜)----2,6,1,0,0.5;
36:二十二面体----0,11,3,0,1.0670601667,0,1,1.0,0,2,1.0;
37:五六边形92面体----2,3,3,0,1.0,2,1,0.998094,2,0,1.007908;
38:五角星正六边形----2,3,2,0,1.0,2,1,0.95379;
39:四边形,正六边形32面体----1,3,2,0,1.0,1,1,0.860663;
40:五边形六边形32面体----1,3,2,0,1.0,1,1,0.9356416057163;
41:截角三角化四面体----0,3,2,0,1.0,0,1,0.93;
42:截角菱形十二面体----1,2,2,0,1.0,1,0,1.1;
43:截角菱形三十面体----2,2,2,0,1.0,2,0,1.02;
44:截角三角化八面体----1,7,2,0,1.0,1,0,0.9;
45:截角四角化六面体----1,3,2,0,1.0,1,1,0.96;
46:截角鸢形二十四面体----1,4,2,0,1.0,1,0,1.0;
47:截角六角化八面体----  1,8,3,0,1.0,1,9,1.0,1,0,0.95;
48:截角五角二十四面体(左斜)----1,5,2,0,1.0,1,0,1.07;
49:截角五角二十四面体(右斜)---- 1,6,2,0,1.0,1,0,1.07;
50:菱形90面体----2,10,2,0,0.5,2,2,0.509;
51:截角三角化二十面体----2,7,2,0,1.0,2,0,0.935;
52:截角鸢形六十面体----2,4,2,0,1.0,2,0,0.985;
53:截角六角化二十面体----2,8,3,0,1.0,2,9,1.0,2,0,0.965;
54:截角五角六十面体(左斜)----2,5,2,0,1.0,2,0,1.01;
55:截角五角六十面体(左斜)----2,6,2,0,1.0,2,0,1.01;
56:截角五角化十二面体----2,3,2,0,0.5,2,1,0.499046944;
57:小邪五魔方1----0,5,1,0,1.0;
58:大邪五魔方1----0,8,1,0,1.0;
59:大邪五魔方2----0,12,1,0,1.0;
60:九芯魔方---- 3,3,3,0.9,0,0.9,0,49.10663,0,0.5,0,90,60,0.55,0,130.89337,0,0.5,0;
61:截三角六棱柱----3,4,3,0.8,0,0.8,0,35.2643896827,0,0.5,0,90,30,0.5,0,90,90,0.5,0,144.735610317245,0,0.5,0;
62:双五棱台----3,2,5,0.5,0,0.5,0,63.4349488,0.0,0.5,0,116.565051,0,0.5,0;
63:截六棱五魔方----6,0,18,0.0000000,0.0000000,-1.0000000,1.21582134,0,0.2763932,-0.8506508,-0.4472136,1.21582134,0,
          -0.7236068,-0.5257311,-0.4472136,1.21582134,0,-0.7236068,0.5257311,-0.4472136,1.21582134,0,0.2763932,
          0.8506508,-0.4472136,1.21582134,0,0.8944272,-0.0000000,-0.4472136,1.21582134,0,0.7236068,-0.5257311,
          0.4472136,1.21582134,0,-0.2763932,-0.8506508,0.4472136,1.21582134,0,-0.8944272,0.0000000,0.4472136,
          1.21582134,0,-0.2763932,0.8506508,0.4472136,1.21582134,0,0.7236068,0.5257311,0.4472136,1.21582134,0,
          -0.0000000,0.0000000,1.0000000,1.21582134,0,0.5257311,0.0000000,-0.8506508,1.15425,0,-0.0000000,
          -1.0000000,0.0000000,1.15425,0,-0.8506508,-0.0000000,-0.5257311,1.15425,0,0.0000000,1.0000000,
          0.0000000,1.15425,0,0.8506508,-0.0000000,0.5257311,1.15425,0,-0.5257311,0.0000000,0.8506508,1.15425,0;
       

作者: hubo5563    时间: 2024-4-14 11:17:23

本帖最后由 hubo5563 于 2024-7-10 21:56 编辑

特殊魔方的设计实例


1:空心魔方和去块魔方的实例
     空心魔方和去块魔方是先设计好魔方,然后用“自定去除块”栏里的参数,将不要的块去掉。关键是怎么确定去掉的块的族号。
在“模式”的“形状”  模式下,按三次F9键,进入块簇显示模式,然后按F6键或F5键逐个显示簇,找到要除去的块,再按F3显示
当前显示块簇号,把它记录下来,再按F2键,重复该过程,可以找到所有要去掉的块簇。
     “自定去除块”栏里的数据格式是:k,c,c,...c;
其中k是要去掉簇的个数,后面跟这k个簇号。这个栏的参数对应的是小应用程序的Remove参数。

参考魔方
唯棱五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 96&fromuid=4618
空心五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 97&fromuid=4618

2:镜面魔方的实例
镜面魔方是轴的中心偏离魔方中心的结果,实现的方法是设置参数MoveTo,数据格式:
MoveTo=x,y,z;
结果是在魔方切割前,将魔方中心移动到(x,y,z)点,然后再切割。
这个参数在魔方助手的其它参数框里输入。
参考魔方
镜面五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 98&fromuid=4618
镜面八面体魔方在线玩
http://bbs.mf8-china.com/forum.p ... 99&fromuid=4618



3:魔中魔魔方的实例
魔中魔魔方的设计请看八楼:魔中魔魔方的设计

菱形十二面体魔中魔在线玩
http://bbs.mf8-china.com/forum.p ... 64&fromuid=4618
疯狂窗花I在线玩
http://bbs.mf8-china.com/forum.p ... 00&fromuid=4618
三阶双圈魔中魔魔方在线玩
http://bbs.mf8-china.com/forum.p ... 06&fromuid=4618

三圈魔中魔五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 07&fromuid=4618


4:太阳魔方的实例
      请参看九楼:华丽魔方的设计和太阳花魔方的设计
太阳花魔方在线玩
http://bbs.mf8-china.com/forum.p ... 81&fromuid=4618

太阳花截角八面体魔方在线玩
http://bbs.mf8-china.com/forum.p ... 57&fromuid=4618

曲线切割太阳花五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 08&fromuid=4618

5:太阳魔中魔魔方的实例
      请参看九楼:华丽魔方的设计和太阳花魔方的设计和八楼:魔中魔魔方的设计
太阳花魔中魔魔方在线玩
http://bbs.mf8-china.com/forum.p ... 04&fromuid=4618

6:华丽魔方的实例
       请参看九楼:华丽魔方的设计和太阳花魔方的设计

16面体华丽魔方在线玩
http://bbs.mf8-china.com/forum.p ... 15&fromuid=4618
截角六角化八面体华丽魔方在线玩
http://bbs.mf8-china.com/forum.p ... 24&fromuid=4618

7:华丽魔中魔魔方的实例
      请参看九楼:华丽魔方的设计和太阳花魔方的设计和八楼:魔中魔魔方的设计
8:子母魔方的实例
       实现主要是切割参数里的sx参数。
       请参看五楼:切割参数的详细说明

45度混元3子3母子母魔方在线玩
http://bbs.mf8-china.com/forum.p ... 14&fromuid=4618

9:子母魔方解绑的实例

截半立方体子4母三子母魔方在线玩
http://bbs.mf8-china.com/forum.p ... 78&fromuid=4618

子3母3二代在线玩
http://bbs.mf8-china.com/forum.p ... 26&fromuid=4618
子三母四子母魔方在线玩
http://bbs.mf8-china.com/forum.p ... 18&fromuid=4618
子四母三的子母魔方在线玩
http://bbs.mf8-china.com/forum.p ... 92&fromuid=4618


10:辅助层魔方的实例

100001五层主辅魔方在线玩
http://bbs.mf8-china.com/forum.p ... 23&fromuid=4618

11:鬼魔魔方的实例

鬼魔魔方在线玩
http://bbs.mf8-china.com/forum.p ... 31&fromuid=4618

12:捆绑魔方的实例

捆绑魔方的实现是自定切割序列切割的,一边转动一边切割的方法,把不需切割的块转到其它地方,需要切割的块放到转动切割线的地方通过转动即可保留捆绑的块,又可以将需要切割的块切开。一边查看一边设计自定义切割序列就可以设计出想要的捆绑魔方。

Bicube魔方在线玩
http://bbs.mf8-china.com/forum.p ... 68&fromuid=4618

固定白面、亮绿、淡黄三个面复原五魔方
http://bbs.mf8-china.com/forum.p ... 43&fromuid=4618

百慕大火星号五魔方是由曲线切割的太阳花五魔方捆绑成的。
火星号百慕大五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 09&fromuid=4618

13:空心球魔方的实例

空心球魔方在线玩
http://bbs.mf8-china.com/forum.p ... 62&fromuid=4618

空心球转面五魔方6在线玩
http://bbs.mf8-china.com/forum.p ... 10&fromuid=4618

绣球魔方在线玩
http://bbs.mf8-china.com/forum.p ... 11&fromuid=4618

30叶绣球魔方在线玩
http://bbs.mf8-china.com/forum.p ... 12&fromuid=4618

14:铜币魔方的实例

正方体铜币魔方在线玩
http://bbs.mf8-china.com/forum.p ... 61&fromuid=4618
铜币魔方0001在线玩
http://bbs.mf8-china.com/forum.p ... 59&fromuid=4618


15:移棱魔方的实例
移棱魔方是正常魔方在切割前绕Z轴转半个节点角度实现的。

移棱魔方在线玩
http://bbs.mf8-china.com/forum.p ... 01&fromuid=4618
移棱五魔方001在线玩
http://bbs.mf8-china.com/forum.p ... 02&fromuid=4618


16:解绑Jumble魔方实例

花瓣直升机II魔方在线玩
http://bbs.mf8-china.com/forum.p ... 41&fromuid=4618


菱形十二面体对切解绑001魔方在线玩
http://bbs.mf8-china.com/forum.p ... 74&fromuid=4618

三阶子母五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 33&fromuid=4618

水晶子母五魔方在线玩
http://bbs.mf8-china.com/forum.p ... 63&fromuid=4618

转角五魔方12解绑001在线玩
http://bbs.mf8-china.com/forum.p ... 69&fromuid=4618

转棱五魔方8解绑01魔方在线玩
http://bbs.mf8-china.com/forum.p ... 76&fromuid=4618

五阶花瓣直升机加强版在线玩
http://bbs.mf8-china.com/forum.p ... 75&fromuid=4618

解绑小斜五魔方001在线玩
http://bbs.mf8-china.com/forum.p ... 67&fromuid=4618

鸢形24面体解绑001魔方在线玩
http://bbs.mf8-china.com/forum.p ... 65&fromuid=4618

九芯魔方在线玩
http://bbs.mf8-china.com/forum.p ... 15&fromuid=4618


17:Bram魔方的实例

一个Bram魔方在线玩
http://bbs.mf8-china.com/forum.p ... 60&fromuid=4618

Bram443002魔方在线玩
http://bbs.mf8-china.com/forum.p ... 61&fromuid=4618

Bram554(001)魔方在线玩
http://bbs.mf8-china.com/forum.p ... 70&fromuid=4618

Bram444-001魔方在线玩
http://bbs.mf8-china.com/forum.p ... 71&fromuid=4618


18:带面修饰魔方的实例

复合四面体魔方001在线玩
http://bbs.mf8-china.com/forum.p ... 86&fromuid=4618


复合正方体八面体魔方1在线玩
http://bbs.mf8-china.com/forum.p ... 91&fromuid=4618

亚历山大魔星在线玩
http://bbs.mf8-china.com/forum.p ... 60&fromuid=4618

水晶台面五魔方001在线玩
http://bbs.mf8-china.com/forum.p ... 84&fromuid=4618

锥面化正二十面体魔方001在线玩
http://bbs.mf8-china.com/forum.p ... 87&fromuid=4618

带修饰的五魔方003在线玩
http://bbs.mf8-china.com/forum.p ... 90&fromuid=4618

菱形十二面体锥面化5阶魔方在线玩
http://bbs.mf8-china.com/forum.p ... 93&fromuid=4618


19:康乃请魔方的实例

康乃馨魔方在线玩
http://bbs.mf8-china.com/forum.p ... 62&fromuid=4618

20:纺锤魔方的实例

作者: 牧马姑娘    时间: 2024-4-14 17:03:41

学习了,谢谢

作者: Fenz    时间: 2024-4-14 22:39:26

我是没折腾魔方好几年了,回过头回来这里,发现胡老师还在活跃,而且软件也越来越强大了。支持。
作者: hubo5563    时间: 2024-4-15 08:14:45

Fenz 发表于 2024-4-14 22:39
我是没折腾魔方好几年了,回过头回来这里,发现胡老师还在活跃,而且软件也越来越强大了。支持。

你做的在线魔方很好,很有特点。尤其是跨平台都能用,在手机上也能玩你设计的魔方,很好。采用的新技术我还没接触过呢。有心学一点新东西,但精力不够了。

作者: Fenz    时间: 2024-4-15 22:41:36

hubo5563 发表于 2024-4-15 08:14
你做的在线魔方很好,很有特点。尤其是跨平台都能用,在手机上也能玩你设计的魔方,很好。采用的新技术我 ...

我是借了新技术的东风,但是代码基础还远远不够,还不能像胡老师的作品一样实现强大的自定义功能,开发魔方也还太慢。
最近琢磨着从代码底层重构一遍,做好面向对象和分层(当时写这个程序时我还缺乏这些程序设计意识)。而且我最近开始继续更新魔方了,还搞定了 little chop 这个硬骨头。胡老师有空可以玩玩。

胡老师如果想做跨平台的魔方程序,可以尝试了解一下 three.js: https://threejs.org 封装得很棒,把难点技术细节都封装了,我们只要处理些 polygon、xyz、矩阵、四元数之类的就行。而且老师有多年的 java 功底,javascript 也只会比 java 简单。还是可以试试的。
作者: hubo5563    时间: 2024-4-20 16:57:02

Fenz 发表于 2024-4-15 22:41
我是借了新技术的东风,但是代码基础还远远不够,还不能像胡老师的作品一样实现强大的自定义功能,开发魔 ...

我买了一本Three,js开发指南,还没看呢。
作者: 谢老师    时间: 2024-4-21 13:16:42

非常的强大……
作者: Fenz    时间: 2024-4-29 11:06:03

hubo5563 发表于 2024-4-20 16:57
我买了一本Three,js开发指南,还没看呢。

网上也有很多好资料,比如官方出的这个
https://discoverthreejs.com/book/

期待胡老师的新作品。

我也得加油,要去实现像您这种强大的自定义功能
作者: hubo5563    时间: 2024-4-29 14:14:00

本帖最后由 hubo5563 于 2024-4-29 14:17 编辑
Fenz 发表于 2024-4-29 11:06
网上也有很多好资料,比如官方出的这个
https://discoverthreejs.com/book/


我还没有系统学习呢,现在主要完善一下编好的程序。完成它的说明。
我浏览了一下网站,不错。
你的拓扑魔方实现的很好。
作者: Fenz    时间: 2024-5-2 09:54:37

hubo5563 发表于 2024-4-29 14:14
我还没有系统学习呢,现在主要完善一下编好的程序。完成它的说明。
我浏览了一下网站,不错。
你的拓 ...

我的程序现在一堆冗余代码,弄新魔方就只能复制一些代码,再把关键的坐标和矩阵改改。然后还得每个都花不少精力调错。还处于比较原始的状态。新的思路有了,但工程量不小,所以只能一边在老架子上颤颤巍巍加魔方,一边去搞新框架。
我也是精力不够分配,一方面还有好几个魔方有了想法还没去实现;另一方面,每个百慕大有很多种面的组合,我都只取了其一二,还要扩充;还有做了键盘操控,也还只应用在二阶三阶立方体。四处都是待完善的东西。

胡老师的程序比我的庞大不少,完善起来也一定耗费精力不少吧。而且功能如此强大了,写说明也工作量不小。
作者: hubo5563    时间: 2024-5-2 13:01:15

Fenz 发表于 2024-5-2 09:54
我的程序现在一堆冗余代码,弄新魔方就只能复制一些代码,再把关键的坐标和矩阵改改。然后还得每个都花不 ...

是的,我今天还修改了一些。原来的魔方程序最多6000行,一般都是3000行代码,这个已经达到16700多行了。
还有一处知道有缺陷,还没修改呢。就是原来程序都假定一个面最少3边,所以遇到两个边的面处理不了,就出错了。要想改动能支持2个边的面,就要改动很多程序,一直也没敢动呢,太复杂。这就导致像铜币魔方就做不出来。
作者: Fenz    时间: 2024-5-4 22:54:56

hubo5563 发表于 2024-5-2 13:01
是的,我今天还修改了一些。原来的魔方程序最多6000行,一般都是3000行代码,这个已经达到16700多行了。
...

两条弧线组成的面吗,是不是可以故意切一刀,做成两个面,这样每个面就有三条边了。或者做成三条边,其中一条短到肉眼不可查。
作者: hubo5563    时间: 2024-5-5 07:58:12

Fenz 发表于 2024-5-4 22:54
两条弧线组成的面吗,是不是可以故意切一刀,做成两个面,这样每个面就有三条边了。或者做成三条边,其中 ...

是的,这样的面。不是简单的。这个我也是这样考虑的,关键是还有其它牵涉的问题,一下也解决不了。例如,一刀切下,正常情况是一分为二,里面一块外面一块,球面切割不是凸体,有可能一刀切下里面一块,外面几块的情况,多边形面也有这样的情况,怎样组织这些碎片,哪些属于那块立体,都需要算法判断。再说,原来的数据结构不支持这些,需要修改数据结构。编程量还不少呢。不是改动少量代码能解决的。我想统一把这些问题都解决。已经编了一些程序了,不想再在这里修修补补做工作了。
作者: Fenz    时间: 2024-5-5 14:40:11

hubo5563 发表于 2024-5-5 07:58
是的,这样的面。不是简单的。这个我也是这样考虑的,关键是还有其它牵涉的问题,一下也解决不了。例如, ...

也是,有时候老程序作为积累经验之用,新起炉灶在源头上避免问题也不错。我也有这么个规划,不过工程量大,需要慢慢来。不过许多想法等不及,还是在老架构上先弄着。我这次又更新了几个有意思的魔方。百慕大的 Emax 最高到 7.5 了。
作者: xwfh2000    时间: 2024-9-10 15:21:31

关于二面体对称群的切割参数(精简数据结构),有疑问。
我用的外形是:3,0,6,1,1,0.5//六棱柱外形

用的切割参数是:3,0,6,1,0.25,0,1,0,5
最终效果为:外形正确,但上下底只能转120度。侧面切割的两个参数u,r似乎参数位置颠倒?
另外我想切出上下底多层,但这组参数提示错误:3,0,6,2,0.1,0,0.25,0,1,0,5
想切出侧面多层,这组参数却没有提示错误却也没有显示侧面切割:3,0,6,1,0.25,0,2,0,5,-0.3,4
可能是我理解有误?胡老师有空的话望赐教
作者: hubo5563    时间: 2024-9-10 19:44:21

本帖最后由 hubo5563 于 2024-9-10 19:46 编辑
xwfh2000 发表于 2024-9-10 15:21
关于二面体对称群的切割参数(精简数据结构),有疑问。
我用的外形是:3,0,6,1,1,0.5//六棱柱外形


原来停靠角度是预定的,最近重新编写了停靠角度程序,使其适应各种轴,都是自动计算的,由于调试不周到,影响到了这里。找到毛病了,已经改好了。等老大更新软件就好了。另外对切时切割深度不要用0,用0.0001.否则无法判断曲面的方向。
作者: xwfh2000    时间: 2024-9-11 14:28:02

hubo5563 发表于 2024-9-10 19:44
原来停靠角度是预定的,最近重新编写了停靠角度程序,使其适应各种轴,都是自动计算的,由于调试不周到 ...

我对侧面切割的对齐深度的u、r参数还有疑问。
还拿这个这个举例 3,0,6,1,0.25,0,1,u,0.3
u这个参数为正数时,设置为1.5或更大的数字才能正常切割,数字越大切割也接近平面;设置为负数时数字越小越接近平面。(其实就是绝对值越大切割面越接近平面)看起不像是在设置切割深度,倒像是设置切割半径。
最后一个参数r我设的是0.3,但似乎设成别的值结果也没改变。
作者: hubo5563    时间: 2024-9-11 16:33:22

本帖最后由 hubo5563 于 2024-9-11 16:46 编辑
xwfh2000 发表于 2024-9-11 14:28
我对侧面切割的对齐深度的u、r参数还有疑问。
还拿这个这个举例 3,0,6,1,0.25,0,1,u,0.3
u这个参数为正 ...


       u的值是曲面与轴的交点到坐标原点的距离,应该大于0,不要取负值。最小0.0001,也不能取0。
半径是球面的半径,正负号表示凸球面还是凹球面。为正时球心在坐标原点方向,为负时球心在曲面外侧方向。
不管你构造外形时参数值多么大,最后在切割前,我做了放缩处理,外形物体最远点距中心始终保持在1.7。
因此,u值大于一定时,切割面切不到物体。另外,我的切割程序还不完善,球面半径太小会出现错误。切割程序是基于棱实现的,切割面如果不与棱相交只与面相交是不会有结果的。
      程序还有一处始终也没有解决办法,为此我已经重新编了六次程序了,最终也没有解决问题。一个圆被切割面切成2段弧,怎么判断取优弧还是取劣弧看似简单,一直没有好的办法处理正确。最后,干脆取劣弧就不判断了,这样导致切割球面半径太小时会出现错误结果。
      显示时经常出现黑弧面,就是这个问题导致的。
作者: xwfh2000    时间: 2024-9-12 10:33:03

hubo5563 发表于 2024-9-11 16:33
u的值是曲面与轴的交点到坐标原点的距离,应该大于0,不要取负值。最小0.0001,也不能取0。
半 ...

多谢老师的说明,顺利切出了多层多阶N棱柱,终于可以模拟玩了,比其他软件的切割更加自由。之前自己摸索半天也没搞清楚……惭愧
另外老大更新的也够快,如今六棱柱也可以正常旋转60°了。
之后会尝试切出一些其他参数的,有不明白还请老师指教。
最后感谢老师的辛勤付出,让我们大家可以玩上现实中舍不得买、甚至现实中并不存在的魔方。




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2