function cube_init()
%%
global right_cube
right_cube={'UF','UR','UB','UL','DF','DR','DB','DL','FR','FL','BR','BL','UFR','URB','UBL','ULF','DRF','DFL','DLB','DBR'};%正序
%%
% error_cube=["UF","DB","UB","UL","BR","DF","FR","UR","DR","FL","DL","BL","RBU","DBR","UBL","ULF","RFD","UFR","LDF","BDL"];%乱序
%该乱序下的还原步骤'R2D3L2F2D2B2L3R2F2D2F2L2U3F2U3R2U2F2D2L2D2F2U2'
%%
error_cube=["LU","LF","UF","BD","LB","RU","UB","FD","BR","RF","RD","DL","DBR","BLU","BDL","LFU","URB","FLD","FRU","DRF"];%乱序
%该乱序下的还原步骤 'U1D3F2L3B3F3U1L1D1L2U1F2R3U3B2L2U3F2U1F2L2F2D2L2B2D2L2U2F2U2'
%%
global centrol_block
edge_block={'UF','UR','UB','UL','DF','DR','DB','DL','FR','FL','BR','BL'};%魔方的12个棱块
angle_block={'UFR','URB','UBL','ULF','DRF','DFL','DLB','DBR'};%魔方的8个角块
centrol_block={'U','D','F','B','L','R'};%魔方的6个中心块
%%
%位置加颜色
cube_edge_block=struct('UF','UF','UR','UR','UB','UB','UL','UL','DF','DF','DR','DR','DB','DB','DL','DL','FR','FR','FL','FL','BR','BR','BL','BL');%魔方的12个棱块
cube_angle_block=struct('UFR','UFR', 'URB','URB','UBL','UBL','ULF','ULF','DRF','DRF','DFL','DFL','DLB','DLB','DBR','DBR');%魔方的8个角块
%%
%魔方平面展开图各个色块的坐标(xy轴)
global edge_block_xy
global angle_block_xy
global centrol_block_xy
edge_block_xy=struct('UF',[0 -1 0 -2],'UR',[1 0 2 0],'UB',[0 1 0 2],'UL',[-1 0 -2 0],'DF',[0 -5 0 -4 ],...
'DR',[1 -6 4 0 ],'DB',[0 -7 0 4],'DL',[-1 -6 -4 0],'FR',[1 -3 3 -1],'FL',[-1 -3 -3 -1],'BR',[1 3 3 1],'BL',[-1 3 -3 1]);%12棱块
angle_block_xy=struct('UFR',[1 -1 1 -2 2 -1], 'URB',[1 1 2 1 1 2],'UBL',[-1 1 -1 2 -2 1],'ULF',[-1 -1 -2 -1 -1 -2],...
'DRF',[1 -5 4 -1 1 -4],'DFL',[-1 -5 -1 -4 -4 -1],'DLB',[-1 -7 -4 1 -1 4],'DBR',[1 -7 1 4 4 1]);%8角块
centrol_block_xy=struct('U',[0 0],'D',[0 -6],'F',[0 -3],'B',[0 3],'L',[-3 0],'R',[3 0]);%中心块
%%
%每层涉及到的面,每层都会涉及到5个面
global layer_face;
layer_face=struct('U','UFLBR','D','DFRBL','F','FURDL','B','BULDR','L','LUFDB','R','RUBDF');
%六种颜色的RGB值
global rgb2UFL;
rgb2UFL=struct('R',[1,0,0],'F',[0,1,0],'B',[0,0,1],'U',[1,1,1],'D',[1,1,0],'L',[1,0.5,0]);
%%
%旋转魔方的一个面,这个面所在层的20个色块的坐标,不计中心块
global layer_xy;
layer_xy.('U')=[0 1 1 0 0 -1 -1 0;-1 1 1 1 1 -1 -1 -1;0 2 2 0 0 -2 -2 0;1 2 2 -1 -1 -2 -2 1;-1 2 2 1 1 -2 -2 -1];
layer_xy.('D')=[0 -5 1 -6 0 -7 -1 -6;-1 -5 1 -5 1 -7 -1 -7;0 -4 4 0 0 4 -4 0;-1 -4 4 -1 1 4 -4 1;1 -4 4 1 -1 4 -4 -1];
layer_xy.('F')=[0 -2 1 -3 0 -4 -1 -3;-1 -2 1 -2 1 -4 -1 -4;0 -1 3 -1 0 -5 -3 -1;-1 -1 2 -1 1 -5 -4 -1;1 -1 4 -1 -1 -5 -2 -1];
layer_xy.('B')=[0 4 1 3 0 2 -1 3;-1 4 1 4 1 2 -1 2;0 -7 3 1 0 1 -3 1;-1 -7 4 1 1 1 -2 1;1 -7 2 1 -1 1 -4 1];
layer_xy.('L')=[-3 1 -2 0 -3 -1 -4 0;-4 1 -2 1 -2 -1 -4 -1;-1 3 -1 0 -1 -3 -1 -6;-1 4 -1 1 -1 -2 -1 -5;-1 2 -1 -1 -1 -4 -1 -7];
layer_xy.('R')=[3 1 4 0 3 -1 2 0;2 1 4 1 4 -1 2 -1;1 3 1 -6 1 -3 1 0;1 2 1 -7 1 -4 1 -1;1 4 1 -5 1 -2 1 1];
%魔方的一个面上的9个色块的坐标
global face_xy;
face_xy.('U')=[-1 1;0 1;1 1;-1 0;0 0;1 0;-1 -1;0 -1;1 -1];
face_xy.('D')=[-1 -5;0 -5;1 -5;-1 -6;0 -6;1 -6;-1 -7;0 -7;1 -7];
face_xy.('F')=[-1 -2;0 -2;1 -2;-1 -3;0 -3;1 -3;-1 -4;0 -4;1 -4];
face_xy.('B')=[-1 4;0 4;1 4;-1 3;0 3;1 3;-1 2;0 2;1 2];
face_xy.('L')=[-4 1;-3 1;-2 1;-4 0;-3 0;-2 0;-4 -1;-3 -1;-2 -1];
face_xy.('R')=[2 1;3 1;4 1;2 0;3 0;4 0;2 -1;3 -1;4 -1];
%%
%'h'=104
%%
%画魔方平面展开图
global cube_54xy_c;%存储了魔方各色块位置和颜色
for i=1:12 %显示棱块
block=char(right_cube(i));
color=char(error_cube(i));
A=edge_block_xy.(block);%为行向量,坐标
rectangle('position',[A(1:2),1 1],'edgecolor','k','facecolor',rgb2UFL.(color(1)));%
cube_54xy_c.(char(A(1:2)+'h'))=color(1);
rectangle('position',[A(3:4),1 1],'edgecolor','k','facecolor',rgb2UFL.(color(2)));%
cube_54xy_c.(char(A(3:4)+'h'))=color(2);
end
for i=13:20 %显示角块
block=char(right_cube(i));
color=char(error_cube(i));
A=angle_block_xy.(block);%为行向量
rectangle('position',[A(1:2),1 1],'edgecolor','k','facecolor',rgb2UFL.(color(1)));%
cube_54xy_c.(char(A(1:2)+'h'))=color(1);
rectangle('position',[A(3:4),1 1],'edgecolor','k','facecolor',rgb2UFL.(color(2)));%
cube_54xy_c.(char(A(3:4)+'h'))=color(2);
rectangle('position',[A(5:6),1 1],'edgecolor','k','facecolor',rgb2UFL.(color(3)));%
cube_54xy_c.(char(A(5:6)+'h'))=color(3);
end
for i=1:6 %显示中心块
block=char(centrol_block(i));%cell元胞数组转化为字符串
color=block;
A=centrol_block_xy.(block);%为行向量
rectangle('position',[A,1 1],'edgecolor','k','facecolor',rgb2UFL.(color));%
cube_54xy_c.(char(A+'h'))=color;
end
end
没有合适的资源?快使用搜索试试~ 我知道了~
matlab_cube4.rar
共4个文件
m:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 27 下载量 111 浏览量
2021-01-30
12:29:29
上传
评论 2
收藏 3KB RAR 举报
温馨提示
三阶魔方二维动态还原过程MATLAB仿真程序
资源推荐
资源详情
资源评论
收起资源包目录
matlab_cube4.rar (4个子文件)
matlab_cube4
cube_init.m 5KB
cube_rotate.m 1014B
cube_show.m 1KB
cube_main.m 714B
共 4 条
- 1
嗑药的皮皮虾
- 粉丝: 27
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页