当前位置: 首页 > news >正文

MATLAB系列09:图形句柄

MATLAB系列09:图形句柄

  • 9. 图形句柄
    • 9.1 MATLAB图形系统
    • 9.2 对象句柄
    • 9.3 对象属性的检测和更改
      • 9.3.1 在创建对象时改变对象的属性
      • 9.3.2 对象创建后改变对象的属性
    • 9.4 用 set 函数列出可能属性值
    • 9.5 自定义数据
    • 9.6 对象查找
    • 9.7 用鼠标选择对象
    • 9.8 位置和单位
      • 9.8.1 图像(figure)对象的位置
      • 9.8.2 坐标系对象和 uicontrol 对象的位置
      • 9.8.3 文本(text)对象的位置
    • 9.9 打印位置
    • 9.10 默认和 factory 属性

9. 图形句柄

9.1 MATLAB图形系统

MATLAB 图形系统是建立在图形对象的等级系统之上, 每一个图形对象都有一个独立的名字, 这个名字叫做句柄。 每一个图形对象都有它的属性, 我们可以通过修改它的属性来修改物体的行为。 例如, 一条曲线是图形对象的一种。 曲线对象有以下的属性: x 数据, y 数据, 颜色, 线的类型, 线宽, 符号类型等等。 修改其中的一个属性就会改变图象窗口中的一个图像。

图形对象的层次结构如下:

image-20240916145838176

在 MATLAB 中最高层次的图形对象被称为根对象, 我们可以通过它对整个计算机屏幕进行控制。 当 MATLAB 启动时, 根对象会被自动创建, 它一直存在直到 MATLAB 被关闭。与根对象相关的属性是应用于所用 MATLAB 窗口的默认属性。

在根对象下, 有多个图像窗口, 或只有图像。 每一个图像在用于显示图像数据的计算机屏幕上都有一个独立的窗口, 每一个图像都有它独立的属性。 与图像相关的属性有, 颜色,图片底色, 纸张大小, 纸张排列方向, 指针类型等。

9.2 对象句柄

句柄是在 MATLAB 中的一个独一无二的整数或实数, 用于指定对象的身份。 用于创建一个图象对象的任意命令都会自动地返回一个句柄。示例:

>> Handl=figureHandl = Figure (1) - 属性:Number: 1Name: ''Color: [0.9400 0.9400 0.9400]Position: [573 444 560 420]Units: 'pixels'显示 所有属性

图像(图)对象的句柄一般是一个小的正整数, 例如 1, 2, 3……而其他的图形(graphic)对象为任意的浮点数。我们可以利用 MATLAB 函数得到图像, 坐标系和其他对象的句柄。 例如, 函数 gcf 返回当前图像窗口的句柄, 而函数 gca 则返回在当前图像窗口中的当前坐标系对象的句柄, 函数gco 返回当前选择对象的句柄。 为了方便, 存储句柄的变量名要在小写字母后面个H。 这样就可以与普通变量(所有的小写变量, 大写变量, 全局变量)区分开来。

9.3 对象属性的检测和更改

9.3.1 在创建对象时改变对象的属性

当一个对象被创建时, 所有的属性都会自动初始化为默认值。 包含有"propertyname(属性名)"的创建函数创建对象时, 默认值会被跳过, 而跳过的值在创建函数中有。

plot(x, y, 'LineWidth', 2);

9.3.2 对象创建后改变对象的属性

我们可以用随时用 get 函数检测任意一个对象的属性, 并用 set 函数对它进行修改。

示例:

>> x = 0:0.1:2;
y = x .^2;
Hnd1 = plot(x, y);
>> result=get(Hnd1)result = 包含以下字段的 struct:XData: [0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1] (1×21 double)XDataMode: 'manual'XVariable: ''YData: [0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900 0.6400 0.8100 1] (1×21 double)YDataMode: 'manual'YVariable: ''ZData: [1×0 double]ZDataMode: 'auto'ZVariable: ''XDataSource: ''YDataSource: ''ZDataSource: ''Color: [0 0.4470 0.7410]ColorMode: 'auto'LineStyle: '-'LineStyleMode: 'auto'LineWidth: 0.5000Marker: 'none'MarkerMode: 'auto'MarkerSize: 6MarkerEdgeColor: 'auto'MarkerFaceColor: 'none'Clipping: onMarkerIndices: [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21]AlignVertexCenters: offLineJoin: 'round'Children: [0×0 GraphicsPlaceholder]Parent: [1×1 Axes]Visible: onHandleVisibility: 'on'ButtonDownFcn: ''ContextMenu: [0×0 GraphicsPlaceholder]BusyAction: 'queue'BeingDeleted: offInterruptible: onCreateFcn: ''DeleteFcn: ''Type: 'line'Tag: ''UserData: []Selected: offSelectionHighlight: onHitTest: onPickableParts: 'visible'DisplayName: ''Annotation: [1×1 matlab.graphics.eventdata.Annotation]SeriesIndex: 1DataTipTemplate: [1×1 matlab.graphics.datatip.DataTipTemplate]SourceTable: [0×0 table]AffectAutoLimits: on

得到的图像:

image-20240916151426210

更改线宽:

>> set(Hnd1,'LineWidth',4,'LineStyle','--')
image-20240916151514916

我们还可以使用属性编辑器来改变图像属性,启动命令为:

propedit(HandleList);
propedit;

这个函数第一个形式用于编辑所列出的句柄的属性, 而这个函数的第二种形式用于编辑当前图象的属性。

9.4 用 set 函数列出可能属性值

函数用于提供所有可能的属性值列表。 如果在调用函数 set 时, 只包括属性名而不包括相应的属性值, 那么函数 set 就会返回所有的合法属性值。

>> set(Hnd1,'LineStyle')5×1 cell 数组{'-'   }{'--'  }{':'   }{'-.'  }{'none'}

函数 set(Hnd1)返回一个对象的所有属性的所有可能的属性值。

>> set(Hnd1)AffectAutoLimits: {[on]  [off]}AlignVertexCenters: {[on]  [off]}BusyAction: {'queue'  'cancel'}ButtonDownFcn: {}Children: {}Clipping: {[on]  [off]}Color: {1×0 cell}ColorMode: {'auto'  'manual'}ContextMenu: {}CreateFcn: {}DeleteFcn: {}DisplayName: {}HandleVisibility: {'on'  'callback'  'off'}HitTest: {[on]  [off]}Interruptible: {[on]  [off]}LineJoin: {'chamfer'  'miter'  'round'}LineStyle: {'-'  '--'  ':'  '-.'  'none'}LineStyleMode: {'auto'  'manual'}LineWidth: {}Marker: {1×16 cell}MarkerEdgeColor: {'auto'  'none'}MarkerFaceColor: {'auto'  'none'}MarkerIndices: {}MarkerMode: {'auto'  'manual'}MarkerSize: {}Parent: {}PickableParts: {'visible'  'none'  'all'}Selected: {[on]  [off]}SelectionHighlight: {[on]  [off]}SeriesIndex: {'none'}SourceTable: {}Tag: {}UserData: {}Visible: {[on]  [off]}XData: {}XDataMode: {'auto'  'manual'}XDataSource: {}XVariable: {}YData: {}YDataMode: {'auto'  'manual'}YDataSource: {}YVariable: {}ZData: {}ZDataMode: {'auto'  'manual'}ZDataSource: {}ZVariable: {}

9.5 自定义数据

除了一个 GUI 对象定义的标准属性以外, 程序可以定义所要控制的数据的特殊属性。程序员可以用附加属性把任意类型的数据添加到 GUI 对象中。 任意数量的数据可以被存储,并应用于各种目的。自定义数据可以用近似标准属性的形式存储。 每一个数据条目都有一个名字和值。 数据变量可以用函数 setappdate 存储在一个对象, 并用函数 getappdata 接收。setappdate 函数的基本形式如下

setappdata(Hndl, 'DataName', DataValue);

与自定义数据相关的函数:

image-20240916154330981

9.6 对象查找

每一个新的图象在从创建开始时就有它们自已的句柄, 句柄可以由创建函数返回。假设我们由于一些原因, 丢失了对象的句柄。 我们如何检测和图形对象呢?MATLAB 提供了四个专门的函数, 用来帮助寻找对象的句柄。

  • gcf返回当前图象的句柄
  • gca返回当前图象中当前坐标系的句柄
  • gco返回当前对象的句柄
  • findobj寻找指定属性值的图形对象

函数 gcf 返回当前图象的句柄。 如果这个图象不存在, gcf 将会创建一个, 并返回它的句柄。 函数 gca 返回当前图象中当前坐标系的句柄, 如果图象不存在, 或当前图象中无坐标系, 那么函数 gca 将创建一个坐标系, 并返回它的句柄。

当前对象是指用鼠标单击的最后一个对象。 这个对象可以是除了根对象的任意图形对象。直到鼠标在图象内发生了单击事件, 在图象内才有一个当前对象。 在单击事件发生之后, 函数 gco 将返回一个空数组[], 不像函数 gcf 和 gca, gco 如果不存在就自动创建。

9.7 用鼠标选择对象

函数 gco 将返回当前对象, 当前对象是指用鼠标最后一次单击的对象。 每一个对象都有一个与之相关的可选择区, 在可选择区内任意一个单击都可以看作对这个对象的单击。 对于细小的对象(例如线, 点)来说, 这种特性是非常重要的。 可选择区的宽度和形状由对象的类型确定。

如果一个用户单击了两个或多个对象的所在点, 例如两线的交插点将会有什么事情发生。 这取决于每一个对象堆垛顺序(stacking order)。 堆垛顺序是 MATLAB 选择对象的顺序。 在一个图象中所有的"子对象"属性句柄顺序就是堆垛顺序。 如果单击了两个或多个对象的所在点, 在堆垛顺序的优先权高的将会被选择。

当选择图形对象时, 我们有时可以调用 MATLAB 内建函数 waitforbuttonpress。 这个函数的形式为

k = waitforbuttonpress

当这个函数运行时, 它将会暂停程序, 直到任意键按下或鼠标单击事件发生后, 程序才恢复运行。 如果按下了鼠标键函数将会返回 0, 按下任意键, 函数将会 1。函数经常用于暂停程序。 当鼠标单击事件发生后, 程序将会用 gco 函数恢复选择对象的句柄。

9.8 位置和单位

9.8.1 图像(figure)对象的位置

一个图象(图)的位置(“position”)用一个 4 元素行向量指定在计算机屏幕内的位置。 在这个向量中的值为[left bottom width height], 其中 left 是指图象的左边界, bottom 是指图象的底边界, width 是指图象的宽度, height 是指图象的高度。 它的这些位置值的单位可以用对象的"Units"属性指定。 例如, 与当前图象的位置和单位可以用下面的语句得到。

>> get(gcf,'Position')ans =573.0000  443.6667  560.0000  420.0000>> get(gcf,'Units')ans ='pixels'

单位(“units”)属性的默认值为像素(pixels), 但是它的属性值还可以为英尺(inches), 公分(centimeters), 点(points), 或归一化坐标(normalixed coordinates)。 像素代表了屏幕像素,即在屏幕上可表示出来的最小的对象。因为像素数因机算机屏幕的不同而不同, 所以指定对象的大小也会随之改变。归一化坐标是在 0 到 1 范围内。在归一化坐标中,屏幕的左下角为[0, 0]右上角为[1.0, 1.0]。

如果对象的位置归一化坐标系的形式描述, 那么不同分辨率的显示器上对象的相对位置是固定的。 例如, 下面的语句创建了一个图象, 把图象放置在屏幕的上部, 而不用考虑显示器的大小。

H = figure(1)
set(H,'units', 'normalized','position',[0 .5 .5 .45])

9.8.2 坐标系对象和 uicontrol 对象的位置

坐标系对象和 uicontrol 对象的位置同样可以用一个 4 元素向量表示, 但它是相对于figure 对象的位置。 一般说来, 所有子对象的"position"属性都与它的父对象相关。默认地, 坐标系对象在一图象内的位置是有归一化单位指定的, (0, 0)代表图象的左下角, (1, 1)代表图象的右上角。

9.8.3 文本(text)对象的位置

与其他对象不同, 文本(text)对象有一个位置属性, 包含两个或三个元素。 这些元素为坐标系对象中文本对象的 x, y 和 z 轴。 注意都显示在坐标轴上。放置在某一特定点的文本对象的位置可由这个对象的 HorizontalAlignment 和VerticalAlignment 属性控制HorizontalAlignment 的属性可以是{Left}。 Center, 或 Right。VerticalAlignment 的属性值可以为 Top, cap, {Middle}, Baseline 或 Bottom。文本对象的大小由字体大小和字符数决定, 所以没有高度和宽度值与之相连。

9.9 打印位置

属性"Position"和"Units"用来指定图象在计算机屏幕上的位置。 还有其他的五个属性用于指定图象在打印纸上的位置。

image-20240917093940564

9.10 默认和 factory 属性

MATLAB 允许你修改默认值本身,所以当他们被创建时, 所有的对象都会继承所有正确的属性值。默认值的设置要用一个字符串, 这个字符串由"Default", 对象类型和属性名组成。 所以默认图象颜色可以通过属性"DefaultFigureColor"来设置, 默认的坐标轴颜色可以通过属性"DefaultAxesColor"设置。 下面是设置默认值的一些例子:

image-20240917094540527

如果你想要定制 MATLAB, 每一次都有不同的默认值, 那么每次当 MATLAB 启动时你必须对根对象设置默认值。 最简单的方法是把默认值存入 startup.m 文件, 每次 MATLAB 启动时都会自动执行。 例如, 假设你经常使用 A4 纸, 并在图象中经常加入网格线。 那么你可以把下面的语句加入到 startup.m 文件中。

set(0, 'DefaultFigurePaperType', 'a4letter');
set(0, 'DefaultAxesXGrid', 'on');
set(0, 'DefaultAxesYGrid', 'on');
set(0, 'DefaultAxesZGrid', 'on');

有三种特殊值字符串用于句柄图形:“remove”, “factory"和"default”。 如果你已经为一个属性设置了默认值, 那么"remove"值将会删除你所设置的默认值。 例如, 假设你设置默认的图象颜色为黄色。

set(0, 'DefaultFigureColor', 'y');

调用下面的函数将会取消当前的默认值并恢复先前的默认值。

set(0, 'DefaultFigureColor', 'remove');

字符串"factory"允许临时跳过当前的默认值, 并使用原来的 MATLAB 的默认值。

figure('Color', 'factory');

相关文章:

MATLAB系列09:图形句柄

MATLAB系列09:图形句柄 9. 图形句柄9.1 MATLAB图形系统9.2 对象句柄9.3 对象属性的检测和更改9.3.1 在创建对象时改变对象的属性9.3.2 对象创建后改变对象的属性 9.4 用 set 函数列出可能属性值9.5 自定义数据9.6 对象查找9.7 用鼠标选择对象9.8 位置和单位9.8.1 图…...

把设计模式用起来!(4) 用不好模式?之原理不明

(清华大学出版社 《把设计模式用起来》书稿试读) 上一篇:把设计模式用起来!(3)用不好模式?之时机不对 为什么用不好设计模式?——原理不明 难搞的顾客:“抹这种霜&#…...

安卓13去掉下拉菜单的Dump SysUI 堆的选项 android13删除Dump SysUI 堆

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析3.1 位置13.2 位置24.代码修改5.编译6.彩蛋1.前言 客户需要去掉下拉菜单里面的Dump SysUI 堆图标,不让使用这个功能。 2.问题分析 android的下拉菜单在systemui里面,这里我们只需要定位到对应的添加代…...

vue3常用的组件间通信

一 props props 可以实现父子组件通信&#xff0c;props数据是只读。 1. 基本用法 在父组件中&#xff0c;你可以这样传递 props&#xff1a; <template><ChildComponent message"Hello, Vue 3!" /> </template><script setup> import C…...

Windows 查找特定进程的ID并杀死

"*分析用户信息.py*" 换为自己的文件名 Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like "*分析用户信息.py*" } 查找后 内容如下 __GENUS : 2 __CLASS : Win32_Process __SUPERCLASS …...

Snapchat API 访问:Objective-C 实现示例

Snapchat 是一个流行的社交媒体平台&#xff0c;它允许用户发送和接收短暂存在的图片和视频。对于开发者来说&#xff0c;访问 Snapchat API 可以为应用程序添加独特的社交功能。本文将介绍如何在 Objective-C 中实现对 Snapchat API 的访问&#xff0c;并提供一个详细的代码示…...

ps证件照蓝底换白底

ps证件照蓝底换白底 1、打开 Photoshop&#xff0c;导入需要处理的照片。 2、左侧工具栏中选择“魔棒工具”&#xff0c;点击证件照的背景区域进行选择。 3、使用快捷键 Shift F5 或者从顶部菜单选择“编辑” -> “填充”&#xff0c;在弹出的对话框中选择“填充内容”中…...

阿里云kafka消息写入topic失败

1. 问题现象描述 20240918,14:22&#xff0c;测试反馈说kafka有问题&#xff0c;生产者写入消息的时候报错&#xff0c;并发了一张日志截图&#xff0c;主要报错如下&#xff1a; to topic xxxx: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for x…...

图像放大效果示例【JavaScript】

实现效果&#xff1a; 当鼠标悬停在小图&#xff08;缩略图&#xff09;上时&#xff0c;大图&#xff08;预览图&#xff09;会随之更新为相应的小图&#xff0c;并高亮当前悬浮的小图的父元素。 代码&#xff1a; 1. HTML部分 <!DOCTYPE html> <html lang"z…...

【C#生态园】云端之C#:全面解析6种云服务提供商的SDK

C#开发者必读&#xff1a;深度比较6种云服务SDK 前言 随着云计算技术的迅猛发展&#xff0c;越来越多的企业和开发者选择将应用程序部署到公共云平台上。针对C#开发者而言&#xff0c;各大云服务提供商纷纷推出了适用于C#的SDK&#xff0c;以便开发者能够更轻松地与其云服务进…...

远程升级又双叒叕失败?背后原因竟然是。。。

最近又遇到了远程升级接连失败的情况&#xff0c;耐心和信心都备受折磨&#xff01; 事情是这样的&#xff1a;有客户反馈在乡村里频繁出现掉线的情况&#xff0c;不敢耽搁&#xff0c;赶紧联系小伙伴排查测试&#xff0c;最后发现&#xff0c;只有去年某一批模块在当下环境才…...

【测试】——Selenium API (万字详解)

&#x1f4d6; 前言&#xff1a;本文详细介绍了如何利用Selenium进行Web自动化测试&#xff0c;包括定位元素&#xff08;如cssSelector和xpath&#xff09;、常用操作函数&#xff08;如点击、输入等&#xff09;、窗口管理、键盘鼠标事件和浏览器导航&#xff0c;以及处理弹窗…...

Redis:原理+项目实战——Redis实战3(Redis缓存最佳实践(问题解析+高级实现))

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理项目实战——Redis实战2&#xff08;Redis实现短信登录&#xff08;原理剖析代码优化&#xff09;&#x…...

刚刚,Stable Diffusion 2024升级,最强Ai绘画整合包、部署教程(解压即用)

2024Ai技术大爆发的元年 目前两款Ai神器大火 一款是大名鼎鼎的Chat GPT 另外一款—Stable Diffusion 堪称全球最强Ai绘画工具 Stable Diffusion Ai绘画2024版本更新啦&#xff01; 从4.8.7更新至**4.9版本&#xff01;**更新优化和大模型增加&#xff0c;无需安装&#xf…...

【AIGC】ChatGPT提示词助力高效文献处理、公文撰写、会议纪要与视频总结

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;高效英文文献阅读提示词使用方法 &#x1f4af;高效公文写作提示词使用方法 &#x1f4af;高效会议纪要提示词使用方法 &#x1f4af;高效视频内容分析提示词使用方法 &a…...

centos7更换国内下载源

&#x1f4d6;centos7更换国内下载源 在CentOS 7上更换为国内源可以通过替换 /etc/yum.repos.d/CentOS-Base.repo文件来实现。以下是一些常用的国内源以及如何更换的示例&#xff1a; 阿里云源&#xff1a; mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Bas…...

【Linux】常用指令【更详细,带实操】

Linux全套讲解系列&#xff0c;参考视频-B站韩顺平&#xff0c;本文的讲解更为详细 目录 一、文件目录指令 1、cd【change directory】指令 ​ 2、mkdir【make dir..】指令​ 3、cp【copy】指令 ​ 4、rm【remove】指令 5、mv【move】指令 6、cat指令和more指令 7、less和…...

力扣3290.最高乘法得分

力扣3290.最高乘法得分 递归 记忆化搜索 对于b数组&#xff0c;从右往左考虑取不取&#xff0c;如果取则问题变成b[0] ~ b[i-1]间找j - 1个数 如果不取&#xff0c;则问题变成b[0] ~ b[i]间找j个数即dfs(i,j) max(dfs(i-1,j) , dfs(i-1,j-1) a[j] * b[i]) 边界&#xff1a…...

Python | Leetcode Python题解之第413题等差数列划分

题目&#xff1a; 题解&#xff1a; class Solution:def numberOfArithmeticSlices(self, nums: List[int]) -> int:n len(nums)if n 1:return 0d, t nums[0] - nums[1], 0ans 0# 因为等差数列的长度至少为 3&#xff0c;所以可以从 i2 开始枚举for i in range(2, n):i…...

深入理解 ClickHouse 的性能调优与最佳实践

1. 介绍 ClickHouse 是一款由 Yandex 开发的开源列式数据库&#xff0c;专为在线分析处理&#xff08;OLAP&#xff09;场景设计。它以极高的查询性能著称&#xff0c;尤其适用于大规模数据的快速聚合和分析。自发布以来&#xff0c;ClickHouse 在多个行业中得到了广泛应用&am…...

Elasticsearch——介绍、安装与初步使用

目录 1.初识 Elasticsearch1.1.了解 ES1.1.1.Elasticsearch 的作用1.1.2.ELK技术栈1.1.3.Elasticsearch 和 Lucene1.1.4.为什么不是其他搜索技术&#xff1f;1.1.5.总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3.Elasticsearch 的一些概念1.3.1.文档和字…...

FreeRTOS保姆级教程(以STM32为例)—任务创建和任务控制API说明

目录 一、任务创建&#xff1a; &#xff08;1&#xff09;TaskHandle_t 任务句柄 &#xff08;2&#xff09; xTaskCreate&#xff1a; 函数原型&#xff1a; 参数说明&#xff1a; 返回值&#xff1a; 示例&#xff1a; 注意事项&#xff1a; 用法示例&#xff1a…...

Go语言现代web开发14 协程和管道

概述 Concurrency is a paradigm where different parts of the program can be executed in parallel without impact on the final result. Go programming supports several concurrency concepts related to concurrent execution and communication between concurrent e…...

Llama3.1的部署与使用

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 什么是Llama3.1&#xff1f; Llama3.1 是 Meta&#xff08;原 Facebook&#xff09;公…...

Java/Spring项目的包开头为什么是com?

Java/Spring项目的包开头为什么是com&#xff1f; 下面是一个使用Maven构建的项目初始结构 src/main/java/ --> Java 源代码com.example/ --->为什么这里是com开头resources/ --> 资源文件 (配置、静态文件等)test/java/ --> 测试代码resourc…...

深度学习自编码器 - 随机编码器和解码器篇

序言 在深度学习领域&#xff0c;自编码器作为一种无监督学习技术&#xff0c;凭借其强大的特征表示能力&#xff0c;在数据压缩、去噪、异常检测及生成模型等多个方面展现出独特魅力。其中&#xff0c;随机编码器和解码器作为自编码器的一种创新形式&#xff0c;进一步拓宽了…...

Spring IoC DI

Spring 框架的核心是其控制反转&#xff08;IoC&#xff0c;Inversion of Control&#xff09;和依赖注入&#xff08;DI&#xff0c;Dependency Injection&#xff09;机制。这些概念是为了提高代码的模块化和灵活性&#xff0c;进而简化开发和测试过程。下面将详细介绍这两个…...

[数据集][目标检测]无人机飞鸟检测数据集VOC+YOLO格式6647张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6647 标注数量(xml文件个数)&#xff1a;6647 标注数量(txt文件个数)&#xff1a;6647 标注…...

Vue 中 watch 的使用方法及注意事项

前言 Vue 的 Watch 是一个非常有用的功能&#xff0c;它能够监听 Vue 实例数据的变化并执行相应的操作。本篇文章将详细介绍 Vue Watch 的使用方法和注意事项&#xff0c;让你能够充分利用 Watch 来解决 Vue 开发中的各种问题。 1. Watch 是什么&#xff1f; 1.1 Watch 的作…...

情指行一体化平台建设方案和必要性-———未来之窗行业应用跨平台架构

一、平台建设必要性 以下是情指行一体化平台搭建的一些必要性&#xff1a; 1. 提高响应速度 - 实现情报、指挥和行动的快速协同&#xff0c;大大缩短从信息获取到决策执行的时间&#xff0c;提高对紧急情况和突发事件的响应效率。 2. 优化资源配置 - 整合各类资源信…...