⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera_callback.m

📁 CheckMate is a MATLAB-based tool for modeling, simulating and investigating properties of hybrid dyn
💻 M
字号:
% Callback function for CheckMate camera control function
%
% See Also:
%   camera_control

az_default = -37.5;
el_default = 30.0;

current_fig = gcbf;
object_tag = get(gcbo,'Tag');

az_slider = findobj(current_fig,'Tag','az_slider');
el_slider = findobj(current_fig,'Tag','el_slider');
az_edit = findobj(current_fig,'Tag','az_edit');
el_edit = findobj(current_fig,'Tag','el_edit');
fig_edit = findobj(current_fig,'Tag','fig_edit');
toggle_grid = 0;

switch object_tag
  case 'az_slider',
    az = get(az_slider,'Value');
    az_min = get(az_slider,'Min');
    az_max = get(az_slider,'Max');
    if (az == az_max)
      az = az_min;
      set(az_slider,'Value',az)
    else
      if (az == az_min)
        az = az_max;
        set(az_slider,'Value',az)
      end
    end
    set(az_edit,'String',num2str(az))
  case 'el_slider',
    el = get(el_slider,'Value');
    el_min = get(el_slider,'Min');
    el_max = get(el_slider,'Max');
    if (el == el_max)
      el = el_min;
      set(el_slider,'Value',el)
    else
      if (el == el_min)
        el = el_max;
        set(el_slider,'Value',el)
      end
    end
    set(el_edit,'String',num2str(el))
  case 'az_edit',
    str = get(az_edit,'String');
    az = str2num(str);
    set(az_slider,'Value',az)
  case 'el_edit',
    str = get(el_edit,'String');
    el = str2num(str);
    set(el_slider,'Value',el)
  case 'fig_edit',
  case 'close_button',
    close(gcbf)
    return
  case 'reset_button',
    set(az_slider,'Value',az_default)
    set(az_edit,'String',num2str(az_default))
    set(el_slider,'Value',el_default)
    set(el_edit,'String',num2str(el_default))
  case 'grid_button',
    toggle_grid = 1;
end

az = get(az_slider,'Value');
el = get(el_slider,'Value');
str = get(fig_edit,'String');
fig_num = str2num(str);

if ishandle(fig_num)
  tag = get(fig_num,'Tag');
  if isempty(tag)
    ok = 1;
  else
    if (tag == 'camera_control')
      ok = 0;
    else
      ok = 1;
    end
  end
else
  ok = 0;
end

if ok
  figure(fig_num)
  view([az,el])
  if toggle_grid
    grid
  end
else
  fprintf(1,'\007error: invalid figure handle\n')
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -