Matlab实现鼠标写字代码

作者:小菜 更新时间:2025-03-16 点击数:
简介:最早的程序,实在忘了从哪里下载的了。

能够实现鼠标的手写输入,但是一些不连续的点。

tmouse.mfunction tmouse(action)% TMOUSE

【菜科解读】

最早的程序,实在忘了从哪里下载的了。

能够实现鼠标的手写输入,但是一些不连续的点。

tmouse.mfunction tmouse(action)% TMOUSE 本例展示如何以Handle Graphics来设定滑鼠事件(Mouse% Events)的反应指令(Callbacks)if nargin == 0 action = 'start'; endswitch(action) % 开启图形视窗 case 'start', axis([0 1 0 1]);% 设定图轴范围 box on;% 将图轴加上图框 title('Click and drag your mouse in this window!'); % 设定滑鼠按钮被按下时的反应指令为「tmouse down」 set(gcf, 'WindowButtonDownFcn', 'tmouse down'); % 滑鼠按钮被按下时的反应指令 case 'down', % 设定滑鼠移动时的反应指令为「tmouse move」 set(gcf, 'WindowButtonMotionFcn', 'tmouse move'); % 设定滑鼠按钮被释放时的反应指令为「tmouse up」 set(gcf, 'WindowButtonUpFcn', 'tmouse up'); % 列印「Mouse down!」讯息 fprintf('Mouse down!\n'); % 滑鼠移动时的反应指令 case 'move', currPt = get(gca, 'CurrentPoint'); x = currPt(1,1); y = currPt(1,2); line(x, y, 'marker', '.', 'EraseMode', 'xor'); % 列印「Mouse is moving!」讯息及滑鼠现在位置 fprintf('Mouse is moving! Current location = (%g, %g)\n', currPt(1,1), currPt(1,2)); % 滑鼠按钮被释放时的反应指令 case 'up', % 清除滑鼠移动时的反应指令 set(gcf, 'WindowButtonMotionFcn', ''); % 清除滑鼠按钮被释放时的反应指令 set(gcf, 'WindowButtonUpFcn', ''); % 列印「Mouse up!」讯息 fprintf('Mouse up!\n');endend

本人在matlab 2010a上运行过该程序tmouse.m,运行结果截图如下:

之后有人在此基础上,把画点改成了连续的线段。

本人觉得程序还有点小问题,在此不再转载。

下面是本人改进的程序,能够实现点击左键输入,右键显示输入的记录结果。

MouseDraw.mfunction MouseDraw(action)% MouseDraw 本例展示如何以Handle Graphics来设定滑鼠事件% (MouseDraw Events)的反应指令(Callbacks)% 本程序在鼠标移动非常快时,不会造成画“断线”% global不能传矩阵global InitialX InitialY FigHandleimSize = 200;if nargin == 0, action = 'start'; endswitch(action) %%开启图形视窗 case 'start', FigHandle = figure('WindowButtonDownFcn','MouseDraw down'); axis([1 imSize 1 imSize]); % 设定图轴范围% axis off; grid on; box on; % 将图轴加上图框 title('手写体输入窗');% % fprintf('start'); %%设定滑鼠按钮被按下时的反应指令为「MouseDraw down」 % set(gcf, 'WindowButtonDownFcn', 'MouseDraw down'); dlmwrite('IXT.txt', -10, 'delimiter', '\t', 'precision', 6); dlmwrite('IYT.txt', -10, 'delimiter', '\t', 'precision', 6); %%滑鼠按钮被按下时的反应指令 case 'down', if strcmp(get(FigHandle, 'SelectionType'), 'normal') %如果是左键 set(FigHandle,'pointer','hand'); CurPiont = get(gca, 'CurrentPoint'); InitialX = CurPiont(1,1); InitialY = CurPiont(1,2); dlmwrite('IXT.txt', InitialX, '-append', 'delimiter', '\t', 'precision', 6); dlmwrite('IYT.txt', InitialY, '-append', 'delimiter', '\t', 'precision', 6); % 列印「MouseDraw down!」讯息% % fprintf('MouseDraw down!\n'); % 设定滑鼠移动时的反应指令为「MouseDraw move」 set(gcf, 'WindowButtonMotionFcn', 'MouseDraw move'); set(gcf, 'WindowButtonUpFcn', 'MouseDraw up'); elseif strcmp(get(FigHandle, 'SelectionType'), 'alt') % 如果是右键 set(FigHandle, 'Pointer', 'arrow'); set( FigHandle, 'WindowButtonMotionFcn', '') set(FigHandle, 'WindowButtonUpFcn', '') fprintf('MouseDraw right button down!\n'); ImageX = importdata('IXT.txt'); ImageY = importdata('IYT.txt'); InputImage = ones(imSize); roundX = round(ImageX); roundY = round(ImageY); for k = 1:size(ImageX,1) if 0 InitialX step_x = x_gap; else step_x = -x_gap; end if Y > InitialY step_y = y_gap; else step_y = -y_gap; end % 定义x,y的变化范围和步长 if abs(X-InitialX) Matlab,实现,鼠标,写字,代码,最,早的,程序,实在,

十八世纪的意大利做干了哪些事情 为什么能够实现统一呢

话说,自成立以后,终于先是在公元1866年的时候从奥地利手里收回了威尼斯,接着就又在公元1870年的时候,收回了教皇的辖区,实现了全境的统一。

那么,这究竟是怎么回事呢?下面我们就一起前往查看一番。

首先,让我们先将目光移到公元1860年5月6日的早晨,就会发现,在意大利热那亚城外的港口,有两艘旧船正稳稳地停着,似乎在等待着什么重要任务。

而此时,1000多名身穿红衬衫,头戴阔边帽的意大利人则迅速登上了这两艘船。

接着,只见有一个中年人在大声呼喊:“为解放西西里岛的同胞,为意大利的统一,前进!”然后,轮船就像飞一样,消失在了漆黑的海洋里。

那么,这又是咋回事呢?原来那个高喊口号的中年人叫加里波第。

他生于1807年,是一个水手出身。

青年的时候就由于在反对外国占领者的过程中失败而逃到了拉丁美洲,然后,在1848年回国以后,就成为了意大利统一运动的领导者。

要知道,统一对于当时的意大利而言非常重要。

因为当时的意大利至少也分裂为了数个小国。

而北部的几个小国则被奥地利占领,南部的西西里王国则被西班牙占领,中部地区则归属于教皇管理,可以说是。

因此,当西西里王国的许多爱国老百姓听闻有意大利统一运动的武装力量前来的时候,都感到格外高兴。

他们马上就兴高采烈地到码头迎接,而见面之后,便开始商量对策。

但就在此时,炮声响了。

原来殖民者西班牙已经知道了意大利统一运动武装已经到达了西西里岛的消息,他们马上派遣部队前来攻击。

但是,令人可笑的是,正当加里波第他们想要还击的时候,敌人的炮声却突然停了。

原来港口内还有两艘英国商船,他们刚提出抗议,西班牙的士兵们便不敢再进行攻击了。

于是,加里波第的红衫军就很快就以港口为基地,借机又扩大了规模,接着,在实力大增之后,加里波第便下令向西西里岛的首府巴勒莫进军。

但是,当他们刚刚出发在进军的路上,就遇到了一座梯形的高山,山上则有两倍于红衫军的敌人占领。

按道理说,一看这情况,红衫军就应该退缩了。

然而,加里波第的红衫军却并没有退缩。

在经过了一阵猛冲猛打之后,红衫军就占领了这一座高山。

然后,兵临首府巴勒莫。

于是,5月27日的凌晨,天还没有亮,总攻就开始了!在持续了两天两夜的战斗后,西班牙占领军和西西里王国的反动军队是死的死,逃的逃,红衫军取得了胜利。

但是,为了不让敌人有喘息的机会,当年的八月,加里波第就带领着红衫军向着西西里王国的首都那不勒斯进军。

随后,在当地人民的支持下,那不勒斯也获得了解放。

然后,1860年11月初的一天,意大利新国王厄马努埃尔便和意大利统一运动的最高首领加里波第手拉手走在了那不勒斯的大街上,接受全市人民对他们得热烈欢迎。

至此,意大利开始走向了统一之路。

总之,十八世纪的意大利为何能够实现全境统一?来源于意大利人民不屈不挠的战斗意志。

随机文章塞普蒂米乌斯·西弗勒斯拱门简介日本富士山简介详解c5运输机和c17的区别,造价3亿美元的C17性能更优尼古拉特斯拉有多恐怖,击败爱迪生成为现代电气学之父地表喀斯特地貌类型,喀斯特地貌的形成过程(大自然风化而成)

如何顺利实现社会保险的跨省转移?这种跨省转移需要多长时间时间?(2025年4月9日)

跨省转移社保,让您的社保权益得到保险!通过转移社保,您可以确保自己的社保权益得到充分保险。

下面随新社通小编一起了解详情。

跨省社保转移通常需要45个工作日。

以下是跨省社保转移的主要步骤及时间安排:申请阶段参保人在新就业地建立社保关系并缴费后,需向新参保地社保经办机构提出转移接续申请。

此阶段时间取决于申请人提交材料的及时性和完整性。

审核阶段新参保地社保经办机构在收到申请后,需在15个工作日内完成审核。

若符合条件,向原参保地发出同意接收函;若不符合,则向申请人作出书面说明。

办理转移手续阶段原参保地在接到同意接收函后,需在15个工作日内办理转移手续,包括个人账户清理、资金划转及信息传递等。

接收阶段新参保地在收到原参保地转移的社保关系和资金后,需在15个工作日内完成接收手续,并告诉用人单位或参保人员。

需要注意的是,如果审核过程中发现资料有误,可能需要更长时间。

此外,参保人可通过“电子社保卡”微信小程序的社保转移进度查询功能查看办理进度。

建议在办理前提前了解相关法规,并咨询当地社保经办机构,以确保流程顺利进行。

通过以上介绍,您可以清晰地了解跨省社保转移。

在办理转移手续时,请务必按照当地社保机构的要求进行操作,确保转移结果的准确无误。

加入收藏
               

Matlab实现鼠标写字代码

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录