[已答复] 绘图交互性移动已经画好的线段

[复制链接]
gywxd 发表于 2021-5-2 22:49:42
本帖最后由 gywxd 于 2021-5-3 07:27 编辑

用到一个交互性的功能查到这段代码,比较好用,问题是一些位置不大明了的地方 请教懂的大神指点一下,   另外这个程序也有很好的示范性,需要的可以参考
其中   cp = haxes.CurrentPoint   是获取鼠标位置  但是   结果是
cp =

    6.1947    0.2915    1.0000
    6.1947    0.2915   -1.0000   

后面的第3列是个什么意思


哪里可以找到  各个回调函数 事件的详细说明


  1. function test()
  2. clear
  3. clc
  4. figure();
  5. plot((1:0.5:10)',sin(1:0.5:10)'*(1:10),...
  6.   'LineWidth',3,'ButtonDownFcn', @bdfcn);


  7. drawnow
  8. haxes=gca;hfigure=gcf;
  9. haxes.XLimMode='manual';
  10. haxes.YLimMode='manual';
  11. hsel=[]; % 选择的线
  12. op=[0,0];% 初始点


  13.   function bdfcn(hline,edata)
  14.     % edata.Button=1 左键, 3 右键
  15.     edata
  16.     op=edata.IntersectionPoint(1:2)
  17.     hsel=hline;
  18.     hsel.Selected='on';
  19.     hfigure.WindowButtonMotionFcn=@wbmfcn;
  20.     hfigure.WindowButtonUpFcn=@wbufcn;
  21.   end
  22.   function wbmfcn(h,e)
  23.     cp = haxes.CurrentPoint  % 鼠标位置
  24.     hsel.XData=hsel.XData+cp(1,1)-op(1);   %原坐标 +(移动后坐标-起始移动点坐标的值)=新坐标
  25.     hsel.YData=hsel.YData+cp(1,2)-op(2);
  26.     op=cp(1,1:2);
  27.   end
  28.   function wbufcn(h,e)
  29.     hfigure.WindowButtonMotionFcn='';
  30.     hfigure.WindowButtonUpFcn='';
  31.     hsel.Selected='off';
  32.   end
  33. end
复制代码




1 条回复


WarnerChang 发表于 6 天前
在Figure属性中就有各个回调函数吧!
Image 111.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表