发布企业信息

Matlab 鼠标拖动字对象

作者:未知  信息来源:未知  2006-1-26

字体大小:  网友评论  进入论坛  

9 鼠标拖动字对象【例 10。9 -1 】本程序有两个功能:把当前图形窗中已存在的任何字对象拖放到所需的位置。向当前图形窗输入字对象,并拖放到任何所需位置。(1)编写以下程序[textzzy。...
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)

PF2.WindowButtonUpFcn= 'textzzy(999)' ; % 松开鼠标,递归运行 textzzy(999)

set(gcf,PF2) % 采用构架对图形窗属性再设置

elseif arg==2 % 拖动字对象

curpoi=get(gca, 'CurrentPoint' ); % 获得鼠标所在新位置的坐标

set(gco, 'Position' ,curpoi(1,1:3)) % 使所选对象定位在新坐标处

elseif arg==999 % 松开鼠标便属性重置为原缺省状态

set(gco, 'EraseMode' , 'normal' )

PF3.WindowButtonDownFcn= '' ; % 恢复设置为缺省值,即空串

PF3.WindowButtonMotionFcn= '' ;

PF3.WindowButtonUpFcn= '' ;

PF3.Pointer= 'arrow' ; % 光标恢复成箭头

PF3.Units= 'pixels' ;

PF3.BackingStore= 'on' ; % 重新起用象素缓冲器

set(gcf,PF3) % 把图形窗设置为缺省状态

else % 假如鼠标选择的不是“字对象”,恢复缺省设置

PF4.WindowButtonDownFcn= '' ;

PF4.WindowButtonMotionFcn= '' ;

PF4.WindowButtonUpFcn= '' ;

PF4.Pointer= 'arrow' ;

PF4.Units= 'pixels' ;

PF4.BackingStore= 'on' ;

set(gcf,PF4)

end
分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》