程序1:function usemouse
%传个程序给你们玩玩,实时捕捉鼠标指针的位置并改变线条的颜色,左键开始绘图,右键停止绘图
s.hf=figure('name','用鼠标绘图',...
'numbertitle','off',...
'tag','figure1',...
'units','normalized',...
'position',[.1 .1 .8 .8]);
s.haxes=axes('parent',s.hf,...
'units','normalized',...
'position',[.1 .1 .8 .8],...
'xTick',[],'yTick',[],...
'Box','on');
set(s.hf,'windowbuttondownfcn',@figure1_windowbuttondownfcn);
set(s.hf,'windowbuttonmotionfcn',@figure1_windowbuttonmotionfcn);
global draw_enable
draw_enable=0;
function figure1_windowbuttondownfcn(hobj,event)
global draw_enable;
global x;
global y;
global h1;
if strcmp(get(hobj,'selectiontype'),'normal')
draw_enable=1;
p=get(gca,'currentpoint');
x(1)=p(1);
y(1)=p(3);
x(2)=p(1);
y(2)=p(3);
h1=line(x,y,'erasemode','none');
end
if strcmp(get(hobj,'selectiontype'),'alt')
draw_enable=0;
end
function figure1_windowbuttonmotionfcn(hobj,event)
global draw_enable;
global x;
global y;
global h1;
p=get(gca,'currentpoint');
set(hobj,'name',['鼠标位置(',num2str(p(1)),',',num2str(p(3)),')']);
if draw_enable==1
x(2)=p(1);
y(2)=p(3);
set(h1,'xdata',x,'ydata',y,'color',sqrt(abs([(x(2)-x(1))^2,(y(2)-y(1))^2,x(2)*y(2)-x(1)*y(1)])),'marker','*','markersize',5,'LineStyle',':');
end
%abs(floor(2*sin(rand(1,3))))
%abs([x(2)-x(1),y(2)-y(1),x(2)*x(1)*y(1)*y(2)])
%sqrt(abs([x(2)^2-x(1)^2,y(2)^2-y(1)^2,x(2)*x(1)*y(1)*y(2)]))
%sqrt(abs([(x(2)-x(1))^2,(y(2)-y(1))^2,x(2)*y(2)-x(1)*y(1)]))
程序2:
点击鼠标左键,小窗口放大图片跟随鼠标指针实时移动,“⊙”符号的中心指向指针位置;点击鼠标右键,小窗口图片停止,再次点击鼠标左键,小图片重新启动;点击开关,小图片隐藏,指针形状改变为‘arrow’;再次点击,小图片显现,指针形状恢复。滑动滚动条,小图片放大倍数随之改变
function varargout = draw(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @draw_OpeningFcn, ...
'gui_OutputFcn', @draw_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function draw_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
global on;
global off;
global bg;
global zoom;
zoom=2;
bg=imread('55417-106.jpg');
on=imread('on.jpg');
off=imread('off.jpg');
set(handles.togglebutton1,'cdata',on);
imshow(bg)
set(gcf,'Pointer',' fullcrosshair')
global draw_enable;
draw_enable=0;
a=get(handles.axes1,'position');
b=get(handles.pushbutton6,'position');
%left(find(left==0))=200;
left=bg(a(4)-b(2)-b(4):a(4)-b(2),b(1):b(1)+b(3),:);
set(handles.pushbutton6,'cdata',left);
function varargout = draw_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function axes1_CreateFcn(hObject, eventdata, handles)
set(hObject,'xtick',[],'xticklabel',[],'ytick',[],'yticklabel',[],...
'box','on')%,
global bg;
function togglebutton1_Callback(hObject, eventdata, handles)
global on;
global off;
if get(hObject,'value')==1
set(hObject,'cdata',off);
set(handles.pushbutton6,'visible','off');
set(handles.figure1,'pointer','arrow');
else
set(hObject,'cdata',on);
set(handles.pushbutton6,'visible','on');
set(handles.figure1,'pointer','fullcrosshair');
end
function pushbutton6_Callback(hObject, eventdata, handles)
function pushbutton6_CreateFcn(hObject, eventdata, handles)
function figure1_WindowButtonDownFcn(hObject, eventdata, handles)
global bg;
global draw_enable;
if strcmp(get(hObject,'selectiontype'),'normal')
draw_enable=1;
p=get(handles.axes1,'currentpoint');
b=get(handles.pushbutton6,'position');
lg=bg(fix(1+abs(p(3)-b(4)/2):(p(3)+b(4)/2)),fix(1+abs(p(1)-b(3)/2):(p(1)+b(3)/2)),:);
set(handles.pushbutton6,'cdata',lg);
end
if strcmp(get(hObject,'selectiontype'),'alt')
draw_enable=0;
end
function figure1_WindowButtonMotionFcn(hObject, eventdata, handles)
global draw_enable;
a=get(hObject,'position');
global bg;
global zoom;
p=get(handles.axes1,'currentpoint');
if strcmp(get(hObject,'selectiontype'),'normal')&&draw_enable==1
b=get(handles.pushbutton6,'position');
if b(4)/4>p(3)||b(3)/4>p(1)||(p(3)+b(4)/4)>a(4)+64||(p(1)+b(3)/4)>a(3)+126
set(handles.pushbutton6,'enable','off');
return;
else
set(handles.pushbutton6,'enable','on');
lg=bg(fix(1+abs(p(3)-b(4)/4):(p(3)+b(4)/4)),fix(1+abs(p(1)-b(3)/4):(p(1)+b(3)/4)),:);
[m,n,k]=size(lg);
lb=imresize(lg,[zoom*m zoom*n]);
% for i=1:m
% for j=1:n
% lb(2*i-1,2*j-1,1:3)=lg(i,j,:);
% lb(2*i,2*j,1:3)=lg(i,j,:);
% end
% end
set(handles.pushbutton6,'cdata',lb);
end
end
function slider1_CreateFcn(hObject, eventdata, handles)
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9 .9 .9]);
end
set(hObject,'value',2);
global off;
set(hObject,'cdata',off);
% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
global zoom
zoom=get(hObject,'value');
%set(hObject,'cdata',imread('off.jpg'));
55417-106.jpg
(150.29 KB, 下载次数: 590)
2015-1-14 15:52 上传
off.jpg
(3.71 KB, 下载次数: 496)
2015-1-14 15:52 上传
on.jpg
(3.47 KB, 下载次数: 496)
2015-1-14 15:52 上传
2015-1-14 16:05 上传
2015-1-14 16:07 上传
2015-1-14 16:07 上传
2015-1-14 16:07 上传
小窗口图片跟随鼠标指针实时移动2.jpg
(274.69 KB, 下载次数: 28)
2015-1-14 16:07 上传
鼠标控20.jpg
(174.01 KB, 下载次数: 0)
2015-1-14 16:12 上传
鼠标控19.jpg
(226.61 KB, 下载次数: 0)
2015-1-14 16:12 上传
鼠标控18.jpg
(204.86 KB, 下载次数: 0)
2015-1-14 16:12 上传
鼠标控17.jpg
(227.25 KB, 下载次数: 0)
2015-1-14 16:13 上传
鼠标控16.jpg
(100.09 KB, 下载次数: 0)
2015-1-14 16:13 上传
鼠标控15.jpg
(64.53 KB, 下载次数: 1)
2015-1-14 16:13 上传
鼠标控14.jpg
(100.93 KB, 下载次数: 0)
2015-1-14 16:13 上传
鼠标控13.jpg
(113.21 KB, 下载次数: 0)
2015-1-14 16:13 上传
鼠标控12.jpg
(183.7 KB, 下载次数: 0)
2015-1-14 16:14 上传
鼠标控11.jpg
(49.14 KB, 下载次数: 0)
2015-1-14 16:14 上传
鼠标控10.jpg
(329.84 KB, 下载次数: 0)
2015-1-14 16:14 上传
鼠标控9.jpg
(191.12 KB, 下载次数: 0)
2015-1-14 16:14 上传
鼠标控8.jpg
(227.22 KB, 下载次数: 0)
2015-1-14 16:15 上传
鼠标控7.jpg
(172.18 KB, 下载次数: 0)
2015-1-14 16:15 上传
鼠标控6.jpg
(163.25 KB, 下载次数: 0)
2015-1-14 16:16 上传
鼠标控5.jpg
(179.21 KB, 下载次数: 0)
2015-1-14 16:16 上传
鼠标控4.jpg
(204.42 KB, 下载次数: 0)
2015-1-14 16:17 上传
鼠标控3.jpg
(208.79 KB, 下载次数: 0)
2015-1-14 16:17 上传
鼠标控2.jpg
(102.03 KB, 下载次数: 0)
2015-1-14 16:17 上传
鼠标控1.jpg
(132.6 KB, 下载次数: 0)
2015-1-14 16:17 上传
2015-1-14 16:18 上传
2015-1-14 15:52 上传
点击文件名下载附件
4.51 KB, 下载次数: 4651
2015-1-14 15:52 上传
点击文件名下载附件
3.56 KB, 下载次数: 4439