Matlab imline和文本

时间:2015-09-02 22:34:15

标签: matlab

感谢您的回答。我应该更清楚。我需要每行的文本对象。这是我有多远:

  function calc_slope(handle,event)

  on = get(handle,'State');

  if strcmpi(on,'on') || strcmpi(on,'off'),
      xy = imline;

      addNewPositionCallback(xy,@(pos) disp_slope(pos));     
  end


  function disp_slope(pos)

  delete(findobj(gca,'Type','text'));
  text((pos(1)+pos(2))/2,(pos(3)+pos(4))/2,['\DeltaY/\DeltaX = ',num2str((pos(4)-pos(3))/(pos(2)-pos(1))),...
       '    [\DeltaX = ',num2str(pos(2)-pos(1)),', \DeltaY = ',num2str((pos(4)-pos(3))),']']);

因此,图中切换按钮的每个切换都会抛出一条可拖动/可调整大小的线,当我移动线时,斜率显示和更新,看起来非常接近我想要的。但是,有两个问题:

  1. 删除除最后一个(当前)之外的所有其他文本框 我正在四处走动的文字框。我想保持最后 所有现有线路的价值保持不变。
  2. 如果我通过右键单击该行删除一行并选择 “删除”,它删除行,但不删除文本框 所以。现在我有一个文本框,显示该行的斜率 不再存在于图中。我希望文本框消失 连同线。
  3. 我遇到了这些问题并且实际上不会去任何地方,因为imline对象的行为与其他典型对象的行为差别很大,而且addNewPositionCallback的概念也很复杂。

    请有人在这方面给我启发。

    非常感谢,

    埃里克

    上一条消息:

    我通过uitoggletool在工具栏上创建了一个带有切换按钮的图形。它的回调函数如下所示:

    function calc_slope(handle,event)
    
    on = get(handle,'State');
    
    if strcmpi(on,'on') || strcmpi(on,'off'),
       xy=imline;
    
       addNewPositionCallback(xy,@(xy)...
           title(['\DeltaY/\DeltaX = ',num2str((xy(4)-xy(3))/(xy(2)-xy(1))),...
                 '[\DeltaX = ',num2str(xy(2)-xy(1)),...
                 ',\DeltaY = ',num2str((xy(4)-xy(3))),']']));
    end
    

    如您所见,该示例使用'title'命令输出图形标题中的位置数据。

    有没有办法使用'text'命令在文本框中输出?

    我想显示绘制线旁边的斜率。

    此外,如果文本框也与相关行一起删除,那将会很棒。

    请帮助。

    谢谢,

    埃里克

0 个答案:

没有答案