schuma 发表于 2012-5-9 07:56:32

Twisty Star JAVA模拟器 (五个四面体的组合)

大家好,


我一直很喜欢“五个四面体的组合”[http://en.wikipedia.org/wiki/Compound_of_five_tetrahedra]这个几何形体。我大一的时候还用尺规作图很仔细的在小本本上画过这个东西。它和正十二面体有密切的联系,它有互为镜像的两个版本,它的样子也挺好看的。总之我很喜欢这个东西。


不过至今我还没见过基于这个形状的魔方。最近受到Leslie Le的SuperStar的鼓励,我打算写个Java模拟器。这也是我学写JavaApplet的好机会。现在写好了,打开这个网址就行了:

[http://people.bu.edu/nanma/TwistyStar/TwistyStar.html]


如果你看不到的话,很可能要更新Java运行环境(JRE)。我管它叫Twisty Star (拧巴星),既因为它是个魔方所以可以拧,也因为它的形状看起来比较拧巴。下面是还原状态和一个打乱状态的截图:


它由五个正四面体构成,这五个四面体互相交错在一起。它的二十个顶点就是正十二面体的顶点。五个四面体很自然的被涂上了五种颜色。

它可以围绕二十个顶点旋转,是转角魔方。因为切面刚好在四面体的面的上方,与面平行,所以说它是转面魔方也有道理。换种说法的话,这个几何形体的对偶就是它的镜像。所以它基本上是自己和自己对偶的。所以它的顶点和面有一一对应的关系。所以它既是转角也是转面魔方就好理解了。和那些正多面体魔方比较的话,它属于转面二十面体那一类的。

在Java模拟器里,鼠标悬停在它上面时,可以拧的那个顶点用一个小圈标出了,旋转的区域也用高亮表示。虽然有这些辅助效果,还是很难观察它到底是怎么转的。有时候,在就差一步就还原的状态下,我看来看去也不知道怎么把它还原。我还没从正式的打乱状态开始把它还原过。在这种配色下,我猜有不止一种还原态。也就是说,只交换红色四面体和蓝色四面体,应该是可行的。

各位制作魔方的大师们,你们觉得把这个东西做出实物来有希望么?它挺好看的,而且不是太难解,应该会有不少人喜欢吧。至少我想要一个!

我想感谢胡波老师。要不是他编写的那一系列Java模拟器,我也不会想要编这个东西的。希望我以后能像他似的,多为论坛做贡献。

如果大家看见有什么bug就告诉我。已知的一个问题是遮挡关系处理的不太好。有的线条应该被挡住的,却背画出来了。我以后研究研究更复杂的几何算法来处理这个事吧。

-- schuma

[ 本帖最后由 schuma 于 2012-5-9 08:00 编辑 ]

xwfh2000 发表于 2012-5-9 08:04:09

这个很有创意,schuma大师从解魔方达人开始向全能转化了,支持!

魔嗜 发表于 2012-5-9 09:05:30

很漂亮啊,支持一下……

Cielo 发表于 2012-5-9 09:39:19

支持,好难的魔方mf14

大烟头 发表于 2012-5-9 10:12:00

魔方可分为形变类与非形变类,非形变类的魔方血统更纯正,零件统一便于量产。

这拧巴星很有创意,外观虽然有点吓人,但却属非形变类魔方,这个很难得。

初步分析:20轴魔方,有3个簇,其中一个簇有20个块,另两个簇有60个块

schuma 发表于 2012-5-9 10:13:24

原帖由 大烟头 于 2012-5-9 10:12 发表 http://bbs.mf8-china.com/images/common/back.gif
这拧巴星很有创意,外观虽然有点吓人,但却属非形变类魔方,这个很难得。

多谢。这个东西外观很新奇,不过实质是很传统的。

sokoban 发表于 2012-5-9 10:13:59

厉害!发了一条微博。

3D图形都是自己计算显示的吗?还是有什么类?

[ 本帖最后由 sokoban 于 2012-5-9 10:16 编辑 ]

schuma 发表于 2012-5-9 10:19:05

回复 7# 的帖子

基本都是自己计算的吧。画图方面基本就靠 drawPolygon 来画二位多边形。鼠标拖动带来的三维旋转也是自己算的。就是因为方法比较基本,所以画图效果有瑕疵。不知道胡波老师用了哪些函数啊。

大烟头 发表于 2012-5-9 10:22:27

20轴魔方会出现混乱旋转,这时会形变,传统旋转情况下是不会形变的

schuma 发表于 2012-5-9 10:27:21

原帖由 大烟头 于 2012-5-9 10:22 发表 http://bbs.mf8-china.com/images/common/back.gif
20轴魔方会出现混乱旋转,这时会形变,转统旋转情况下是不会形变的
是啊,我知道这个事情,转面二十面体有这个情况。如果只做120度旋转那就不会形变。不过转到别的角度,能不能继续转其他的轴,是不是得做实物来才好最后判定啊?
页: [1] 2 3 4
查看完整版本: Twisty Star JAVA模拟器 (五个四面体的组合)