数学建模社区-数学中国

标题: 大家会吗?Matlab中的图形对象的选择 [打印本页]

作者: 森之张卫东    时间: 2015-10-11 19:23
标题: 大家会吗?Matlab中的图形对象的选择
            图形对象的选择
在本例中的程序可以探测图形对象的属性,并显示如何用函数waitforbuttonpressgco选择对象。程序允许用户可以多次重复选择对象。
% Script file: select_object.m
%
% Purpose:
% This program illustrates the use of waitforbuttonpress
% and gco to select graphics objects. It creates a plot
% of sin(x) and cos(x), and then allows a user to select
% any object and examine its properties. The program
% terminates when a key press occurs.
%
% Record of revisions:
% Date Programmer Description of change
% ==== ========== =====================
% 11/23/97 S. J. Chapman Originalcode
%
% Define variables:
% details -- Object details
% H1 -- Handle of sine line
% H2 -- Handle of cosine line
% Handle -- Handle of current object
% k -- Result of waitforbuttonpress
% type -- Object type
% x -- Independent variable
% y1 -- sin(x)
% y2 -- cos(x)
% yn -- Yes/No
% Calculate sin(x) and cos(x)
x = -3*pi:pi/10:3*pi;
y1 = sin(x);
y2 = cos(x);
% Plot the functions.
H1 = plot(x,y1);
set(H1,'LineWidth',2);
hold on;
H2 = plot(x,y2);
set(H2,'LineWidth',2,'LineStyle',':','Color','r');
title('\bfPlot of sin \itx \rm\bf and cos \itx');
xlabel('\bf\itx');
ylabel('\bfsin \itx \rm\bf and cos \itx');
legend('sine','cosine');
hold off;
% Now set up a loop and wait for a mouse click.
k = waitforbuttonpress;
while k == 0
    % Get the handle of theobject
    Handle = gco;
    % Get the type of thisobject.
    type = get(Handle,'Type');
    % Display object type
    disp (['Object type = 'type '.']);
    % Do we display thedetails?
    yn = input('Do you want todisplay details? (y/n) ','s');
    if yn == 'y'
        details = get(Handle);
        disp(details);
    end
    % Check for another mouseclick
    k = waitforbuttonpress;
end


图9.5 sinx和cosx的图象。.JPG (100.03 KB, 下载次数: 135)

图9.5 sinx和cosx的图象。.JPG


作者: 森之张卫东    时间: 2015-10-11 19:24
  1. % Script file: select_object.m
  2. %
  3. % Purpose:
  4. % This program illustrates the use of waitforbuttonpress
  5. % and gco to select graphics objects. It creates a plot
  6. % of sin(x) and cos(x), and then allows a user to select
  7. % any object and examine its properties. The program
  8. % terminates when a key press occurs.
  9. %
  10. % Record of revisions:
  11. % Date Programmer Description of change
  12. % ==== ========== =====================
  13. % 11/23/97 S. J. Chapman Original code
  14. %
  15. % Define variables:
  16. % details -- Object details
  17. % H1 -- Handle of sine line
  18. % H2 -- Handle of cosine line
  19. % Handle -- Handle of current object
  20. % k -- Result of waitforbuttonpress
  21. % type -- Object type
  22. % x -- Independent variable
  23. % y1 -- sin(x)
  24. % y2 -- cos(x)
  25. % yn -- Yes/No
  26. % Calculate sin(x) and cos(x)
  27. x = -3*pi:pi/10:3*pi;
  28. y1 = sin(x);
  29. y2 = cos(x);
  30. % Plot the functions.
  31. H1 = plot(x,y1);
  32. set(H1,'LineWidth',2);
  33. hold on;
  34. H2 = plot(x,y2);
  35. set(H2,'LineWidth',2,'LineStyle',':','Color','r');
  36. title('\bfPlot of sin \itx \rm\bf and cos \itx');
  37. xlabel('\bf\itx');
  38. ylabel('\bfsin \itx \rm\bf and cos \itx');
  39. legend('sine','cosine');
  40. hold off;
  41. % Now set up a loop and wait for a mouse click.
  42. k = waitforbuttonpress;
  43. while k == 0
  44.     % Get the handle of the object
  45.     Handle = gco;
  46.     % Get the type of this object.
  47.     type = get(Handle,'Type');
  48.     % Display object type
  49.     disp (['Object type = ' type '.']);
  50.     % Do we display the details?
  51.     yn = input('Do you want to display details? (y/n) ','s');
  52.     if yn == 'y'
  53.         details = get(Handle);
  54.         disp(details);
  55.     end
  56.     % Check for another mouse click
  57.     k = waitforbuttonpress;
  58. end
复制代码






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5