%FRACGRX is a subroutine of the driving program FRACTORY. It %generates the graphics screen user interface which shows the %square(paralellagram) representations of the IFS's, and allows %the user to manipulate the IFS parameters visually. %Setup initial data Gscr=figure; set(Gscr,'Position',[395 100 535 560]); set(Gscr,'Units','normalized'); Gaxes = get(Gscr,'CurrentAxes'); axpos=[.1 .1 .85 .85]; set(Gaxes,'NextPlot','add',... 'Position',axpos,... 'XLim',[0 1],... 'YLim',[0 1]); bttog=0; clear inlist curpts(1) = uicontrol(Gscr,... 'Style','push',... 'Units','normalized',... 'Position',[.08 .93 .04 .04],... 'String','X'); curpts(2) = uicontrol(Gscr,... 'Style','push',... 'Units','normalized',... 'Position',[.08 .08 .04 .04],... 'String','Y'); curpts(3) = uicontrol(Gscr,... 'Style','push',... 'Units','normalized',... 'Position',[.93 .08 .04 .04],... 'String','Z'); curpts(4) = uicontrol(Gscr,... 'Style','push',... 'Units','normalized',... 'Position',[.505 .505 .04 .04]); curpos='[(get(Gscr,''CurrentPoint'')-[.02 .02]) .04 .04]'; MtnAct = 'set(curpts(n_pt),''Position'',eval(curpos))'; FollowOn=['set(Gscr,''WindowButtonMotionFcn'',MtnAct);',... 'set(Gscr,''WindowButtonUpFcn'',StpAct);',... 'bttog=1;',... 'clear inlist,',... 'curdat(11)=n_pt;']; FollowOff='set(Gscr,''WindowButtonMotionFcn'','' '')'; StpAct = ['eval(FollowOff),',... 'set(Gscr,''WindowButtonUpFcn'',''inbox'');',... 'newv=get(curpts(n_pt),''Position'');',... 'newv=chgcrd(newv(1:2),axpos,0)+[.02 ; .02];',... 'if n_pt==4,',... 'newv=curdat(3:4)+(newv-(curdat(1:2)+curdat(5:6))/2);',... 'end,',... 'bttog=0;',... 'updatecd']; for nn=1:4 set(curpts(nn),'CallBack',[... 'if bttog==0,',... 'n_pt=',num2str(nn),';',... 'eval(FollowOn),',... 'else,',... 'eval(StpAct);',... 'end']); end set(Gscr,'WindowButtonUpFcn','inbox'); axes(Gaxes); fcns(1)=line(curdat([7 1 3 5 7]),curdat([8 2 4 6 8])); set(fcns(1),'Color','m');