魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 4892|回复: 34
打印 上一主题 下一主题

[资源] 球面切割魔方Java助手说明书 [复制链接]

Rank: 8Rank: 8

积分
9581
帖子
3769
精华
81
UID
4618
性别

论坛建设奖 十年元老

跳转到指定楼层
1#
发表于 2024-4-14 08:42:33 |只看该作者 |正序浏览
本帖最后由 hubo5563 于 2025-2-12 10:03 编辑

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


胡波系列java助手使用说明(2011年10月14日修改)
http://www.mf8-china.com/forum.php?mod=viewthread&tid=72636
java助手和演示软件升级了,支持在线定义公式
http://www.mf8-china.com/forum.php?mod=viewthread&tid=88583

怎样在电脑上显示魔方吧里的Java动画
http://www.mf8-china.com/forum.php?mod=viewthread&tid=117876
教程(01)java动画基本操作
http://www.mf8-china.com/forum.php?mod=viewthread&tid=117878
教程(02)怎样在魔方吧里发Java动画
http://www.mf8-china.com/forum.php?mod=viewthread&tid=117879
教程(3)曲线切割的百慕大五魔方设计
http://www.mf8-china.com/forum.php?mod=viewthread&tid=117881
教程(04)利用转动序列的换位子寻找公式
http://www.mf8-china.com/forum.php?mod=viewthread&tid=117889
教程(05)利用Java助手找公式
http://www.mf8-china.com/forum.php?mod=viewthread&tid=117891

这里是球面切割魔方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)

已有 2 人评分经验 收起 理由
谢老师 + 20 很给力!
cube_master + 20 赞一个!

总评分: 经验 + 40   查看全部评分

Rank: 2

积分
354
帖子
656
精华
1
UID
112
性别

十四年元老 十年元老 十二年元老 十八年元老 十六年元老 二十年元老

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

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

使用道具 举报

Rank: 8Rank: 8

积分
9581
帖子
3769
精华
81
UID
4618
性别

论坛建设奖 十年元老

34#
发表于 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段弧,怎么判断取优弧还是取劣弧看似简单,一直没有好的办法处理正确。最后,干脆取劣弧就不判断了,这样导致切割球面半径太小时会出现错误结果。
      显示时经常出现黑弧面,就是这个问题导致的。

使用道具 举报

Rank: 2

积分
354
帖子
656
精华
1
UID
112
性别

十四年元老 十年元老 十二年元老 十八年元老 十六年元老 二十年元老

33#
发表于 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,但似乎设成别的值结果也没改变。

使用道具 举报

Rank: 8Rank: 8

积分
9581
帖子
3769
精华
81
UID
4618
性别

论坛建设奖 十年元老

32#
发表于 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.否则无法判断曲面的方向。

使用道具 举报

Rank: 2

积分
354
帖子
656
精华
1
UID
112
性别

十四年元老 十年元老 十二年元老 十八年元老 十六年元老 二十年元老

31#
发表于 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
可能是我理解有误?胡老师有空的话望赐教

使用道具 举报

银魔

魔方思者

Rank: 7Rank: 7Rank: 7

积分
3010
帖子
1832
精华
6
UID
102191
性别
保密
兴趣爱好
理论
结构
破解

四年元老

30#
发表于 2024-5-5 14:40:11 |只看该作者
hubo5563 发表于 2024-5-5 07:58
是的,这样的面。不是简单的。这个我也是这样考虑的,关键是还有其它牵涉的问题,一下也解决不了。例如, ...

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

使用道具 举报

Rank: 8Rank: 8

积分
9581
帖子
3769
精华
81
UID
4618
性别

论坛建设奖 十年元老

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

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

使用道具 举报

银魔

魔方思者

Rank: 7Rank: 7Rank: 7

积分
3010
帖子
1832
精华
6
UID
102191
性别
保密
兴趣爱好
理论
结构
破解

四年元老

28#
发表于 2024-5-4 22:54:56 |只看该作者
hubo5563 发表于 2024-5-2 13:01
是的,我今天还修改了一些。原来的魔方程序最多6000行,一般都是3000行代码,这个已经达到16700多行了。
...

两条弧线组成的面吗,是不是可以故意切一刀,做成两个面,这样每个面就有三条边了。或者做成三条边,其中一条短到肉眼不可查。

使用道具 举报

Rank: 8Rank: 8

积分
9581
帖子
3769
精华
81
UID
4618
性别

论坛建设奖 十年元老

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2025-5-20 11:56

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部