📄 mpaper.html
字号:
data.X(:,i+(j-1)*10)= x;<br> <span class=keyword>end</span><br> <span class=keyword>end</span><br> <span class=eval>feval</span>(options.fun,data);<br> <span class=keyword>else</span> <br> <span class=graph>figure</span>; <br> imshow(bmp,[]);<br> <span class=keyword>end</span><br><span class=comment>% figure(7); </span><br><span class=comment>% imshow(bmp,[]);</span><br> <span class=keyword>end</span><br> <br> <span class=label>case</span> <span class=quotes>'alt'</span> <span class=comment>% right</span><br> <span class=comment>% Cla</span><br> cells = getappdata( <span class=graph>gcf</span>, <span class=quotes>'cells'</span> );<br> x = <span class=graph>get</span>( <span class=graph>gca</span>, <span class=quotes>'currentpoint'</span> );<br> [r c] = index(x([1 3]));<br> <span class=keyword>if</span> ~isempty(cells{r,c}) <br> <span class=graph>set</span>(cells{r,c}, <span class=quotes>'erasemode'</span>,<span class=quotes>'normal'</span>);<br> delete(cells{r,c});<br> cells{r,c} = [];<br> <span class=keyword>end</span><br> setappdata( <span class=graph>gcf</span>, <span class=quotes>'cells'</span>, cells );<br> <span class=keyword>end</span><br><br><span class=defun_kw>function</span> <span class=defun_name>Cla</span>()<br> <span class=graph>cla</span>;<br> <span class=graph>plot</span>( [ 0 0 1 1 0 ], [ 0 .5 .5 0 0 ] );<br> hold on;<br> <span class=keyword>for</span> i = 1:9, <span class=graph>plot</span>( [i/10 i/10],[0 .5] ); <span class=keyword>end</span><br> <span class=keyword>for</span> i = 1:4, <span class=graph>plot</span>( [0 1],[i/10 i/10] ); <span class=keyword>end</span><br><br> <span class=graph>axis</span> equal;<br> <br> <span class=graph>set</span>( <span class=graph>gca</span>, <span class=quotes>'drawmode'</span>, <span class=quotes>'fast'</span> );<br> <span class=graph>set</span>( <span class=graph>gca</span>, <span class=quotes>'interruptible'</span>, <span class=quotes>'off'</span> );<br> <span class=graph>set</span>( <span class=graph>gca</span>, <span class=quotes>'xlimmode'</span>, <span class=quotes>'manual'</span>, <span class=quotes>'ylimmode'</span>, <span class=quotes>'manual'</span>, <span class=quotes>'zlimmode'</span>, <span class=quotes>'manual'</span> );<br><span class=comment>% axis off</span><br><br> title(<span class=quotes>'Control: left\_button - draw, middle\_button - classify, right\_button - erase.'</span>);<br><br><span class=defun_kw>function</span> <span class=defun_name>Plot</span>(<span class=defun_in>varargin</span>)<br> x =<span class=graph>get</span>( <span class=graph>gca</span>, <span class=quotes>'currentpoint'</span> );<br> <span class=keyword>if</span>( x(1) > 0 & x(1) < 1 & x(3) > 0 & x(3) < 1 );<br> l = getappdata(<span class=graph>gcf</span>, <span class=quotes>'last'</span>);<br> <span class=keyword>if</span>( isempty( l ) ),<br> l = <span class=graph>plot</span>( x(1), x(3), <span class=quotes>'.-'</span> );<br> <span class=graph>set</span>( l, <span class=quotes>'erasemode'</span>, <span class=quotes>'none'</span>, <span class=quotes>'tag'</span>, <span class=quotes>'brush_stoke'</span>, <span class=quotes>'color'</span>, [0.5 0 0] );<br> setappdata(<span class=graph>gcf</span>, <span class=quotes>'last'</span>, l );<br> <span class=keyword>else</span><br> X = <span class=graph>get</span>( l, <span class=quotes>'xdata'</span> );<br> Y = <span class=graph>get</span>( l, <span class=quotes>'ydata'</span> );<br> <span class=graph>set</span>( l, <span class=quotes>'xdata'</span>, [X x(1)], <span class=quotes>'ydata'</span>, [Y x(3)] );<br> <span class=keyword>end</span><br><span class=keyword>end</span><br><br><br><span class=defun_kw>function</span> <span class=defun_out>bmp </span>= <span class=defun_name>plot2bmp</span>(<span class=defun_in> handles </span>)<br> options=getappdata( <span class=graph>gcf</span>, <span class=quotes>'options'</span>);<br><br> Width = options.width*10;<br> Height = options.height*5;<br> bmp = zeros( Height, Width );<br> <br> <span class=keyword>for</span> i = 1:length(handles ),<br> <br><span class=comment>% X = get( handles(i), 'xdata');</span><br><span class=comment>% Y = get( handles(i), 'ydata');
</span><br> points = <span class=graph>get</span>( handles(i), <span class=quotes>'Userdata'</span>);<br> X = points.xdata;
<br> Y = points.ydata;<br><br> x1 = min(fix(X(1)*Width)+1,Width);<br> y1 = min(fix(2*Y(1)*Height)+1,Height);<br> <span class=keyword>for</span> j=1:length( X )<br> x2 = min(fix(X(j)*Width)+1,Width);<br> y2 = min(fix(2*Y(j)*Height)+1,Height);<br><br> n = max( ceil( max( abs(x2-x1), abs(y2-y1) ) * 2 ), 1 );<br> a = [0:n]/n;<br> <br> x = round( x1 * a + x2 * (1-a) );<br> y = Height - round( y1 * a + y2 * (1-a) ) + 1;<br> bmp( y + (x - 1) * Height ) = 1;<br> x1=x2; y1=y2;<br> <span class=keyword>end</span><br> <span class=keyword>end</span><br> <br><span class=defun_kw>function</span> <span class=defun_name>normalize</span>(<span class=defun_in> corner, sz, h </span>)
<br>
<br>x = <span class=graph>get</span>( h, <span class=quotes>'xdata'</span> );<br>y = <span class=graph>get</span>( h, <span class=quotes>'ydata'</span> );<br><span class=keyword>if</span>( iscell(x) ), x = [x{:}]; <span class=keyword>end</span><br><span class=keyword>if</span>( iscell(y) ), y = [y{:}]; <span class=keyword>end</span><br><br>mx = min( x );<br>Mx = max( x );<br>sx = Mx - mx;<br>my = min( y );<br>My = max( y );<br>sy = My - my;<br><br>centerx = (mx + Mx) / 2;<br>centery = (my + My) / 2;<br>center = corner + sz/2;<br><br><span class=keyword>if</span>( sy/sx > sz(1)/sz(2) )<br> scale = sz(1) / sy;<br><span class=keyword>else</span><br> scale = sz(2) / sx;<br><span class=keyword>end</span><br>
<br><span class=keyword>for</span> hnd = h<br><span class=comment>% set( hnd, 'erasemode', 'normal' );</span><br><span class=comment>% set( hnd, 'xdata', ...</span><br><span class=comment>% ( get( hnd, 'xdata' ) - centerx ) * scale + center(2), ...</span><br><span class=comment>% 'ydata', ...</span><br><span class=comment>% ( get( hnd, 'ydata' ) - centery ) * scale + center(1) );
</span><br>
<br> points.xdata = ( <span class=graph>get</span>( hnd, <span class=quotes>'xdata'</span> ) - centerx ) * scale + center(2);
<br> points.ydata = ( <span class=graph>get</span>( hnd, <span class=quotes>'ydata'</span> ) - centery ) * scale + center(1);
<br> <span class=graph>set</span>( hnd, <span class=quotes>'userdata'</span>, points );<br><span class=keyword>end</span><br>
<br>
<br><span class=defun_kw>function</span> <span class=defun_out>[r, c] </span>= <span class=defun_name>index</span>(<span class=defun_in> x </span>)<br>r = min( floor( x(2) * 10 ) + 1, 5 );<br>c = min( floor( x(1) * 10 ) + 1, 10 );<br></code>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -