Python的3D可视化库 - vedo (1)简介和模块功能概览
文章目录
- 1. vedo和它支持的功能简介
- 1.1 安装vedo
- 1.2 命令行接口
- 1.3 导出3D文件
- 1.4 文件格式转换
- 2. vedo模块功能概览
- 2.1 绘制和渲染
- `visual` 管理可视化、对象及其属性的显示的基类
- `plotter` 3D渲染
- `colors` 定义和显示颜色
- `dolfin` FEniCS/Dolfin库的支持
- 2.2 图形数据管理
- `mesh` 多边形网格
- `pointcloud` 点云
- `shapes` 简单或复杂的几何图形
- `volume` 使用体素
- `grids` 四面体网格
- `image` 普通2D图片
- `assembly` 图形对象组合
- `pyplot` 高级绘制功能
- `core` 为不同的vedo对象提供功能的基类
- `transformations` 线性或非线性变换
- 2.3 附加功能和配置
- `addons` 添加附带的轴、图例、光源等
- `applications` 可交互的功能
- `file_io` 读入和导出
- `utils` 公用工具
- `interactor_modes` 自定义交互模式
- `setting` 改变全局行为和风格的设置
- 3. 模块类的继承关系
- 3.1 core、visual、volume
- 3.2 grids
- 3.3 pointcloud
- 3.4 mesh
- 3.5 shapes
- 3.6 assembly
- 3.7 addons
- 3.8 applications
1. vedo和它支持的功能简介
vedo是用于3D对象和点云的科学分析的python模块。基于VTK和numpy实现。
1.1 安装vedo
pip install vedo
测试
import vedovedo.Cone().show(axes=1).close()
1.2 命令行接口
vedo库包含了命令行接口,可以使用vedo --help
查看。
1.3 导出3D文件
在弹出的3D场景窗口,按E
键,可以把当前的3D场景保存为一个普通的numpy文件。
按F
可以导出为html网页。
1.4 文件格式转换
使用命令行转换文件格式
# 将obj格式转为ply格式
vedo --convert bunny.obj --to ply
2. vedo模块功能概览
2.1 绘制和渲染
visual
管理可视化、对象及其属性的显示的基类
类或方法 | 说明 |
---|---|
CommonVisual | 管理所有对象的公共可见项的类 |
PointsVisual | 管理点对象的可见项的类 |
VolumeVisual | 管理体积对象的可见项的类 |
MeshVisual | 管理体积对象的可见项的类 |
ImageVisual | 管理所有对象的公共可见项的类 |
Actor2D | 对vtkActor2D 的封装 |
LightKit | 光工具套件,包括3种光源,主光灯、补光灯、头灯 |
plotter
3D渲染
类或方法 | 说明 |
---|---|
Plotter | 管理对象的主类 |
show | 在空白页创建Plotter 实例,并展示给定的对象 |
close | 关闭最后创建的Plotter |
colors
定义和显示颜色
类或方法 | 说明 |
---|---|
printc | 使用各种颜色输出内容到终端 |
printd | 输出关于环境的调试信息。局部变量会输出它们的当前值。 |
get_color | 将其它格式的颜色转换为(r,g,b) 格式 |
get_color_name | 找最接近的颜色的名称 |
color_map | 将数值映射到色阶 |
build_palette | 通过在HSV或RGB空间线性插值生成N个颜色 |
build_lut | 在查找表中生成颜色 |
dolfin
FEniCS/Dolfin库的支持
类或方法 | 说明 |
---|---|
plot | 绘制对象。输入的对象除了Mesh 、Volume 外,还可以是dolfin.Mesh 、dolfin.MeshFunction 、dolfin.Expression 、dolfin.Function |
2.2 图形数据管理
mesh
多边形网格
类或方法 | 说明 |
---|---|
Mesh | 创建一个由vedo.PointCloud 派生的Mesh 的实例 |
pointcloud
点云
类或方法 | 说明 |
---|---|
Points | 点云 |
Point | 创建一个简单的点 |
CellCenters | 在任意类型对象的单元格的中心生成Points |
merge | 输入对象组合,创建新的Mesh 或Points 。类似Assembly ,但是merge会让输入的对象称为一个单独的实体 |
fit_line | 通过点拟合线 |
fit_circle | 通过3D点拟合圆 |
fit_plane | 一组点拟合一个平面 |
fit_sphere | 一组点拟合一个球体 |
pca_ellipse | 创建包含指定百分比的点的2D椭圆,PCA用来计算椭圆方向 |
pca_ellipsoid | 创建包含指定百分比的点的椭球体,PCA用来计算椭圆方向 |
shapes
简单或复杂的几何图形
类或方法 | 说明 |
---|---|
Maker | 生成标记。一般和Glyph 联用 |
Line | 构造两个点之间的线段 |
DashedLine | 构造两个点之间的虚线。建议使用Line.pattern() 。 |
RoundedLine | 生成指定宽度、穿过一系列点的2D线段,线段的边缘是圆的 |
Tube | 沿着点集定义的线段,创建一个管 |
Tubes | 在Lines 对象的周围创建管 |
ThickTube | 沿着线创建带厚度的管 |
Lines | 从两个列表的对应点之间创建线段 |
Spline | 找到穿过点集的B样条曲线。 |
KSpline | 返回准确穿过所有点的Kochanek样条曲线 |
CSpline | 返回准确穿过所有点的Cardinal样条曲线 |
Bezier | 生成贝塞尔曲线,连接第一个和最后一个点。 |
Brace | 创建花括号 |
NormalLines | 创建Glyph ,在单元格中心或网格顶点显示法线 |
Ribbon | 联结两条线段,生成它们之间的平面 |
Arrow | 指定起点、终点和尺寸,创建3D箭头。 |
Arrows | 从两个列表的对应点之间创建箭头 |
Arrow2D | 创建2D箭头 |
Arrows2D | 从两个列表的对应点之间创建2D箭头 |
FlatArrow | 通过联结两条线段,在3D空间创建2D箭头 |
Polygon | 在xy平面创建多边形 |
Triangle | 根据空间中的3个点创建三角形 |
Rectangle | 在xy平面创建矩形 |
Disc | 创建2D圆环 |
Circle | 创建圆 |
GeoCircle | 创建圆,其形状像是投影在地图上,越靠近两极就越扁 |
Arc | 在两点之间创建圆弧 |
Star | 创建2D五角星 |
Star3D | 创建3D五角星 |
Cross3D | 创建3D十字形 |
IcoSphere | 创建由一致的三角形网格组成的球体 |
Sphere | 创建球体 |
Spheres | 创建大量的球体 |
Earth | 创建表示地球的带纹理的网格 |
Ellipsoid | 创建3D椭圆体 |
Grid | 均匀或不均匀的2D格子 |
TessellatedBox | 创建多个四元组构成的立方体网格 |
Plane | 创建平面 |
Box | 创建指定大小的框 |
Cube | 创建立方体 |
Spring | 创建弹簧模型 |
Cylinder | 指定高度和半径,创建圆柱体 |
Cone | 指定高度和半径,创建圆锥体 |
Pyramid | 创建椎体 |
Torus | 创建圆环 |
Paraboloid | 创建抛物线体 |
Hyperboloid | 创建双曲线体 |
TextBase | 文本的基类,不可实例化 |
Text3D | 创建表示文本的3D多边形网格 |
Text2D | 创建2D文本 |
CornerAnnotation | 使用2D文本在窗口角落加注释 |
Latex | 渲染Latex文本和公式 |
Glyph | 网格之间的公共顶点定义为glyph ,可以控制其方向和颜色 |
Tensors | 张量,其几何学表示在一个区域或一组点上定义 |
ParametricShape | 用于演示的内置图形集 |
ConvexHull | 由点集创建2D或3D的凸面包 |
VedoLogo | 创建3D的vedo图标 |
volume
使用体素
类或方法 | 说明 |
---|---|
Volume | 使用体素数据集 |
grids
四面体网格
类或方法 | 说明 |
---|---|
UnstructuredGrid | 对vtk的UnstructuredGrid 对象的支持 |
TetMesh | 描述四面体网格的类 |
RectilinearGrid | 创建直线网格的数据集,其中的边都平行于坐标轴 |
StructuredGrid | 创建结构化网格的数据集,其中的边不需要和坐标轴平行 |
image
普通2D图片
类或方法 | 说明 |
---|---|
Image | 用于在3D场景展示2D图片的类 |
assembly
图形对象组合
类或方法 | 说明 |
---|---|
Group | 创建包含通用对象组 |
Assembly | 组合多个对象,将其视为单个的新对象 |
procrustes_alignment | 使用procrustes 算法对齐若干网格对象,放在Assembly 中返回 |
pyplot
高级绘制功能
类或方法 | 说明 |
---|---|
Figure | 图形的格式化类 |
Histogram1D | 1D直方图 |
Histogram2D | 2D直方图 |
PlotXY | 在x和y坐标系进行绘制的图形类 |
PlotBars | 绘制柱状图的图形类 |
plot | 绘制2D的线图或点图,变量x对应变量y |
histogram | 根据1D和2D数组生成直方图 |
fit | 带有参数误差和误差带的多项式拟合。支持x和y的误差带。 |
pie_chart | 圆环图或饼图 |
violin | 小提琴图 |
whisker | 从一维数据集创建箱形图中间的条带 |
streamplot | 生成矢量场域的流线图 |
matrix | 生成矩阵,或一个带标签的2D颜色编码图 |
DirectedGraph | 有向图。由节点和连接节点的边组成的图,节点不需要位置信息,其位置只由相互之间的联系决定。 |
core
为不同的vedo对象提供功能的基类
类或方法 | 说明 |
---|---|
DataArrayHelper | 仅内部使用。协助类管理与点、面相关的数据 |
CommonAlgorithms | 公共方法 |
PointAlgorithms | 点云的方法 |
VolumeAlgorithms | 立体对象的方法 |
transformations
线性或非线性变换
类或方法 | 说明 |
---|---|
LinearTransform | 线性变换 |
NonLinearTransform | 非线性变换 |
TransformInterpolator | 在线性变换之间插值 |
spher2cart | 球形坐标转换为笛卡尔坐标 |
cart2spher | 笛卡尔坐标转换为球形坐标 |
cart2cyl | 笛卡尔坐标转换为圆柱坐标 |
cyl2cart | 圆柱坐标转换为笛卡尔坐标 |
cyl2spher | 圆柱坐标转换为球形坐标 |
spher2cyl | 球形坐标转换为圆柱坐标 |
cart2pol | 笛卡尔坐标转换为极坐标 |
pol2cart | 极坐标转换为笛卡尔坐标 |
笛卡尔坐标系是直角坐标系和斜坐标系的统称。
2.3 附加功能和配置
addons
添加附带的轴、图例、光源等
类或方法 | 说明 |
---|---|
ScalarBar | 2D标度条 |
ScalarBar3D | 3D标度条 |
Slider2D | 2D滑块 |
Slider3D | 3D滑块 |
Icon | 添加图标网格 |
LegendBox | 2D图例框 |
Light | 光源 |
Axes | 自定义轴 |
RendererFrame | 渲染框线 |
Ruler2D | 2D标尺 |
Ruler3D | 3D标尺 |
RulerAxes | 标尺轴 |
DistanceTool | 测距工具 |
DrawingWidget SplineTool | 曲线工具 |
Goniometer | 角度计 |
ButtonWidget Button | 按钮 |
Flagpost | 描述性标记 |
ProgressBarWidget | 进度条 |
BoxCutter | 立方体切割控件 |
PlaneCutter | 平面切割控件 |
SphereCutter | 球体切割控件 |
applications
可交互的功能
类或方法 | 说明 |
---|---|
Browser | 通过一个滑块查看一系列的vedo对象 |
IsosurfaceBrowser | 生成由滑块控制的体积等值面 |
FreeHandCutPlotter | 编辑网格的工具 |
RayCastPlotter | 使用光线投射做立体渲染 |
Slicer2DPlotter | 面向相机的一个切片,可以任意朝向 |
Slicer3DPlotter | 创建带有切面的渲染窗口 |
Slicer3DTwinPlotter | 创建两个并行的带有3D切片器的立体图形 |
MorphPlotter | 带有3个渲染窗口的绘制器,分别表示源、目标和扭曲的网格 |
SplinePlotter | 可以交互式的画曲线的绘制器 |
AnimationPlayer | 带有播放/暂停、快进/后退和滑块功能的绘制器 |
file_io
读入和导出
类或方法 | 说明 |
---|---|
load | 从文件或链接导入vedo对象 |
read | 从文件读取vedo对象 |
download | 从URL检索对象,存到本地,返回本地路径 |
gunzip | 解压.gz 文件到临时文件,返回临时文件的路径 |
loadStructuredPoints | 从文件导入vtkStructuredPoints 对象 |
loadStructuredGrid | 从文件导入vtkStructuredGrid 对象 |
write | 将对象存到文件。支持的文件格式:vtk、vti、ply、obj、stl、byu、vtp、vti、mhd、xyz、xml、tif、png、bmp |
save | 将对象存到文件 |
export_window | 把渲染场景导出到HTML、X3D或Numpy文件 |
import_window | 从Numpy的NPZ文件导入整个场景 |
load_obj | 从OBJ文件导入网格对象集 |
screenshot | 保存当前渲染窗口的截图 |
ask | 在命令行问问题,返回字符串格式的回答。 |
Video | 从某个渲染窗口生成视频 |
utils
公用工具
类或方法 | 说明 |
---|---|
OperationNode | 用于跟踪操作 |
ProgressBar | 在终端打印进度条的类 |
progressbar | 在终端打印进度条的方法 |
Minimizer | 使用Nelder-Mead算法的函数最小值查找器 |
geometry | 使用vtkGeometryFilter 。用于从任意类型的数据集中提取几何图形 |
is_sequence | 检查输入对象是否可迭代 |
lin_interpolate | 把rangeX 范围内的变量x 线性插入rangeY 范围 |
vector | 返回表示向量的3D numpy数组 |
mag | 获取向量或向量组的长度 |
mag2 | 获取向量或向量组长度的平方 |
versor | 返回单位向量 |
precision | 返回以指定精度表示的值的字符串 |
round_to_digit | 把实数舍入到指定有效位数 |
point_in_triangle | 判断一个点是否在另外三个点组成的三角形内 |
point_line_distance | 计算一个点到另外两个点连线的距离 |
closest | 返回给定的点和点集中距离最近的点 |
grep | 过滤文件中以特定标志开头的行 |
make_bands | 把列表中的值分到等值的波段中。 |
pack_spheres | 把球体打包到边界框中 |
humansort | 以人更期望的方式对列表进行排序,就地修改原列表 |
print_histogram | 在终端打印直方图 |
print_inheritance_tree | 打印类的继承树 |
camera_from_quaternion | 定义带有特定方向的vtkCamera |
camera_from_neuroglancer | 从neuroglancer状态字典定义vtkCamera |
camera_from_dict | 从字典定义vtkCamera |
camera_to_dict | 把vtkCamera 转为字典 |
oriented_camera | 生成指向特定方向的vtkCamera 对象,有确定的顶部方向,设置回退。 |
vedo2trimesh | 把vedo.mesh.Mesh 对象转为Trimesh.Mesh 对象 |
trimesh2vedo | 把Trimesh.Mesh 对象转为vedo.mesh.Mesh 或vedo.Assembly 对象 |
vedo2meshlab | 把vedo.mesh.Mesh 对象转为Meshlab对象 |
meshlab2vedo | 把Meshlab对象转为vedo.mesh.Mesh 对象 |
vedo2open3d | 把vedo.mesh.Mesh 对象转为open3d.geometry.TriangleMesh 格式 |
open3d2vedo | 把open3d.geometry.TriangleMesh 转为vedo.mesh.Mesh 对象 |
vtk2numpy | 把vtkDataArray 、vtkIdList 或vtTransform 转为numpy数组 |
numpy2vtk | 把numpy数组转为vtkDataArray |
get_uv | 由平面上的点x和它对应的uv坐标,求平面上另一点p的UV纹理坐标 |
andrews_curves | 计算给定数据的Andrews曲线。 |
interactor_modes
自定义交互模式
类或方法 | 说明 |
---|---|
MousePan | 通过拖动鼠标,移动拍摄场景 |
FlyOverSurface | 浏览某个切面 |
BlenderStyle | 使用Blender默认的按键绑定创建交互模式 |
setting
改变全局行为和风格的设置
类或方法 | 说明 |
---|---|
Settings | 全局行为和风格的一般设置 |
3. 模块类的继承关系
3.1 core、visual、volume
3.2 grids
3.3 pointcloud
3.4 mesh
3.5 shapes
3.6 assembly
3.7 addons
3.8 applications
相关文章:

Python的3D可视化库 - vedo (1)简介和模块功能概览
文章目录 1. vedo和它支持的功能简介1.1 安装vedo1.2 命令行接口1.3 导出3D文件1.4 文件格式转换 2. vedo模块功能概览2.1 绘制和渲染visual 管理可视化、对象及其属性的显示的基类plotter 3D渲染colors 定义和显示颜色dolfin FEniCS/Dolfin库的支持 2.2 图形数据管理mesh 多边…...

全面解析:HTML页面的加载全过程(一)--输入URL地址,与服务器建立连接
用户输入URL地址,与服务器建立连接 用户在浏览器地址栏输入一个URL 浏览器开始执行以下三步操作操作:url解析、DNS查询、TCP连接 第一步:URL解析 什么是URL? URL(Uniform Resource Locator,统一资源定位符)是互联网…...

elasticsearch的倒排索引是什么?
大家好,我是锋哥。今天分享关于【elasticsearch的倒排索引是什么?】面试题。希望对大家有帮助; elasticsearch的倒排索引是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 倒排索引(Inverted Index&a…...

Ubuntu VNC Session启动chromium和firefox报错
问题描述 VNC客户端连接到Ubuntu Server后,启动chromium和firefox时报错: $ chromium [348564:348564:1117/102143.085649:ERROR:ozone_platform_x11.cc(244)] Missing X server or $DISPLAY [348564:348564:1117/102143.085732:ERROR:env.cc(258)] Th…...

【Tealscale + Headscale + 自建服务器】异地组网笔记
文章目录 效果为什么要用 Headscale云服务器安装 Headscale配置 config.yaml创建反向代理搭建管理 UI授权管理 UI添加互联设备参考 效果 首先是连接情况,双端都连接上自建的 Headscale, 手机使用移动流量,测试一下 ping 值 再试试进入游戏 可…...

C++ 编程基础(8)模版 | 8.2、函数模版
文章目录 一、函数模版1、声明与定义2、模版参数3、模板的实例化3.1、隐式实例化3.2、显示实例化 4、模版的特化5、注意事项6、总结 前言: C 函数模板是一种强大的特性,它允许程序员编写与类型无关的代码。通过使用模板,函数或类可以处理不同…...

Android Studio音频视频播放器课程设计
这个项目适合刚刚学习Android studio的初学者,实现音视频的基本播放功能,各项功能的页面都做的比较简单,特别适用于初学者,其特点在于本项目抛开了各种花里胡哨的制作,以最接近初学者的样式画面呈现,完全不…...

速盾:CDN是否支持屏蔽IP?
CDN(内容分发网络)是一种用于提高网站性能和可靠性的技术,通过将内容分发到距离终端用户更近的节点,减少了数据传输的延迟并提高了用户体验。在CDN中,屏蔽IP是一项重要的功能,可以帮助网站屏蔽无效或恶意请…...

机器学习—学习曲线
学习曲线是帮助理解学习算法如何工作的一种方法,作为它所拥有的经验的函数。 绘制一个符合二阶模型的学习曲线,多项式或二次函数,画出交叉验证错误Jcv,以及Jtrain训练错误,所以在这个曲线中,横轴将是Mtrai…...

在 macOS 和 Linux 中,波浪号 `~`的区别
文章目录 1、在 macOS 和 Linux 中,波浪号 ~macOS示例 Linux示例 区别总结其他注意事项示例macOSLinux 结论 2、root 用户的主目录通常是 /root解释示例切换用户使用 su 命令使用 sudo 命令 验证当前用户总结 1、在 macOS 和 Linux 中,波浪号 ~ 在 macO…...

【Java】实战:多数元素
一、题目描述 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输出&#x…...

一文解决Latex中的eps报错eps-converted-to.pdf not found: using draft setting.
在使用Vscode配的PDFLatex编译IEEE TII的Latex模板时,出现eps文件不能转换为pdf错误,看了几十篇方法都没用,自己研究了半天终于可以正常运行了。主要原因还是Settings.JSON中的PDFLatex模块缺少:"--shell-escape", 命令…...

计算光纤色散带来的相位移动 matlab
需要注意的地方 1.以下内容纯属个人理解,很有可能不准确,请大家仅做参考 2.光速不要直接用3e8 m/s,需要用精确的2.9979.... 3.光的频率无论在真空还是光纤(介质)都是不变的,是固有属性,但是波长lambdac/f在不同的介…...

国内docker pull拉取镜像的解决方法
访问网站,查找该网站上可用的镜像源,然后替换掉下面代码中的hub-mirror.c.163.com: docker pull hub-mirror.c.163.com/library/nginx:latest 另外,进入到镜像之后,可以使用下面的命令查看操作系统版本。 lsb_releas…...

“Kafka面试攻略:核心问题与高效回答”
1,生产者发送消息的原理 发送消息的过程中,涉及到两个线程,main线程和sender线程,main线程会创建一个双端队列,main线程向双端队列发送消息,sender线程从双端队列里拉取消息,发送给Kafka Broke…...

C++ 多线程std::thread以及条件变量和互斥量的使用
前言 本文章主要介绍C11语法中std::thread的使用,以及条件变量和互斥量的使用。 std::thread介绍 构造函数 std::thread 有4个构造函数 // 默认构造函,构造一个线程对象,在这个线程中不执行任何处理动作 thread() noexcept;// 移动构造函…...

新华三H3CNE网络工程师认证—子接口技术
子接口(subinterface)是通过协议和技术将一个物理接口(interface)虚拟出来的多个逻辑接口。在VLAN虚拟局域网中,通常是一个物理接口对应一个 VLAN。在多个 VLAN 的网络上,无法使用单台路由器的一个物理接口…...

【MySQL】InnoDB内存结构
目录 InnoDB内存结构 主要组成 缓冲池 缓冲池的作用 缓冲池的结构 缓冲池中页与页之间连接方式分析 缓冲池如何组织数据 控制块初始化 页面初始化 缓冲池中页的管理 缓冲区淘汰策略 查看缓冲池信息 总结 变更缓冲区-Chang Buffer 变更缓冲区的作用 主要配置选项…...

基于大数据爬虫数据挖掘技术+Python的网络用户购物行为分析与可视化平台(源码+论文+PPT+部署文档教程等)
#1024程序员节|征文# 博主介绍:CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老…...

蓝桥杯每日真题 - 第19天
题目:(费用报销) 题目描述(13届 C&C B组F题) 解题思路: 1. 问题抽象 本问题可以看作一个限制条件较多的优化问题,核心是如何在金额和时间约束下选择最优方案: 动态规划是理想…...

CentOS7.9.2009的yum更换vault地窖保险库过期源,epel的archive归档源 笔记241117
CentOS7.9.2009的yum更换vault地窖保险库过期源,epel的archive归档源 笔记241117 备份 /etc/yum.repos.d 文件夹 tempUri/etc/yum.repos.d ; sudo cp -a $tempUri $tempUri.$(date %0y%0m%0d%0H%0M%0Sns%0N).bak清空 /etc/yum.repos.d 文件夹 sudo rm -rf /etc…...

Spark SQL大数据分析快速上手-完全分布模式安装
【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客 《Spark SQL大数据分析快速上手》【摘要 书评 试读】- 京东图书 大数据与数据分析_夏天又到了的博客-CSDN博客 Hadoop完全分布式环境搭建步骤-CSDN博客,前置环境安装参看此博文 完全分布模式也叫集群模式。将Spark目…...

Java面试题2024-Java基础
Java基础 1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、…...

局域网协同办公软件,2024安全的协同办公软件推荐
在2024年,随着数字化转型的深入和远程工作需求的增加,协同办公软件已成为企业提升工作效率、优化沟通流程的重要工具。 以下是一些值得推荐的安全的协同办公软件: 钉钉 功能全面:钉钉是一款综合性极强的企业级协同软件ÿ…...

osg、osgearth简介及学习环境准备
一、osg简介(三维场景图渲染与调度引擎) OSG是Open Scene Graphic 的缩写,OSG于1997年诞生于以为滑翔机爱好者之手,Don burns 为了对滑翔机的飞行进行模拟,对openGL的库进行了封装,osg的雏形就这样诞生了&…...

nodejs基于微信小程序的云校园的设计与实现
摘 要 相比于传统的校园管理方式,智能化的管理方式可以大幅提高校园的管理效率,实现了云校园管理的标准化、制度化、程序化的管理,有效地防止了云校园信息的不规范管理,提高了信息的处理速度和精确度,能够及时、准确地…...

uni-app快速入门(十)--常用内置组件(下)
本文介绍uni-app的textarea多行文本框组件、web-view组件、image图片组件、switch开关组件、audio音频组件、video视频组件。 一、textarea多行文本框组件 textarea组件在HTML 中相信大家非常熟悉,组件的官方介绍见: textarea | uni-app官网uni-app,un…...

golang基础
在 Go 中字符串是不可变的,例如下面的代码编译时会报错: cannot assign to s[0] 但如果真的想要修改怎么办呢?下面的代码可以实现: var s string "hello" s [ 0 ] c s : "hello" c : [] b…...

Selenium + 数据驱动测试:从入门到实战!
引言 在软件测试中,测试数据的多样性和灵活性对测试覆盖率至关重要。而数据驱动测试(Data-Driven Testing)通过将测试逻辑与数据分离,极大地提高了测试用例的可维护性和可扩展性。本文将结合Selenium这一流行的测试工具࿰…...

LLaMA与ChatGLM选用比较
目录 1. 开发背景 2. 目标与应用 3. 训练数据 4. 模型架构与规模 5. 开源与社区支持 6. 对话能力 7. 微调与应用 8. 推理速度与资源消耗 总结 LLaMA(Large Language Model Meta AI)和 ChatGLM(Chat Generative Language Model)都是强大的大型语言模型,但它们有一…...