图形句柄
- 格式:ppt
- 大小:599.00 KB
- 文档页数:28
c语言句柄的用法C语言句柄的用法句柄(Handle)是一种对某个对象的引用或代理,它提供了对对象的访问和操作。
在C语言中,句柄通常是一个整型或指针类型的变量,用于标识或引用某个资源。
下面是一些常见的C语言句柄的用法:文件句柄文件句柄用于对文件进行操作,包括打开、读写、关闭等操作。
•打开文件:使用文件句柄可以打开一个文件,获取文件句柄后就可以对文件进行读取或写入操作。
例如:FILE *file = fopen("", "r");•读取文件:使用文件句柄可以对文件进行读取操作。
例如:char buffer[100];fgets(buffer, 100, file);•写入文件:使用文件句柄可以对文件进行写入操作。
例如:fputs("Hello, World!", file);•关闭文件:使用文件句柄可以关闭文件,释放资源。
例如:fclose(file);窗口句柄窗口句柄用于对窗口进行操作,比如创建、显示、隐藏等操作。
•创建窗口:使用窗口句柄可以创建一个窗口。
例如:HWND hwnd = CreateWindow("MyWindowClass", "My Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL);•显示窗口:使用窗口句柄可以显示一个窗口。
例如:ShowWindow(hwnd, nCmdShow);•隐藏窗口:使用窗口句柄可以隐藏一个窗口。
例如:ShowWindow(hwnd, SW_HIDE);内存句柄内存句柄用于对内存进行分配和释放操作。
•分配内存:使用内存句柄可以分配一块内存。
例如:HANDLE hMemory = GlobalAlloc(GMEM_MOVEABLE, 100);•使用内存:使用内存句柄可以对已分配的内存进行读写操作。
【转】matlab图形句柄详解(⼀)在matlab中,每⼀个对象都有⼀个数字来标识,叫做句柄.当每次创建⼀个对象时,matlab就为它建⽴⼀个唯⼀的句柄,句柄中包含有该对象的相关信息参数,可以在后续程序中进⾏操作,改变其中的参数,以便达到不同的效果。
例如:gcf 是返回当前被激活的窗⼝的句柄。
你可以认为它就指代当前窗⼝。
figure(gcf)打开这个窗⼝。
句柄式图形常⽤函数:所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显⽰的⽅式。
尽管许多属性所有的对象都有,但与每⼀种对象类型(⽐如坐标轴,线,曲⾯)相关的属性列表都是独⼀⽆⼆的。
对象属性可包括诸如对象的位置、颜⾊、类型、⽗对象、⼦对象及其它内容。
每⼀个不同对象都有和它相关的属性,可以改变这些属性⽽不影响同类型的其他对象。
和每⼀种对象类型(图形,坐标轴,线,⽂本,曲⾯,补⽚和图象)相关的完整的属性列表在本章的后⾯给出。
对象属性包括属性名和与它们相联关的值。
属性名是字符串,它们通常按混合格式显⽰,每个词的开头字母⼤写,⽐如:’ LineStyle ‘ 。
但是,MATLAB识别⼀个属性时是不分⼤⼩写的。
另外,只要⽤⾜够多的字符来唯⼀地辨识⼀个属性名即可。
例如,坐标轴对象中的位置属性可以⽤ ‘ Position ‘, ‘ position ‘ ,甚⾄是 ‘ pos ‘来调⽤。
当建⽴⼀个对象时,它⽤⼀组缺省属性值,该值可以⽤两种⽅法来改变:改变默认属性值⽅法1:» Hf_1=figure( ‘color’, ‘white’ )它⽤缺省的属性值建⽴⼀个新的图形窗⼝,只是背景颜⾊被设为⽩⾊⽽不是缺省的[0.8 0.8 0.8](灰⾊)。
改变默认属性值⽅法2:为了获得和改变句柄图形对象(如上⾯的Hf_1)的属性只需要两个函数:函数get返回某些对象属性的当前值。
使⽤函数get的最简单语法是get(handle, ‘ PropertyName’ )。
matlab图形操作本⽂对matlab中利⽤图形句柄对图⽚属性进⾏设置的操作进⾏简单的总结说明:(1)对图窗和坐标轴属性进⾏整体设置可以通过gcf和gca语句获取当前图窗句柄和坐标轴句柄,通过该句柄可以对图窗和坐标轴的各项属性进⾏操作。
图窗和坐标轴分别包含如下属性:% 图窗属性... ...Children: [1×1 Axes] Color: [0.9400 0.9400 0.9400]Colormap: [256×3 double] CurrentAxes: [1×1 Axes]... ...InnerPosition: [680 558 560 420] PaperUnits: 'centimeters'OuterPosition: [672 550 576 514] Position: [680 558 560 420]Units: 'pixels'% 坐标轴属性... ...Box: 'on' BoxStyle: 'back'Children: [1×1 Line] Color: [1 1 1]FontAngle: 'normal' FontName: 'Helvetica'FontSize: 10 FontSizeMode: 'auto'FontSmoothing: 'on' FontUnits: 'points'FontWeight: 'normal' GridColor: [0.1500 0.1500 0.1500]GridLineStyle: '-' Legend: [0×0 GraphicsPlaceholder]LineWidth: 0.5000 OuterPosition: [0 0 1 1]Parent: [1×1 Figure] Position: [0.1300 0.1100 0.7750 0.8150]Title: [1×1 Text] TitleFontWeight: 'normal'Units: 'normalized' UserData: []View: [0 90] Visible: 'on'... ...XAxis: [1×1 NumericRuler] XAxisLocation: 'bottom'XColor: [0.1500 0.1500 0.1500] XColorMode: 'auto'XDir: 'normal' XGrid: 'off'XLabel: [1×1 Text] XLim: [0 100]XScale: 'linear' XTick: [0 10 20 30 40 50 60 70 80 90 100]XTickLabel: {11×1 cell} XTickLabelRotation: 0YAxis: [1×1 NumericRuler] YColor: [0.1500 0.1500 0.1500]YGrid: 'off' YLabel: [1×1 Text]YLim: [0 100] YScale: 'linear'YTick: [0 10 20 30 40 50 60 70 80 90 100] YTickLabel: {11×1 cell}YTickLabelRotation: 0 ZLabel: [1×1 Text]ZLim: [-1 1] ZScale: 'linear'ZTick: [-1 0 1] ZTickLabel: ''ZTickLabelRotation: 0... ...上⾯仅仅是展⽰了图窗和坐标轴部分重要且常⽤的属性,它们的全部属性可通过查matlab的帮助⽂档或直接在matlab的命令⾏上输⼊gcf、gca或通过如下图所⽰的属性窗⼝进⾏查询和设置。
句柄图形句柄图形对象句柄图形是对底层图形例程集合的总称,实际上是进行生成图形的工作句柄图形的概念:一幅图的每一组成部分是一个对象,每一个对象有一系列句柄和它相关,每一个对象又按需要可以改变属性1、图形框架窗口对象(Figure)(1)、绘制图形的图形框架窗口对象gca:获得当前坐标轴对象的句柄gcbf:获得当前正在执行调用的图形对象的句柄gcbo:获得当前正在执行调用的对象的句柄gcf:获得当前图形对象的句柄gco:获得当前对象的句柄get(gcf) %由于当前状态下不存在图形窗口,系统生成新的图形窗口(2)、核心(Core)对象核心对象:包括直线、文本和特殊对象(光、图像和面图)等基本的绘图命令坐标系对象:包括线、面图和等高线图等描述的数据对象MATLAB中创建核心对象的函数axes:坐标轴image:MATLAB中的图像light:光源line:二维图形中最基本的图形对象patch:按指定方式填充多边形rectangle:具有可设置边界和表面颜色的二维图形对象surface:图形表面text:图形中的文本[x y]=meshgrid([-2:0.4:2]);Z=x.*exp(-x.^2-y.^2);fh=figure('Position',[350 275 600 450],'Color','w');ah=axes('Color',[0.8 0.8 0.8],'XTick',[-2 -1 0 1 2],...'YTick',[-2 -1 0 1 2]);sh=surface('XData',x,'YData',y,'ZData',Z,...'FaceColor',get(ah,'Color')+0.1,...'EdgeColor','k','Marker','o',...'MarkerFaceColor',[0.5 1 0.85]);view(3)(3)、绘图(Plot)对象绘图对象的父对象可以是坐标轴对象或是群对象MATLAB中绘图对象及其绘图命令areaseries:用于创建area图barseries:用于创建bar图contourgroup:用于创建contour图errobarseries:用于创建errorbar图lineseries:提供给绘制线型图的plot和plot3等函数使用quivergroup:用于创建quiver和quiver3图形scattergroup:用于创建scatter和scatter3图形stairseries:用于创建阶梯图形stemseries:用于创建stem和stem3图形surfaceplot :提供给surf和mesh群函数使用[x y z]=peaks;[c h]=contour(x,y,z);set(h,'LineWidth',3,'LineStyle',':')(4)、注释对象图形编辑工具栏Insert菜单注释函数x=-2*pi:pi/12:2*pi;y=x.^2;subplot(2,2,1:2)plot(x,y)h1=subplot(223);y=x.^4;plot(x,y)h2=subplot(224)y=x.^5;plot(x,y)%定义注释矩形的位置和大小p1=get(h1,'Position');t1=get(h1,'TightInset');p2=get(h2,'Position');t2=get(h2,'TightInset');x1=p1(1)-t1(1);y1=p1(2)-t1(2);x2=p2(1)-t2(1);y2=p2(2)-t2(2);w=x2-x1+t1(1)+p2(3)+t2(3);h=p2(4)+t2(2)+t2(4);%创建注释矩阵来环绕下面两个子图annotation('rectangle',[x1 y1 w h],...'FaceAlpha',0.2,'FaceColor','red','EdgeColor','red');通用函数get和set1、get函数get(handle,’PropertyName’):得到对象的属性及其属性值Hf_1=figure('color','w')p=get(Hf_1,'position') %位置p=get(Hf_1,'Children') %子对象p=get(Hf_1,'Color') %颜色get(Hf_1) %整个图形的属性2、set函数set(H,’PropertyName’,PropertyValue):可以同时设置多个属性的值set(H,a):a为结构体,字段名为图形对象的属性名,字段值为属性值set(H,pn,pv):通过单元型变量为图形对象进行属性赋值,其中pn和pv为单元型变量,pn 为1*n的字符型单元变量,其分量为图形对象的属性名,pv可以是m*n的单元型变量,这里m为句柄数组H的长度,即m=length(H)x=-2*pi:pi/12:2*pi;y=x.^2+x.^3;h=figure;plot(x,y);set(h,'position',[232 248 560 420])set(h,'units') %帮助set(h,'position') %帮助figure('Color','blue','NumberTitle','off','Name','My Figure')Hf_fig=figureHf_line=lineset(Hf_line)get(Hf_line)x=linspace(-2*pi,2*pi,200);y=sin(x);Hf_sin=plot(x,y);set(Hf_sin,'Color',[1 0.5 0],'LineWidth',3)z=cos(x);hold onHf_cos=plot(x,z);set(Hf_cos,'Color',[0.75 0.75 1])查找对象Hf_fig=gcf:返回当前图形的句柄Hf_ax=gca:返回当前图形的当前坐标轴句柄Hx_obj=gco或是Hx_obj=gco(Hf_fig):获取当前对象findobj函数Hx=findobj(‘P1name’,P1value,…):返回根部和根部以下的那些属性值与findobj参数项匹配的对象句柄Hx=findobj(Objecthandle,‘P1name’,P1value,…):限定在Objecthandle中列出的对象和它们的子对象Hx=findobj(Objecthandle,’flat’,‘P1name’,P1value,…):限定在Objecthandle中列出的对象H=findobj:返回根对象和它所有子对象的句柄H=findobj(Objecthandle):返回Objecthandle中列出的对象和它们的子对象的句柄当前对象的定义:用鼠标刚刚点过的对象x=linspace(-pi,pi,100);y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');H1_lines=get(gca,'Children');for k=1:size(H1_lines)if get(H1_lines(k),'color')==[0 1 0] %查找图中绿色线条的句柄H1_green(k)=H1_lines(k);endendH1_green堆积次序堆积次序决定哪一对象叠加在其他对象上,最后被创建的对象在堆栈顶部默认属性使用set函数默认属性名:Default+属性名set(0,'DefaultAxesColorOrder',[0 0 0],...'DefaultAxesLineStyleOrder','-|--|:|-.')z=peaks;plot(1:49,z(4:7,:))。
实验7 图形句柄的应用、可视化界面的设计一、实验目的1、掌握图形句柄的应用;2、采用figure,uimenu,uicontextmenu函数设置窗口界面;3、掌握可视化界面GUI的设计应用。
二、实验内容1、运行以下程序:(1)体会pause、close命令的作用。
(2)语句9的作用是什么?(3)12语句的作用是什么?(4)13语句的作用是什么?修改其中的属性值,看运行结果如何?(5)修改14语句中的属性值,看运行结果如何?(6)16,17语句的作用是什么?x=-5:0.1:5; % 1h=plot(x,3*x+sin(x)-exp(x)); % 2set(h,'color','r','linestyle',':','linewidth',5) % 3title('曲线图','color','g') % 4pause % 5set(get(gca,'xlabel'),'string','x-axis'); % 6set(get(gca,'ylabel'),'string','y-axis'); % 7set(get(gca,'zlabel'),'string','z-axis'); % 8set(get(gca,'title'),'color','r','fontsize',25); % 9pause % 10close % 11scrsz = get(0,'ScreenSize'); % 12set(gcf,'Position',[20 100 scrsz(3)/2 scrsz(4)/2]) % 13set(gca,'position',[0.1 0.1 0.8 0.8]) % 14h=plot(x,3*x+sin(x)-exp(x)) % 15set(gca,'xlim',[-10,10]); % 16set(gca,'ylim',[-100,30]); % 172、采用figure,uimenu,uicontextmenu函数设置窗口界面如图1:(1)隐藏原菜单条,将标题命名为:运行结果。
matlab中图形句柄到底是什么意思?有什么用?
简单来说,图形对象的名字就叫句柄。
可以通过这个“句柄”,得到或者修改图形对象的属性,这就是它的用处。
比如说画了一个图,可以修改图形坐标,线条宽度,这些就是这个图形对象的属性。
matlab_图形句柄基本概念
在matlab中,图形句柄操作函数是指处于底层的图形特性函数的总称。
图形句柄函数用来描述图形的表现方式和显示方式,使用图形句柄函数可以对图形特性进行控制。
matlab把每一个可视部分都视为一个对象,其中每个对象都有一个唯一的标识符与之对应(也成为句柄);
并且每个对象都定义一组属性,这些属性可以由用户修改,通过设置这些属性,控制对象的图形显示方式。
每一个句柄变量中都存储一个数值,用来作为对象的标识。
matlab7的图形对象的层次结构如下所示:
计算机屏幕root
||
图形窗口figure
// || \\
注释坐标轴坐标轴 UI对象
计算机屏幕的句柄为0,新建图形窗口的句柄一般用1,2,3。
表示,其它对象的句柄都是用一个双精度数表示,不同的对象具有不同的句柄。
圆角调节控制句柄圆角调节控制句柄是一种常见的图形用户界面元素,用于调节图形对象的大小和形状。
它通常由一个或多个小圆圈或方块组成,用户可以通过拖动这些句柄来改变对象的大小和形状。
在本文中,我们将介绍一些常见的圆角调节控制句柄,并讨论它们的用途和优缺点。
1. 四个角都有圆角的矩形调节句柄这种句柄通常用于调节矩形的大小和形状。
用户可以通过拖动句柄来改变矩形的宽度和高度,以及四个角的圆角半径。
这种句柄的优点是可以同时调节矩形的大小和形状,缺点是可能会使矩形的形状变得不规则。
2. 单个角有圆角的矩形调节句柄这种句柄通常用于调节矩形的形状。
用户可以通过拖动句柄来改变矩形的一个角的圆角半径,从而使矩形变得更加圆润。
这种句柄的优点是可以使矩形的形状更加自然,缺点是不能同时调节矩形的大小。
3. 圆形调节句柄这种句柄通常用于调节圆形的大小。
用户可以通过拖动句柄来改变圆形的半径,从而使圆形变得更大或更小。
这种句柄的优点是可以很容易地调节圆形的大小,缺点是不能改变圆形的形状。
4. 椭圆调节句柄这种句柄通常用于调节椭圆的大小和形状。
用户可以通过拖动句柄来改变椭圆的宽度和高度,以及椭圆的圆角半径。
这种句柄的优点是可以同时调节椭圆的大小和形状,缺点是可能会使椭圆的形状变得不规则。
5. 多边形调节句柄这种句柄通常用于调节多边形的大小和形状。
用户可以通过拖动句柄来改变多边形的顶点位置,从而改变多边形的形状。
这种句柄的优点是可以很容易地调节多边形的形状,缺点是可能会使多边形的形状变得不规则。
6. 直线调节句柄这种句柄通常用于调节直线的长度和角度。
用户可以通过拖动句柄来改变直线的长度和角度,从而使直线变得更长或更短,或者改变直线的方向。
这种句柄的优点是可以很容易地调节直线的长度和角度,缺点是不能改变直线的形状。
7. 弧形调节句柄这种句柄通常用于调节弧形的大小和形状。
用户可以通过拖动句柄来改变弧形的半径和角度,从而使弧形变得更大或更小,或者改变弧形的形状。
1.数组运算和矩阵运算的运算符有什么区别?答:从定义上来看,数组是一组有顺序的信息,不但可以是数字信息,还可以是字符数据和符号数据,而矩阵是应用于线性代数中的二维数组,所以其运算符号存在很大的差别。
(1)适应对象的差别。
矩阵作为一种变换或映射算子的体现,,主要适应于数字数据。
数组运算符适应于数字、字符、符号多种数据。
(2)运算规则的差别。
矩阵运算有着明确而严格的数学规则,而数组元算是MATLAB软件所定义的规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效,缺乏严谨的数学推理。
(3)点的运用不同。
矩阵运算按线性变换定义,使用通常符号;数组运算按对应元素运算定义,使用点运算符2.什么是图形句柄?图形句柄有什么用途?定义:绘图函数将不同的曲线或曲面绘制在图形窗口中,而图形窗口由不同的对象(坐标轴、曲线、曲面、文字等)组成,MATLAB 给每个图形对象配置一个标志符,这个分配的值(名字),称为图形句柄。
作用:通过图形句柄可以方便地获得已经创建并保存的图形属性,可以设置和修改该图形的属性,从而使得自主绘图更为方便3.如何定义全局变量?同其他的程序语言一样,MATLAB也存在变量的的作用域问题,在未加说明的情况下,MATLAB 将一切所识别的变量视为局部变量,即仅在其调用的M 文件中有效。
如果要定义全局变量,首先在变量名前加关键字global进行特殊说明,即采用“global +变量名”即可定义全局变量。
4.简述MATLAB中变量的命名原则必须以字母开头;可以使用数字、字母或下划线;变量名区分大小写;变量名的长度可以是任意的,但是只有前面63个字符视为有效;不能使用关键字作为变量名;不建议使用函数名作为变量名。
5. 简述使用M文件与在MATLAB命令窗口中直接输入命令有何异同?有何优缺点?M文件是一个ASCII码的文件,类似于源代码,它不仅可以像命令窗口一样运行程序,还能够将程序文件保存。
python 句柄参数句柄是一种在编程语言中常见的概念,用于表示对某个资源或数据的引用。
在Python中,句柄通常是指对文件、网络连接、数据库连接等资源的引用。
句柄参数是指在调用函数或方法时,将句柄作为参数传递给函数或方法。
下面是一些关于句柄参数的例子:1. 文件句柄参数:在Python中,可以使用文件句柄参数来操作文件。
例如,可以使用open函数打开一个文件,并将文件句柄作为参数传递给其他函数,如读取文件内容或写入文件内容的函数。
2. 网络连接句柄参数:在网络编程中,可以使用网络连接句柄参数来进行网络通信。
例如,可以使用socket库创建一个网络连接,并将连接句柄作为参数传递给其他函数,如发送或接收数据的函数。
3. 数据库连接句柄参数:在数据库编程中,可以使用数据库连接句柄参数来操作数据库。
例如,可以使用pymysql库创建一个数据库连接,并将连接句柄作为参数传递给其他函数,如执行SQL查询或更新的函数。
4. 线程句柄参数:在多线程编程中,可以使用线程句柄参数来控制线程的执行。
例如,可以使用threading库创建一个线程,并将线程句柄作为参数传递给其他函数,如设置线程的优先级或等待线程结束的函数。
5. 进程句柄参数:在多进程编程中,可以使用进程句柄参数来控制进程的执行。
例如,可以使用multiprocessing库创建一个进程,并将进程句柄作为参数传递给其他函数,如获取进程ID或等待进程结束的函数。
6. 图形界面句柄参数:在图形界面编程中,可以使用图形界面句柄参数来操作图形界面元素。
例如,可以使用tkinter库创建一个窗口,并将窗口句柄作为参数传递给其他函数,如添加按钮或显示消息框的函数。
7. 串口句柄参数:在串口通信中,可以使用串口句柄参数来进行串口通信。
例如,可以使用pyserial库创建一个串口连接,并将连接句柄作为参数传递给其他函数,如发送或接收数据的函数。
8. 文件描述符句柄参数:在操作系统编程中,可以使用文件描述符句柄参数来操作文件或设备。