📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -