www.gusucode.com > 三维模仿源码程序 > 三维模仿源码程序/MathRubik2/ShowTitle.m
function ShowTitle(hAxes,Cube,iSol) %ShowTitle - Shows the title of the Rubiks axes % ShowTitle(hAxes,Cube[,iSol]) % with iSol the index in the solution list % if not given, Cube.iSol is used. if nargin<2 if nargin<1 hAxes=FindRubikAxes; end Cube=get(hAxes,'UserData'); end if isempty(Cube.sol) s=''; else n=size(Cube.sol,1); if nargin<3 iSol=min(n,Cube.iSol); end sol=Cube.sol(max(1,iSol):min(end,iSol+1),:); if isempty(Cube.texture) %CCols={'rood','oranje','blauw','groen','geel','wit'}; CCols=cell(1,6); for i=1:6 % (!!)only one or two colors are necessary c=Cube.ValColor(i+1,:); if all(c==[0 0 0]) CCols{i}='black'; elseif all(c==[1 1 1]) CCols{i}='white'; elseif all(c==[1 0 0]) CCols{i}='red'; elseif all(c==[0 1 0]) CCols{i}='green'; elseif all(c==[0 0 1]) CCols{i}='blue'; elseif all(c==[1 1 0]) CCols{i}='yellow'; elseif all(c==[1 0 1]) CCols{i}='magenta'; elseif all(c==[0 1 1]) CCols{i}='cyan'; elseif c(1)>0.95&abs(c(2)-0.5)<0.1&c(3)<0.1 CCols{i}='orange'; else CCols{i}='unkowncolor'; end end else sol1=Color2FRU(sol,Cube); sol(:,1)=sol1(:,1)*2+(sol1(:,2)+1)/2-1; CCols={'Back','Front','Left','Right','Down','Up'}; end if iSol==0 s=sprintf(' 0/%3d : - next %-6s %2d',n,CCols{sol(1,1)},sol(1,2)); elseif iSol==n s=sprintf('%3d/%3d : %-6s %2d',iSol,n,CCols{sol(1,1)},sol(1,2)); else s=sprintf('%3d/%3d : %-6s %2d - next %-6s %2d',iSol,n,CCols{sol(1,1)},sol(1,2),CCols{sol(2,1)},sol(2,2)); end end set(get(hAxes,'Title'),'String',s)