搜索
查看: 348|回复: 3

[其他] 三阶魔方公式转动画工具

  [复制链接]

170

主题

2505

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13758
发表于 2018-7-10 18:23:09 | 显示全部楼层 |阅读模式
cube.png
import gdip.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="三阶魔方公式转动画工具";right=915;bottom=734;bgcolor=16777215;parent=...)
winform.add(
editFace={cls=
"edit";text="111111111222222222333333333444444444555555555666666666";left=103;top=702;right=502;bottom=731;db=1;dl=1;dr=1;edge=1;multiline=1;z=9};
editInitMove={cls=
"edit";left=103;top=626;right=733;bottom=655;db=1;dl=1;dr=1;edge=1;multiline=1;z=7};
editLayerByLayer={cls=
"edit";left=226;top=542;right=495;bottom=567;edge=1;z=17};
editMove={cls=
"edit";text="R' U' R U' R' U'2 R y2 F U F' U F U2 F'";left=21;top=571;right=888;bottom=620;db=1;dl=1;dr=1;edge=1;multiline=1;z=4};
editSpeed={cls=
"edit";text="1";left=609;top=673;right=642;bottom=699;db=1;dr=1;edge=1;z=1};
flashBox={cls=
"custom";left=-82;top=-2;right=647;bottom=533;clip=1;db=1;dl=1;dr=1;dt=1;edge=1;z=3};
plusInit={cls=
"plus";text='\uF079 随机打乱';left=748;top=623;right=857;bottom=661;db=1;dr=1;font=LOGFONT(name='FontAwesome';h=-16);notify=1;z=16};
plusStart={cls=
"plus";text='\uF2B8 重新开始';left=661;top=505;right=879;bottom=559;db=1;dr=1;font=LOGFONT(name='FontAwesome';h=-29);notify=1;z=15};
spinSpeed={cls=
"spin";left=644;top=672;right=664;bottom=699;db=1;dr=1;z=14};
static={cls=
"static";text="魔方演示动作公式:";left=25;top=547;right=160;bottom=569;db=1;dl=1;transparent=1;z=5};
static2={cls=
"static";text="预备动作公式:";left=2;top=631;right=95;bottom=653;align="right";db=1;dl=1;transparent=1;z=6};
static3={cls=
"static";text="贴片颜色:";left=41;top=704;right=95;bottom=726;align="right";db=1;dl=1;transparent=1;z=8};
static4={cls=
"static";text="0-灰,1-蓝,2-橙,3-绿,4-红,5-白,6-黄,顺序LBRFDU";left=525;top=703;right=870;bottom=718;db=1;dr=1;transparent=1;z=10};
static5={cls=
"static";text="显示镜像距离:";left=2;top=671;right=95;bottom=693;align="right";db=1;dl=1;transparent=1;z=12};
static6={cls=
"static";text="转动速度:";left=504;top=673;right=597;bottom=695;align="right";db=1;dr=1;transparent=1;z=13};
staticWb={cls=
"static";left=559;top=-1;right=880;bottom=499;clip=1;db=1;dr=1;dt=1;z=2};
trackbarMirror={cls=
"trackbar";left=109;top=658;right=518;bottom=688;bgcolor=16777215;db=1;dl=1;dr=1;max=100;min=0;z=11}
)
/*}}*/

winform.trackbarMirror.setRange(0,100);
winform.spinSpeed.buddy = winform.editSpeed;
winform.spinSpeed.setRange(1,10);

import com.flash;
var flash = com.flash( winform.flashBox );  

import string.conv;
start =
function(){
   
var initmove = string.conv.fromWide( winform.editInitMove.text );
   
   
//这个相当于在URL后面写参数
    flash.parameters ={
        face=winform.editFace.text;
        initmove = #initmove ? initmove :
null;
        move = string.replace( string.conv.fromWide( winform.editMove.text ),
"\n","\\n");
        speed = winform.spinSpeed.pos;
        mirror = winform.trackbarMirror.pos;
    }
   
   
//打开swf文件
    flash.movie = "http://www.rubik.com.cn/cube3.swf"
}

start()
winform.plusStart.skin(
    color = {
        hover = 0xFFFF0000;
        active = 0xFF00FF00;
    }
)
winform.plusStart.oncommand =
function(id,event){
    flash.movie =
"cube3-reload.swf";
    start()
}

import web.form;
var wb = web.form(winform.staticWb);
wb.html =
/**
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body style="font-size:10.5pt">
<span style="font-size:10.5pt">三阶魔方公式(基于HarrisENG)说明:</span><br>
<font color=red>F(Front)</font> = 前面 <font color=red>B(Back)</font> = 后面<br>
<font color=red>U(Up)</font> = 上面 <font color=red>D(Down)</font> = 下面<br>
<font color=red>L(Left)</font> = 左面 <font color=red>R(Right)</font> = 右面<br>
<span style="font-size:10.5pt;color:green;">单字母表示顺时针转90度,带'表示逆时针转,带2表示转180度。 注意数值必须写在字母以及'后面</span>
<br><br>
例如:<br>
L, B, R, F, D, U, L', B', R', F', D', U', --单层转<br>      
l, b, r, f, d, u, l', b', r', f', d', u', --双层转<br>
<br>
<font color=red>x,y,z</font> = 整体转动魔方,<br>
x方向同R(左右轴),y方向同U(上下轴),z方向同F(前后轴) 例如:x, y, z, x', y', z'<br>
<br>
<font color=red>M (Middle)</font> = LR的夹层,方向同L<br>
<font color=red>E (Equator)</font> = UD的夹层,方向同D<br>
<font color=red>S (Standing)</font> = FB的夹层,方向同F<br>
<br>
<font color=red>(x)</font> = 一组转法可以用小括号包围,可以嵌套<br>
<font color=red>(x)n</font> = 一组转法重复n次(2<=n<=9)<br>
<font color=red>[comment]</font> = 注释用中括号[包围],里面的内容不被执行<br>
<font color=red>\n</font> = 用于表示换行<br><br>
<span style="font-size:10.5pt;color:green;">小提示:用鼠标拖动魔方贴片可以90度转动单层,中间层,或整个魔方。拖动魔方周围空白可以任意角度转动魔方,按“<font color=red>>></font>”按钮逐步播放</span>
</body>
</html>
**/


winform.plusInit.skin(
    color = {
        hover = 0xFFFF0000;
        active = 0xFF00FF00;
    }
)

winform.plusInit.oncommand =
function(id,event){
    winform.editInitMove.text = string.join(table.shuffle({
"L";"R";"B";"F";"D";"U";"L'";"R'";"B'";"F'";"D'";"U'"}),",");
    winform.plusStart.oncommand();
}

var menuFile = win.ui.popmenu(winform);
menuFile.add(
   
"1/2、第一层建十字太简单,不用看公式",
   
function(id){
        winform.editFace.text =
"000010040000020030000030010000040020000050000050565050";
        winform.editInitMove.text =
"";
        winform.editMove.text =
"U' F2 y U' R2 y R2 y2 U' R2 z2 ";
        winform.trackbarMirror.pos = 0;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"3、第二层对换棱色块公式(左右只是方向相反,步骤一样)",
   
function(id){
        winform.editFace.text =
"111010000222020000333030000444040040555555555000060030";
        winform.editInitMove.text =
"";
        winform.editMove.text =
"U R U' R' [上顺->右顺->上逆->右逆]
y[前面转到左面]
U' L' U  L[上逆->左逆->上顺->左顺]
y'[左面转到前面] "
;
        winform.trackbarMirror.pos = 50;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"4、第三层画十字",
   
function(id){
        winform.editFace.text =
"111111060222222060333333060444444060555555555000060000";
        winform.editInitMove.text =
"";
        winform.editMove.text =
"F[前顺转/顶色在侧面的朝自己]
R U R' U'[右顺->上顺->右逆->上逆]
F'[前逆转]"
;
        winform.trackbarMirror.pos = 50;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"5、完成顶面,小鱼1公式(小鱼2只是方向相反,步骤一样)",
   
function(id){
        winform.editFace.text =
"111111000222222006333333006444444006555555555660666060";
        winform.editInitMove.text =
"";
        winform.editMove.text =
"R' U'[右逆转->上逆转]
  R U' [右顺转还原->上再逆转]
  R' U'2 R[右逆转->上逆转2次->右顺还原]"
;
        winform.trackbarMirror.pos = 0;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"6、调整顶层角色块顺序(重复此公式直到成功)",
   
function(id){
        winform.editFace.text =
"111111123222222431333333212444444344555555555666666666";
        winform.editInitMove.text =
"";
        winform.editMove.text =
"x' R2 D2[顶朝前/2角同色朝右->倒L形]
R' U' R [手法单元]D2
R' U R'[手法单元]x U2[顶朝上/对角色]"
;
        winform.trackbarMirror.pos = 0;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"7.1、复原魔方,小鱼1公式",
   
function(id){
        winform.editFace.text =
"111111121222222242333333333444444414555555555666666666";
        winform.editInitMove.text =
"F U F' U F U2 F' y2";
        winform.editMove.text =
"R' U'[右逆转->上逆转]
  R U' [右顺转还原->上再逆转]
  R' U'2 R[右逆转->上逆转2次->右顺还原]"
;
        winform.trackbarMirror.pos = 0;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"7.2、复原魔方,小鱼2公式",
   
function(id){
        winform.editFace.text =
"111111131222222212333333323444444444555555555666666666";
        winform.editInitMove.text =
"R' U' R U' R' U'2 R y2 ";
        winform.editMove.text =
"y[前面转到左面]
L[左顺] U[上顺转] L'[左逆] U[上再顺转]
L[左顺] U2[上再再顺转] L'[左逆]"
;
        winform.trackbarMirror.pos = 50;
        winform.plusStart.oncommand();
    }
)

menuFile.add(
   
"打开在线教程(完整版)",
   
function(id){
        
import process;
        process.execute(
"http://www.rubik.com.cn/beginner.htm")
    }
)

menuFile.add(
   
"打开在线教程(视频版)",
   
function(id){
        
import process;
        process.execute(
"http://video.rubik.com.cn")
    }
)

var menu = win.ui.menu(winform);//创建主菜单
menu.add('层先法',menuFile)  

winform.show(
true)
win.loopMessage();


回复

使用道具 举报

15

主题

42

帖子

259

积分

二级会员

Rank: 3Rank: 3

积分
259
发表于 2018-7-10 19:53:46 | 显示全部楼层
校长 牛掰
回复

使用道具 举报

0

主题

4

帖子

33

积分

新手入门

Rank: 1

积分
33
发表于 7 天前 | 显示全部楼层
厉害了,研究一下,买个模仿试验一下,看看效果。
回复

使用道具 举报

3

主题

24

帖子

158

积分

培训班

积分
158
发表于 7 天前 | 显示全部楼层
效果惊艳啊!!!
回复

使用道具 举报

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

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-7-18 08:57 , Processed in 0.078126 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表