buttondownfcn 用法 matlab

这段代码演示了如何在MATLAB中使用buttondownfcn功能,当点击图形区域时生成随机线,右键点击则删除线。用户可以通过修改代码实现右键点击在新窗口重新绘制图形。
function [] = GUI_18()
% Demonstrate the use of the buttondownfcn for an axes.  
% Clicking on the axes creates a random line.  Note that clicking on the
% line does the same thing.  This must be accounted for in the coding
% below, or clicking on the line would do nothing.  Right click to delete
% the line.
%
% An exercise would be to alter the code so that right clicking recreates
% the plot in another figure window.  This could be done at least two
% different ways.
%
%
% Author:  Matt Fig
% Date:  7/15/2009

S.fh = figure('units','pixels',...
              'position',[200 200 200 200],...
              'menubar','none',...
              'numbertitle','off',...
              'name','GUI_18',...
              'resize','off');
S.ax = axes('units','pixels',...
            'position',[30 30 160 160],...
            'fontsize',8,...
            'buttondownfcn',{@ax_bdfcn,S},...
            'nextplot','replacechildren');


function [] = ax_bdfcn(varargin)
% buttondownfcn for axes.
[h,S] = varargin{[1,3]};  % Extract the calling handle and structure.

% We need to account for when the user clicks the line instead of the axes.
if ~strcmpi(get(h,'type'),'axes')
   h = findobj('children',h);  %
end

seltype = get(S.fh,'selectiontype'); % Right-or-left click?

switch seltype
    case 'alt'
        cla  % Delete the line.
    case 'normal'
        ln = plot(h,sort(rand(1,10)));  % Plot a new line.
        set(ln,'buttondownfcn',{@ax_bdfcn,S})
    otherwise
        % Do something else for double-clicks, etc.
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值