trigicon.m
上传用户:loeagle
上传日期:2013-03-02
资源大小:1236k
文件大小:2k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function [x,y] = trigicon(side,v,o, met)
  2. % TRIGICON  Trigger Icon function for SIMULINK Triggered blocks.
  3. % [X,Y] = TRIGICON(SIDE,V,ORIENTATION) returns vectors which can be
  4. % used in a plot command inside a block mask to indicate
  5. % a triggered input or output.  SIDE == 0 indicates an
  6. % input, and SIDE == 1 indicates an output.  V is a position
  7. % from 0 (bottom) to 100 (top) specifying the vertical
  8. % spacing of the indicator.  V defaults to 50.
  9. % ORIENTATION is the orientation of the block: 0 ==> left-to-right,
  10. % 1 ==> top-to-bottom, 2 ==> right-to-left, 3 ==> bottom-to-top
  11. %   ORIENTATION == 1, enable/disable
  12. %   ORIENTATION == 2, raising edge trigger.
  13. %   Copyright 1996-2001 The MathWorks, Inc.
  14. %       $Revision: 1.3 $
  15. if nargin < 4
  16.     met = 1;
  17. end;
  18. if nargin < 3
  19. o = 'right';
  20. end
  21. if nargin < 2
  22. v = 50;
  23. end
  24. if isempty(v)
  25. v = 50;
  26. end
  27. if nargin < 1
  28.     side == 0;
  29. end;
  30. if side == 1;
  31.     %o = rem(o+2, 4);
  32.     switch lower(o)
  33.       case 'right'
  34.         o = 'left';
  35.       case 'left'
  36.         o = 'right';
  37.       case 'up'
  38. o = 'down';
  39.       case 'down'
  40.         o = 'up'
  41.     end;
  42.     v = 100-v;
  43. end;
  44. if met == 1
  45.     x = [5 10 10 15 15 20];
  46.     y = [5 5  10 10  5  5];
  47.     y_d = -7.5;
  48.     x_d = -10;
  49. elseif met == 2
  50.     x = [5 10 10 8 10 12 10 10 15];
  51.     y = [5 5  12 8 12 8  12 15 15];
  52.     y_d = -10;
  53.     x_d = -5;
  54. end;
  55. switch lower(o)
  56.   case 'right'
  57.     % if o == 0
  58.     y = y + v + y_d;
  59.   case 'down'
  60.     % elseif o == 1        % top-to-bottom
  61.     v = 100-v;
  62.     x = x + v + x_d;
  63.     y = y + (100 + 2*y_d);
  64.   case 'left'
  65.     % elseif o == 2    % right-to-left
  66.     if met == 1
  67.         x = 100 - x;
  68.     elseif met == 2
  69.         x = x + 80;
  70.     end;
  71.     y = y + v + y_d;
  72.   case 'up'
  73.     % elseif o == 3    % bottom-to-top
  74.     v = 100 -v;
  75.     x = x + v + x_d;
  76. end
  77. %plot(0,0,100,100,x,y);