matlab 鼠标拖动图像,Matlab 鼠标拖动字对象

该程序介绍了如何在MATLAB环境中创建并拖动文字对象。通过函数`textzzy.m`,用户可以输入字符串或选择已存在的文字对象,然后使用鼠标进行拖放操作,调整其在图形窗口中的位置。程序利用了MATLAB的图形用户交互功能,包括鼠标按钮回调和图形对象属性设置,实现了动态调整文字位置的功能。
摘要由CSDN通过智能技术生成

10.7.9 鼠标拖动字对象

【例 10.7.9 -1 】本程序有两个功能:把当前图形窗中已存在的任何字对象拖放到所需的位置;向当前图形窗输入字对象,并拖放到任何所需位置。

(1)编写以下程序

[textzzy.m]

function textzzy(arg)

% textzzy.m 向当前图形窗输入“字对象”,并用鼠标移放到需要的地方

% arg 任何合法的“字符串”,或“字符串元胞数组”,或数值

% 调用格式 textzzy(S_C) 输入串、串元胞 S_C ,并可用鼠标拖动

% 调用格式 textzzy 可移动当前图形窗中已有的任何字对象

if ~nargin;arg=0; end

if ischar(arg)iscell(arg) % 以下指令向图形窗输入串或串元胞

PT.Units= 'normalized' ;

PT.Position=[0.01 0.01]; % 字符串进入图形窗的初始位置

PT.String=arg;

PT.HorizontalAlignment= 'left' ; % 字符串的水平定位方式

PT.VerticalAlignment= 'baseline' ; % 字符串的垂直定位方式

ht=text(PT); % 采用构架设置字对象属性,创建对象。

textzzy(0) % 递归调用 textzzy.m

elseif arg==0 % 为鼠标操作准备条件

hf=get(0, 'CurrentFigure' ); % 获取当前图形窗的句柄

if isempty(hf)

error( ' 图形窗不存在。 ' )

end

PF1.BackingStore= 'off' ; % 为加快拖动速度,释放屏幕象素缓冲器。

PF1.WindowButtonDownFcn= 'textzzy(1)' ; % 等待鼠标按下左键,递归运行 textzzy(1)

set(hf,PF1) % 采用构架设置图对象属性

figure(hf) % 把当前图形窗调到前台

elseif arg==1 & strcmp(get(gco, 'Type' ), 'text' ) % 选定字对象

PO1.Units= 'data' ; % 在此设置下,字对象框的左下顶点确定位置

PO1.Erasemode= 'xor' ; % 设置旧对象的擦除模式

PO1.HorizontalAlignment= 'left' ;PO1.VerticalAlignment= 'baseline' ;

set(gco,PO1) % 采用构架设置选定对象的属性

PF2.Pointer= 'fleur' ; % 设置移动光标的形状

PF2.WindowButtonMotionFcn= 'textzzy(2)' ; % 移动鼠标时,递归运行 textzzy(2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值