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

MATLAB 之 低层绘图操作和光照及材质处理

这里写目录标题

  • 一、低层绘图操作
    • 1. 曲线对象
    • 2. 曲面对象
    • 3. 文本对象
    • 4. 其他核心对象
      • 4.1 区域块对象
      • 4.2 方框对象
  • 二、光照和材质处理
    • 1. 光照处理
    • 2. 材质处理
      • 2.1 图形对象的反射特性
      • 2.2 material 函数

一、低层绘图操作

  • MATLAB 将曲线、曲面、文本等图形均视为对象,通过句柄设置这些对象的属性,从而绘制出更具个性化的图形。

1. 曲线对象

  • 曲线对象是坐标轴的子对象,它既可以定义在二维坐标系中,也可以定义在三维坐标系中。建立曲线对象使用 line 函数,其调用格式如下:
	句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,...)
  • 其中,对 x、y、z 的解释与高层曲线函数 plotplot3 等一样,其余参数的解释与前面介绍过的 figureaxes 函数类似。
  • 每个曲线对象也具有很多属性。除公共属性外,其他常用属性如下。
  • (1) Color 属性:该属性的取值是代表某颜色的字符或 RGB 值,用于定义曲线的颜色,默认值为当前坐标轴对象的 ColorOrder 属性定义的颜色。
  • (2) LineStyle 属性:定义线型,默认值为 ‘-’,即实线。
  • (3) LineWidth 属性:定义线宽,默认值为 0.5 磅。
  • (4) Marker 属性:定义数据点标记符号,默认值为 ‘none’。
  • (5) MarkerSize 属性:定义数据点标记符号的大小,默认值为 6 磅。
  • (6) XData、YData、ZData 属性:3 种属性的取值都是数值向量或矩阵,分别代表曲线对象的 3 个坐标轴数据。
  • 例如,我们利用曲线对象绘制曲线 y = sin ⁡ ( 2 π t ) y=\sin (2\pi t) y=sin(2πt) y = 3 2 e − 4 t sin ⁡ ( 4 3 t + π 3 ) y=\frac{\sqrt{3}}{2}e^{-4t}\sin (4\sqrt{3}t+\frac{\pi}{3}) y=23 e4tsin(43 t+3π)
  • 程序如下:
t=0:pi/100:pi/2;
y1=sin(2*pi*t);
y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);
figh=figure;
axes('GridLineStyle',':','XLim',[0,pi/2],'YLim',[-1,1]);
line('XData',t,'YData',y1,'LineWidth',1);
line(t,y2);
grid on
  • 程序运行结果如下图所示。

在这里插入图片描述

2. 曲面对象

  • 曲面对象也是坐标轴的子对象,它定义在三维坐标系中,而坐标系可以在任何视点下。建立曲面对象使用 surface 函数,其调用格式如下:
	句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性值2,...)
  • 其中,对 x、y、z 的解释与高层曲面函数 meshsurf 等一样,其余参数的解释与前面介绍过的 figureaxes 等函数类似。
  • 每个曲面对象也具有很多属性。除公共属性外,其他常用属性如下。
  • (1) EdgeColor 属性:该属性的取值是代表某颜色的字符或 RGB 值,还可以是 ‘flat’、‘interp’ 或 ‘none’,默认为黑色。定义曲面网格线的颜色或着色方式。
  • (2) FaceColor 属性:该属性的取值是代表某颜色的字符或 RGB 值,还可以是 ‘flat’(默认值)、‘interp’ 或 ‘none’。 定义曲面网格片的颜色或着色方式。
  • (3) LineStyle 属性:定义曲面网格线的线型,默认为实线。
  • (4) LineWidth 属性:定义曲面网格线的线宽,默认值为 0.5 磅。
  • (5) Marker 属性:定义曲面数据点标记符号,默认值为 ‘none’。
  • (6) MarkerSize 属性:定义曲面数据点标记符号的大小,默认值为 6 磅。
  • (7) XData、YData、ZData 属性:3 种属性的取值都是数值向量或矩阵,分别代表曲面对象的 3 个坐标轴数据。
  • 例如,我们利用曲面对象绘制三维曲面 y = sin ⁡ y cos ⁡ x y=\sin y\cos x y=sinycosx
  • 程序如下:
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
axes('view',[-37.5,30]);
hs=surface(x,y,z,'FaceColor','w','EdgeColor','flat');
grid on; 
xlabel('x-axis');
ylabel('y-axis');
zlabel('z-axis');
title('mesh-surf');
pause;
set(hs,'FaceColor','flat');
  • 开始网格片的颜色设置为白色,实际上得到的是网格图,如下图所示,这与高层函数 mesh 所画曲面相同。

在这里插入图片描述

  • 暂停后,诚信设置网格片的颜色,得到着色表面图,如下图所示。

在这里插入图片描述

3. 文本对象

  • 文本对象主要用于给图形添加文字标注。在文本对象中除使用一般的文本以外,还允许使用 LaTeX 字符。
  • 使用 text 函数可以根据指定位置和属性值添加文本说明,并保存句柄。该函数的调用格式如下:
	句柄变量=text(x,y,z,说明文字,属性名1,属性值1,属性名2,属性值2,...)
  • 其中,说明文字中除使用标准的 ASCII 字符外,还可使用 LaTeX 格式的控制字符。例如:
>> h=text(0.5,0.5,'{\gamma}={\rho}^2');
  • 将得到标注效果: γ = ρ 2 \gamma =\rho ^{2} γ=ρ2
  • 除公共属性外,文本对象的其他常用属性如下。
  • (1) Color 属性:定义文本对象的显示颜色,默认为黑色。
  • (2) String 属性:该属性的取值是字符串或字符串矩阵,它记录着文字标注的内容。
  • (3) Interpreter 属性:该属性的取值是 ‘tex’(默认值)或 ‘none’,该属性控制对文字标注内容的解释方式,即 LaTeX 方式或 ASCII 方式。
  • (4) FontSize 属性:定义文本对象的大小,其默认值为 10 磅。
  • (5) Rotation 属性:该属性的取值是数值量,默认值为 0。它定义文本对象的旋转角度,取正值时表示逆时针方向旋转,取负值时表示顺时针方向旋转。
  • 例如,我们利用曲线对象绘制 y = sin ⁡ θ y=\sin \theta y=sinθ y = cos ⁡ θ y=\cos \theta y=cosθ 并利用文字对象完成标注。
  • 程序如下:
theta=-pi:.1:pi;
y1=sin(theta);
y2=cos(theta);
h=line(theta,y1,'LineStyle',':','Color','g');
line(theta,y2,'LineStyle','--','Color','b');
xlabel('-\pi \leq \theta \leq \pi')
ylabel('sin\theta')
title('Plot of sin\theta')
text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4) ', 'FontSize',12)
set(h,'Color','r','LineWidth',2)   %改变曲线1的颜色和线宽
  • 程序运行结果如下图所示。

在这里插入图片描述

4. 其他核心对象

4.1 区域块对象

  • 区域块对象是指一个任意多边形区域。在 MATLAB 中,可以使用 patch 函数创建一个或多个多边形。有两种形式的 patch 函数,一种是高级语法形式,另一种是低级语法形式。
  • 前者通过指定每个小面的顶点坐标和颜色来创建区域块对象,后者通过指定所有顶点的坐标和各小面的顶点和颜色来创建。
  • 使用高级语法形式时,patch 函数的调用格式如下:
	patch(x,y,z,c)
  • 该函数在当前坐标轴中创建二维或三维空间中带填充模式的区域块对象。x、y、z 确定顶点坐标。如果 x、y、z 为矩阵,则 MATLAB 按列创建多个多边形。c 指定每一区 域块对象的颜色,它既可以用字符表示,也可以用 RGB 三元组表示。
  • 例如,我们将绘制一个用红色填充的正方形区域。
  • 程序如下:
x=[10, 10,25,25];
y=[10,25,25,10];
patch(x,y,[1,0,0])
  • 程序运行结果如下所示。

在这里插入图片描述

  • 例如,我们生成一个正十边形,其中用黄色填充。
  • 程序如下:
t=0:pi/5:2*pi;
patch(sin(t),cos(t),'y');
axis equal
  • 程序运行结果如下图所示。

在这里插入图片描述

  • patch 函数的低级语法格式只接受属性名和属性值配对参数,其调用格式如下:
	句柄变量=patch(属性名1,属性值1,属性名2,属性值2,...)
  • 除公共属性外,区域块对象的其他常用属性如下。
  • (1) Faces 属性:定义各小面的顶点。
  • (2) Vertices 属性:定义各顶点的坐标。
  • (3) FaceColor 属性:该属性的取值是代表某颜色的字符或 RGB 值,还可以是 ‘flat’、‘interp’ 或 ‘none’,默认为黑色。定义小面的颜色。
  • (4) EdgeColor 属性:该属性的取值是代表某颜色的字符或 RGB 值,还可以是 'flat、‘interp’ 或 ‘none’,默认为黑色。定义小面边缘的颜色。
  • (5) FaceVertexCData 属性:定义用 Faces/Vertices 方法所需要的颜色数据,其值是元素为 RGB 值的 n × 3 n×3 n×3 矩阵。
  • 例如,我们绘制一个用红色填充的正方形区域,可用 patch 函数的低级形式。
  • 程序如下:
>> vert=[10,10;10,25;25,25;25,10];
>> fac=[1,2,3,4];
>> patch('Faces',fac,'Vertices',vert,'FaceColor','r');
  • 程序运行结果如下图所示。

在这里插入图片描述

  • 例如,我们为说明 patch 函数的用法,下 面用它两种不同的格式来绘制一个由4个小面组成的扇面。
  • 首先通过小面顶点坐标和颜色进行创建,用 x、y、z 定义小面的顶点坐标,用 c 定义小面的颜色,程序如下:
x=[0,0,0,0;1,0.8,0.5,0;1,1,0.8,0.5];
y=[0,0,0,0;0.5,0.8,1,1;0,0.5,0.8,1];
z=[0.5,0.5,0.5,0.5;1.5,1.5,1.5,1.5;1.5,1.5,1.5,1.5];
mc=jet(4);      %定义色图矩阵
c(1,1,1:3)=mc(1,:);
c(1,2,1:3)=mc(2,:);
c(1,3,1:3)=mc(3,:);
c(1,4,1:3)=mc(4,:);
patch(x,y,z,c);
axis([0,1,0,1,0,2]);
grid
  • 程序运行后,生成如下图所示的 4 个小三角形组成的扇面。

在这里插入图片描述

  • 下面使用 patch 函数的第二种格式,用 vert 定义各顶点的坐标,用 fac 定义组成各小面的顶点的编号。程序如下:
vert=[0,0,0.5;1,0,1.5;1,0.5,1.5;0.8,0.8,1.5;0.5,1,1.5;0,1,1.5];
fac=[1,3,2;1,4,3;1,5,4;1,6,5];
mc=jet(4);
patch('Faces',fac,'Vertices',vert,'FaceVertexCData',mc, ...'FaceColor', 'Flat') ;
axis([0,1,0,1,0,2]);
grid
  • 程序运行后,生成如下图所示的图形。采用第 2 种格式建立区域块的时候,需要的数据更少,多个小面的公共顶点只需定义一次就够了,所以对于有多个小面的区域快更合适。

在这里插入图片描述

4.2 方框对象

  • 在 MATLAB 中,矩形、椭圆以及两者之间的过渡图形,如圆角矩形都称为方框对象。创建方框对象的低层函数是 rectangle,其调用格式如下:
	句柄变量=rectangle(属性名1,属性值1,属性名2,属性值2,...)
  • 除公共属性外,方框对象的其他常用属性如下。
  • (1) Position 属性:与坐标轴的 Position 属性基本相同,相对坐标轴原点定义方框的位置。该属性的取值格式为 [x, y, w, h],(x, y) 确定方框对象的左下角坐标,w、 h 分别指定方框的宽和高。
  • (2) Curvature 属性:定义方框边的曲率。该属性指定曲率,其取值格式为 [x, y],其中 x 为水平曲率,y 为垂直曲率。
  • 当值为 [0, 0] 时,创建矩形;当值为 [1, 1] 时,创建椭圆。
  • 如果只指定一个值,则水平边和垂直边都会发生相同长度的弯曲。曲率的大小由短的边确定。
  • 不带任何参数的 rectangle 函数绘制一个单位正方形,左下角坐标为 [0, 0],右上角坐标为 [1,1],曲率为 [0,0](即没有曲率)。
  • (3) LineStyle 属性:定义线型,默认为实线。
  • (4) LineWidth 属性:定义线宽,默认值为 0.5 磅。
  • (5) EdgeColor 属性:定义边框线的颜色,默认为黑色。
  • (6) FaceColor 属性:定义填充颜色,默认值为 ‘none’。
  • 例如,我们在同一个图形窗口种创建矩形、圆角矩形、椭圆和圆各一个,并使用不同的线型和线宽。
  • 程序如下:
subplot(2,2,1);
rectangle('Position',[2,3,25,15],'LineWidth',3);
subplot(2,2,2);
rectangle('Position',[3,5,15,8],'Curvature',0.4,'LineWidth',2);
subplot(2,2,3);
rectangle('Position',[5,3,10,15],'Curvature',[1,1]);
subplot(2,2,4);
rectangle('Position',[5,3,10,10],'Curvature',[1,1],...'LineStyle', '--','FaceColor','r');
axis equal
  • 程序运行结果如下图所示。

在这里插入图片描述

二、光照和材质处理

  • 使用光源对象实现光照处理,可以将图形表现得更加真实,使图形表面微妙的差异更清楚。光源对象是不可见的,但是可以像设置其他图形对象的属性那样设置光源对象的类型、颜色、位置和其他属性。
  • 材质体现了图形对象的反射特性,修改区域块和曲面对象的反射特性,可以改变在场景中应用光照时对象的显示外观。

1. 光照处理

  • MATLAB 提供 light 函数创建光源对象,其调用格式如下:
	句柄变量=light(属性名1,属性值1,属性名2,属性值2,...)
  • 发光对象有如下 3 个重要属性。
  • (1) Color 属性:设置光的颜色,默认为白色。
  • (2) Style 属性:设置光源对象是否在无穷远,可取值为 ‘infinite’(默认值)和 ‘local’,分别表示无穷远光和近光。
  • (3) Position 属性:该属性的取值是数值向量,取三维坐标点组成的向量形式 [x, y, z],用于设置光源对象与坐标轴原点的距离,发光对象的位置与 Style 属性有关。
  • 若 Style 属性为 ‘local’,则设置的是光源的实际位置。
  • 若Style 属性为 ‘infinite’,则设置的是光线射过来的方向,表示穿过该点射向原点。
  • 假如函数不包含任何参数,则采用默认设置:白光、无穷远、穿过 (1,0,1) 点射向坐标原点。
  • 利用 lighting 命令可以设置光照模式,其格式如下:
	lighting选项
  • 其中,选项有 4 种取值:flat、gouraud、phong、none。 flat 选项使得入射光均匀洒落在图形对象的每个面上,是默认选项;gouraud 选项先对顶点颜色插补,再对顶点勾画的面上颜色进行插补,用于表现曲面;phong 选项对顶点处的法线插值,再计算各个像素的反光,它生成的光照效果好,但更费时;none 选项关闭所有光源。
  • 例如,我们绘制光照处理后的球面并观察不同光照模式下的效果。
  • 程序如下:
[x,y,z]=sphere(20);
subplot(1,4,1);
surf(x,y,z);
axis equal;
shading interp;
hold on;
subplot(1,4,2);
surf(x,y,z);
axis equal;
light('Position',[0,1,1]);
shading interp;
lighting flat;
hold on;
plot3(0,1,1,'p');
text(0,1,1,'light');
subplot(1,4,3);
surf(x,y,z);
axis equal;
light('Position',[0,1,1]);
shading interp;
lighting gouraud;
hold on;
subplot(1,4,4);
surf(x,y,z);
axis equal;
light('Position',[0,1,1]);
shading interp; 
lighting phong;
  • 程序运行结果如下。4 个球分别是没有使用光照,使用 flat 光照,使用 gouraud 光照和使用 phong 光照时的显示效果,第二个球还标出了光源的位置

在这里插入图片描述

2. 材质处理

  • 材质体现了图形对象的反射特性,修改区域块和曲面对象的反射特性,可以改变在场景中应用光照时对象的显示外观。

2.1 图形对象的反射特性

  • 图形对象的反射特性包括镜面反射和漫反射、环境光、镜面反射指数、镜面反射光的颜色和背面光照,可以组合使用这几种特性来生成特殊的显示结果。
  • (1) 镜面反射和漫反射。区域块和曲面对象的 SpecularStrength 属性用来控制对象表面镜面反射的强度,属性值取 0~1 之间的数,默认取 0.9。DiffuseStrength 属性用来控制对象表面漫反射的强度,属性值取 0~1 之间的数,默认值取 0.6。
  • (2) 环境光。环境光不是镜面光,它均匀地洒在场景中的所有对象上。只有在坐标系中有 Light 对象时环境光才可见。AmbientStrength 属性是一个用于区域块和曲面对象的属性,确定特定对象上环境光的强度,属性值取 0~1 之间的数,默认值取 0.3。
  • (3) 镜面反射指数。镜面反射光的大小与区域块和曲面对象的 SpecularExponent 属性有关,该属性的值介于 1~500 之间,默认值为 10。
  • (4) 镜面反射光的颜色。镜面反射光的颜色可以有一个变化范围,即从对象颜色与光源颜色的组合色变到只有光源颜色。区域块和曲面对象的 SpecularColorReflectance 属性控制这个颜色,属性值取 0~1 之间的数,默认值为 1。
  • (5) 背面光照。背面光照可用于显示对象内表面和外表面的差别。区域块和曲面对象的 BackFaceLighting 属性控制该效果,属性取值为 ‘unlit’、‘lit’ 和 ‘reverselit’(默认值)。

2.2 material 函数

  • 使用 material 函数也可以设置区域块和曲面对象的表面反射特性,其调用格式如下:
  • (1) material shiny:镜面反射光的强度比漫反射光和环境光的强度要高得多,镜面光的颜色只决定于光源的颜色。
  • (2) material dull:要进行漫反射,没有镜面反射,但是反射光的颜色只与光源有关。
  • (3) material metal:镜面反射很强,环境光和漫反射光较弱,反射光的颜色与光源和对象的颜色都有关系。
  • (4) material([ka,kd,ks]):设置对象的环境光、漫反射光和镜面光的强度。
  • (5) material([ka,kd,ks,n]):设置环境光、漫反射光、镜面光的强度以及对象的镜面反射指数。
  • (6) material([ka,kd,ks,n,sc]):设置环境光、漫反射光、镜面光的强度、对象的镜面反射指数以及镜面反射光的颜色。
  • (7) material default:将环境光、漫反射光、镜面光的强度、对象的镜面反射指数和镜面反射光的颜色设置为默认值。
  • 这里需要注意的是,material 函数设置坐标系中所有区域块和曲面对象的 AmbientStrength、 DiffuseStrength、SpecularStrength、 SpecularExponent 和 SpecularColorReflectance 属性。坐标系中必须有一个可见的 Light 对象。
  • 例如,我们生成一个球体和一个立方体,观察表面反射特性设置效果。
  • 程序如下:
sphere(36);
h=findobj('Type','surface');
set (h,'FaceLighting','phong','FaceColor','interp', ...'EdgeColor',[0.4,0.4,0.4],'BackFaceLighting','lit')
hold on
vert=[2,0,-1;2,1,-1;3,0,0;3,0,-1;2,0,0;2,1,0;3,1,0;3,0,0];
fac=[1,2,3,4;2,6,7,3;4,3,7,8;1,5,8,4;1,2,6,5;5,6,7,8];
patch('Faces',fac,'Vertices',vert,'FaceColor','y');
light('Position',[1,3,2]);
light('Position',[-3,-1,3]);
material shiny
axis equal
hold off
  • 程序中用 findobj 函数查找 Type 属性为 surface 的对象,从而可以获取该球面的句柄,进而设置其属性。
  • 球面使用了 phong FaceLighting 属性值,因为生成了最平滑的光照插值效果。
  • vertfac 定义立方体。默认时,立方体使用 flat Facelighting 属性值增强每个边的可见性。
  • material shiny 命令会影响立方体和球体的反射属性。因为球体是闭合的,所以 BackFaceLighting 属性从默认设置变成了正常光照,删除了不必要的边缘效应。程序运行后,生成的图形效果如下图所示。
    在这里插入图片描述

相关文章:

MATLAB 之 低层绘图操作和光照及材质处理

这里写目录标题 一、低层绘图操作1. 曲线对象2. 曲面对象3. 文本对象4. 其他核心对象4.1 区域块对象4.2 方框对象 二、光照和材质处理1. 光照处理2. 材质处理2.1 图形对象的反射特性2.2 material 函数 一、低层绘图操作 MATLAB 将曲线、曲面、文本等图形均视为对象&#xff0c…...

LLM-Client一个轻量级的LLM集成工具

大型语言模型(llm)已经彻底改变了我们与文本交互的方式,OpenAI、Google、AI21、HuggingfaceHub、Anthropic和众多开源模型提供了不同的功能和优势。但是每个模型都有其独特的体系结构、api和兼容性需求,集成这些模型是一项耗时且具有挑战性的任务。 所以…...

leetcode动态数组vector实现杨辉三角

链接: leetcode动态数组vector实现杨辉三角 由题意可易得,从第三行开始,除了开始和末尾的位置上的元素,其余位置上的元素都是由上方的元素以及上方左侧的元素相加得到的,此时就很容易的到从第三行开始状态转移方程为vv[i][j] vv[…...

第二十三章_Redis高性能设计之epoll和IO多路复用深度解析

before 多路复用要解决的问题 并发多客户端连接,在多路复用之前最简单和典型的方案:同步阻塞网络IO模型 这种模式的特点就是用一个进程来处理一个网络连接(一个用户请求),比如一段典型的示例代码如下。 直接调用 recv 函数从一个 socket 上读…...

基于OpenCV-车辆检测项目(简易版)

车辆检测 1.项目介绍2. 读取一段视频3.通过形态学处理识别车辆4.描画轮廓5. 车辆计数并显示 本项目使用的视频地址链接 1.项目介绍 对一个视频进行车辆数量的检测,用到的知识有视频的读取,滤波器,形态学,添加直线、文本&#xff…...

用python获取海康摄像机视频

要调用海康摄像机视频,需要使用海康SDK提供的API。以下是一个简单的示例代码,可以连接到海康摄像机并获取视频流: python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QPixmap from PyQ…...

【Linux】遇事不决,可先点灯,LED驱动的进化之路---2

【Linux】遇事不决,可先点灯,LED驱动的进化之路---2 前言: 一、Pinctrl子系统重要概念 1.1 重要概念 1.1.1 pin controller 1.1.2 client device 1.1.3 补充概念 二、GPIO子系统重要概念 2.1 在设备树指定GPIO引脚 2.2 在驱动代码中…...

【计算机网络】数据链路层--点对点协议PPP

1.概念 2.构成 3.封装成帧 - 帧格式 4.透明传输 4.1字节填充法(面向字节的异步链路) 4.2.比特填充法(面向比特的同步链路) 5.差错检测 6.工作状态 7.小结...

【⑦MySQL】· 一文了解四大子查询

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL标量/单行子查询、列子/表子查询的讲解✨ 目录 前言一、子查询概念二、标量/单行子查询、列子/表子查询三、总结 一、子查询概念 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从My…...

ValSuite报告可以帮助改善您的验证过程的6种方式

热验证工艺是一项复杂而微妙的工作,但它是确保制药和生物技术产品的安全性和有效性的重要组成部分。同时,管理整个验证过程中产生的数据可能很费时,而且容易出错——这就是ValSuite的意义。 这款直观的验证软件简化了数据分析和报告&#xf…...

【机器学习】机器故障的二元分类模型-Kaggle竞赛

竞赛介绍 数据集描述 本次竞赛的数据集(训练和测试)是从根据机器故障预测训练的深度学习模型生成的。特征分布与原始分布接近,但不完全相同。随意使用原始数据集作为本次竞赛的一部分,既可以探索差异,也可以了解在训…...

ADB usage

查看手机设备的信息 获取设备的Android版本号 adb shell getprop ro.build.version.release 获取设备的API版本号 adb shell getprop ro.build.version.sdkAdb 获得 sdk版本 adb shell getprop ro.build.version.sdk27 Adb 获得Android版本 adb shell getprop ro.build.vers…...

利用有限元法(FEM)模拟并通过机器学习进行预测以揭示增材制造过程中热场变化:基于ABAQUS和Python的研究实践

1. 引言 增材制造(Additive Manufacturing,AM)近年来引起了大量的研究关注,这主要是因为它可以提供定制化、复杂结构的零件制造解决方案。在AM过程中,热场的分布和变化直接影响了零件的质量和性能。对此,采…...

Kafka与Flume的对比分析

Kafka与Flume的对比分析 一、Kafka和Flume1. Kafka架构2. Flume架构3. Kafka和Flume异同点 二、Kafka和Flume的性能对比1. 数据处理性能对比2. 大规模数据流处理的性能对比 三、性和稳定性对比1. 高可用集群的搭建KafkaFlume 2. 数据丢失和重复消费的问题处理KafkaFlume 四、适…...

docker启动redis哨兵报错(sentinel.conf is not writable: Permission denied)

Sentinel config file /usr/local/sentinel/sentinel.conf is not writable: Permission denied. Exiting… 用这个命令不报错:docker run --net host -p 6666:6666–name redis-sentinel -v /usr/mcc/redis/conf:/usr/local/sentinel/ -v /usr/mcc/redis/data/sent…...

如何编写优秀代码

最近在阅读别人写的代码,进行相应功能的修改。发现很多不规范或者比较绕的地方,总有那么几句看着多此一举,阅读别人的代码就是这样,有时候真的不懂写代码的人当时怎么想的。 例如有这么一段: 用户输入一个名字&#…...

信道编码:Matlab RS编码、译码使用方法

Matlab RS编码、译码使用方法 1. 相关函数 在MATLAB中进行RS编码的过程可以使用rsenc()函数或者comm.RSEncoder()函数。 1.1 rsenc()函数使用方法 在MATLAB中帮助中可以看到有三种使用形式,分别为 code rsenc(msg,n,k) code rsenc(msg,n,k,genpoly) code rs…...

数据结构第六章 图 6.1-6.3 错题整理

6.1 6.C 加上一个点实现非连通 去除每个边都是一颗不同的生成树 一共n条边 13.C n个顶点、e条边的无向图,森林。树的角度看,除了根节点没有一条边与其对应,其他顶点都对应一条边,用顶点-边得出有多少颗树 14.A II 等于 也可以…...

12 MFC常用控件(一)

文章目录 button 按钮设置默认按钮按下回车后会响应禁用开启禁用设置隐藏设置显示设置图片设置Icon设置光标 Cbutton 类创建按钮创建消息单选按钮多选按钮 编辑框组合框下拉框操作 CListBox插入数据获取当前选中 CListCtrl插入数据设置表头修改删除 button 按钮 设置默认按钮按…...

Springboot搭配Redis实现接口限流

目录 介绍 限流的思路 代码示例 必需pom依赖 自定义注解 redis工具类 redis配置类 主拦截器 注册拦截器 介绍 限流的需求出现在许多常见的场景中: 秒杀活动,有人使用软件恶意刷单抢货,需要限流防止机器参与活动 某 api 被各式各样…...

php中的双引号与单引号的基本使用

字符串,在各类编程语言中都是一个非常重要的数据类型 网页当中的图片,文字,特殊符号,HTMl标签,英文等都属于字符串 PHP字符串变量用于存储并处理文本, 在创建字符串之后,我们就可以对它进行操作。我们可以直接在函数中使用字符串,或者把它存储在变量中 字…...

【Neo4j教程之CQL命令基本使用】

🚀 Neo4j 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,C…...

Apikit 自学日记:发起文档测试-TCP/UDP

进入某个TCP/UDP协议的API文档详情页,点击文档上方 测试 标签,即可进入 API 测试页,系统会根据API文档的定义的求头部、Query参数、请求体自动生成测试界面并且填充测试数据。 填写/修改请求参数 1.1设置请求参数 与发起HTTP协议测试类似&am…...

坚鹏:中国邮储银行金融科技前沿技术发展与应用场景第1期培训

中国邮政储蓄银行金融科技前沿技术发展与应用场景第1期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…...

HBase分布式安装配置

首先 先安装zookeeper ZooKeeper配置 解压安装 解压 tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt 改名 mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7 在根目录下创建两个文件夹 mkdir Zlogs mkdir Zdata配置zoo.cfg文件,在解压后的ZooKeep…...

Microsoft365有用吗?2023最新版office有哪些新功能?

office自97版到现在已有20多年,一直是作为行业标准,格式和兼容性好,比较正式,适合商务使用。包含多个组件,除了常用的word、excel、ppt外,还有收发邮件的outlook、管理数据库的access、排版桌面的publisher…...

结构体的定义与实例化

结构体的定义与实例化 在Go语言中,结构体是一种用户自定义的数据类型(复合类型,而非引用类型),可以用来封装多个不同类型的数据成员。结构体的定义和实例化分别如下: 结构体的定义 结构体的定义使用关键…...

canvas详解03-绘制图像和视频

canvas 更有意思的一项特性就是图像操作能力。可以用于动态的图像合成或者作为图形的背景,以及游戏界面(Sprites)等等。浏览器支持的任意格式的外部图片都可以使用,比如 PNG、GIF 或者 JPEG。你甚至可以将同一个页面中其他 canvas 元素生成的图片作为图片源。 引入图像到 …...

VB+ACCESS高校题库管理系统设计与实现

开发数据库题库管理系统主要是为了建立一个统一的题库,并对其用计算机进行管理,使教师出题高效、快捷。 其开发主要包括后台数据库的建立、维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完…...

centos 安装 nginx

1.下载nginx安装包 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 下载到了当前目录下 2.解压安装包 解压后的结果 3.安装依赖 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 4. ./configure --prefix/usr/lo…...