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

三、Three.js模型对象、材质

一、三维向量Vector3与模型位置

点模型Points、线模型Line、网格网格模型Mesh等模型对象的父类都是Object3D,如果想对这些模型进行旋转、缩放、平移等操作,如何实现,可以查询Threejs文档Object3D对相关属性和方法的介绍

1、三维向量Vector3

三维向量Vector3有xyz三个分量,threejs中会用三维向量Vector3表示很多种数据,本节课提到的比较简单,就是位置.position和缩放.scale属性。

查看three.js文档你可以知道Vector3对象具有属性.x.y.zVector3对象还具有.set()等方法。

const v3 = new THREE.Vector3(100,100,100);
v3.set(50,50,50)
console.log('sad',v3);

2、位置属性.position

// 位置属性.position使用threejs三维向量对象Vector3表示的
console.log('模型位置属性.position的值', mesh.position);

模型位置.position属性用一个三维向量表示,那意味着,以后你想改变位置属性,就应该查询文档Vector3。

这里之所以强调这一点,课程目的不单单是给你介绍具体的知识点,也是在引导你学会查文档,降低记忆压力。

3、改变位置属性

通过模型位置属性.position可以设置模型在场景Scene中的位置。模型位置.position的默认值是THREE.Vector3(0.0,0.0,0.0),表示坐标原点。

设置网格模型y坐标

mesh.position.y = 80;

设置模型xyz坐标

mesh.position.set(80,2,10);

 4、缩放

属性.scale表示模型对象的xyz三个方向上的缩放比例,.scale的属性值是一个三维向量对象Vector3,默认值是THREE.Vector3(1.0,1.0,1.0)

轴方向放大2倍

mesh.scale.x = 2.0;

网格模型xyz方向分别缩放0.5,1.5,2倍

mesh.scale.set(2, 1.5, 2)

 

5、平移

执行.translateX().translateY()等方法本质上改变的都是模型的位置属性.position

网格模型沿着x轴正方向平移100,可以多次执行该语句,每次执行都是相对上一次的位置进行平移变换。

// 等价于mesh.position = mesh.position + 100;
mesh.translateX(100);//沿着x轴正方向平移距离100

沿着Z轴负方向平移距离50。

mesh.translateZ(-50);

 

二、欧拉Euler与角度属性.rotation 

模型的角度属性.rotation和四元数属性.quaternion都是表示模型的角度状态,只是表示方法不同,.rotation属性值是欧拉对象Euler,.quaternion属性值是是四元数对象Quaternion

大家刚入门,就先给大家介绍比较容易理解的角度属性.rotation和对应属性值欧拉对象Euler

 1、欧拉对象Euler

// 创建一个欧拉对象,表示绕着xyz轴分别旋转45度,0度,90度
const Euler = new THREE.Euler( Math.PI/4,0, Math.PI/2);

通过属性设置欧拉对象的三个分量值。

const Euler = new THREE.Euler();
Euler.x = Math.PI/4;
Euler.y = Math.PI/2;
Euler.z = Math.PI/4;

 2、改变角度属性.rotation

角度属性.rotation的值是欧拉对象Euler,意味着你想改变属性.rotation,可以查询文档关于Euler类的介绍。

//绕y轴的角度设置为60度
mesh.rotation.y += Math.PI/4;
//绕y轴的角度增加60度
mesh.rotation.y += Math.PI/4;
//绕y轴的角度减去60度
mesh.rotation.y -= Math.PI/4;

3、旋转方法.rotateX().rotateY().rotateZ() 

 模型执行.rotateX().rotateY()等旋转方法,你会发现改变了模型的角度属性.rotation

mesh.rotateX(Math.PI/4);//绕x轴旋转π/4
// 绕着Y轴旋转90度
mesh.rotateY(Math.PI / 2);
//控制台查看:旋转方法,改变了rotation属性
console.log(mesh.rotation);
cube.rotateX(0.5)
cube.rotateY(0.5)
cube.rotateZ(0.5)

4、旋转动画

function render() {cube.rotation.y += 0.01renderer.render(scene, camera)requestAnimationFrame(render)
}render()
function render() {cube.rotateY(0.01)renderer.render(scene, camera)requestAnimationFrame(render)
}render()

5、绕某个轴旋转

网格模型绕(0,1,0)向量表示的轴旋转π/8

const axis = new THREE.Vector3(0,1,0);//向量axis
mesh.rotateOnAxis(axis,Math.PI/8);//绕axis轴旋转π/8

三、模型材质颜色(Color对象)

你去文档搜索MeshBasicMaterial、MeshLambertMaterial、MeshPhongMaterial等网格材质,可以看到他们都有一个颜色属性.color

下面结合threejs文档,带领大家探索一下,如何通过查询文档来修改模型材质的颜色值.color

1、材质颜色属性.color

如果你想修改材质的颜色属性.color,那么你就需要了解该属性对应属性值的形式。

  1. 查文档,找到.color属性,可以发现threejs材质对象颜色属性.color是threejs的颜色对象Color

  2. console.log()打印:浏览器控制台查看材质颜色属性的属性值

console.log('material.color',material.color);

2、颜色对象Color

查看颜色对象Color文档,可以看到颜色对象有三个属性,分别为.r.g.b,表示颜色RGB的三个分量。

// 创建一个颜色对象
const color = new THREE.Color();//默认是纯白色0xffffff。
console.log('查看颜色对象结构',color);//可以查看rgb的值

3、通过.r.g.b属性改变颜色值 

const color = new THREE.Color();
color.r = 0.5;
console.log('颜色',color);

4、改变颜色的方法

查看Color文档,可以看到Color提供了.setHex().setRGB().setStyle().set()等修改颜色值的方法。

color.setRGB(0,1,0);//RGB方式设置颜色
color.setHex(0x00ff00);//十六进制方式设置颜色
color.setStyle('#00ff00');//前端CSS颜色值设置颜色

.setHex().setStyle()风格的颜色值都可以作为.set()的参数

color.set(0x00ff00);//十六进制方式设置颜色
color.set('#00ff00');//前端CSS颜色值设置颜色

5、重置模型材质的颜色

十六进制颜色

material.color.set(0x00ffff);

前端CSS风格颜色值:'#00ff00'、'rgb(0,255,0)'等形式

material.color.set('#00ff00');
material.color.set('rgb(0,255,0)');

 

四、 模型材质父类Material

1、材质父类Material

查询threejs文档,你可以看到基础网格材质MeshBasicMaterial、漫反射网格材质MeshLambertMaterial、高光网格材质MeshPhongMaterial等网格材质都有一个共同的父类Material

2、网格材质继承父类属性 

从JavaScript语法角度看子类都会继承父类的属性和方法,threejs的材质同样道理。

MeshBasicMaterial、MeshLambertMaterial、MeshPhongMaterial等子类网格材质会从父类Material继承一些属性和方法,比如透明度属性.opacity、面属性.side、是否透明属性.transparent等等。

3、材质半透明设置

material.transparent = true;//开启透明
material.opacity = 0.5;//设置透明度

4、材质面属性.side

你可以用矩形平面PlaneGeometry来测试材质的面属性.side

查看文档,可以知道材质面属性.side默认值是THREE.FrontSide,表示网格模型正面可以看到,THREE.BackSide表示背面可以看到,THREE.DoubleSide表示双面可以看到。

material.side = THREE.BackSide;//背面可以看到
material.side = THREE.DoubleSide;//双面可见

THREE.FrontSideTHREE.BackSideTHREE.DoubleSide其实在theeejs内部都表示一个数字,你可以通过浏览器控制log打印查看验证,具体可以查看src目录下constants.js的源码文件。

console.log('material.side',material.side);

五、模型材质和几何体属性

几何体.geometry和材质属性.material

1、浏览器控制台查看对象和属性

浏览器控制打印模型对象mesh,可以展开对象,查看对象的几何体.geometry和材质属性.material

const mesh = new THREE.Mesh(geometry, material);
console.log('mesh',mesh);

浏览器控制台打印模型的几何体属性.geometry和材质属性.material

console.log('mesh.geometry',mesh.geometry);
console.log('mesh.material',mesh.material);

2、访问改变模型材质属性

const cube = new THREE.Mesh(geometry, material);
//这两种写法等价
cube.material.color.set('blue')
material.color.set('blue')

3、访问改变模型几何体属性

const cube = new THREE.Mesh(geometry, material);
//这两种写法等价
cube.geometry.translate(0, 100, 0)
geometry.translate(0, 100, 0)

4、材质或几何体共享

const mesh = new THREE.Mesh(geometry, material);
const mesh2 = new THREE.Mesh(geometry, material);
mesh2.position.x = 100;
// 两个mesh共享一个材质,改变一个mesh的颜色,另一个mesh2的颜色也会跟着改变
// mesh.material和mesh2.material都指向同一个material
// 三者等价:mesh.material、mesh2.material、material
mesh.material.color.set(0xffff00);
// 三者等价:mesh.geometry、mesh2.geometry、geometry
mesh.geometry.translate(0,100,0);

 六、克隆.clone()和复制.copy()

 克隆.clone()、复制.copy()是threejs很多对象都具有的方法,比如三维向量对象Vector3、网格模型Mesh、几何体、材质。

1、克隆.clone()

克隆.clone()简单说就是复制一个和原对象一样的新对象,下面以三维向量对象Vector3给大家举例,其他的threejs对象都可以参照类似的写法。

const v1 = new THREE.Vector3(1, 2, 3);
console.log('v1',v1);
//v2是一个新的Vector3对象,和v1的.x、.y、.z属性值一样
const v2 = v1.clone();
console.log('v2',v2);

2、复制.copy()

 复制.copy()简单说就是把一个对象属性的属性值赋值给另一个对象,下面以三维向量对象Vector3给大家举例,其他的threejs对象都可以参照类似的写法。

const v1 = new THREE.Vector3(1, 2, 3);
const v3 = new THREE.Vector3(4, 5, 6);
//读取v1.x、v1.y、v1.z的赋值给v3.x、v3.y、v3.z
v3.copy(v1);

3、Mesh克隆.clone()

通过mesh克隆.clone()一个和mesh一样的新模型对象mesh2。

const scene = new THREE.Scene();const geometry = new THREE.BoxGeometry(100, 100, 100);
const material = new THREE.MeshBasicMaterial({color: 'green',
})
const cube = new THREE.Mesh(geometry, material);
const mesh = cube.clone()mesh.position.x = 150
mesh.material.color.set('blue')
scene.add(cube,mesh);

4、几何体和材质克隆.clone()

const mesh2 = mesh.clone();
// 克隆几何体和材质,重新设置mesh2的材质和几何体属性
mesh2.geometry = mesh.geometry.clone();
mesh2.material = mesh.material.clone();
// 改变mesh2颜色,不会改变mesh的颜色
mesh2.material.color.set(0xff0000);

 

 

相关文章:

三、Three.js模型对象、材质

一、三维向量Vector3与模型位置 点模型Points、线模型Line、网格网格模型Mesh等模型对象的父类都是Object3D,如果想对这些模型进行旋转、缩放、平移等操作,如何实现,可以查询Threejs文档Object3D对相关属性和方法的介绍 1、三维向量Vector3 …...

C# 背景 透明 抗锯齿 (效果完美)

主要是通过 P/Invoke 技术调用 Windows API 函数 gdi32.dll/user32.dll,同时定义了一些结构体来配合这些 API 函数的使用,常用于处理图形绘制、窗口显示等操作。 运行查看效果 局部放大,抗锯齿效果很不错,尾巴毛毛清晰可见。 using System; u…...

Ubuntu 22.04 一键部署MinerU1.1.0

MinerU MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。 MinerU诞生于书生-浦语的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发…...

10、k8s对外服务之ingress

service和ingress的作用 service的作用 NodePort:会在每个节点开放一个端口,端口号30000-32767。 也是只能用于内网访问,四层转发。实现负载均衡。不能基于域名进行访问。 clusterip:service的默认类型,只能在集群…...

mysql面试题

一、基础概念 什么是主键(Primary Key)? 答案: 唯一标识表中每行数据的字段或字段组合,不允许 NULL 值,确保数据唯一性。 外键(Foreign Key)的作用是什么? 答案&#xf…...

什么是关系型数据库?什么是非关系型数据库?

关系型数据库:关系型数据库是基于关系模型的数据库,它将数据组织成二维表格的形式,每个表格称为一个表(Table),表中的每一行称为一条记录(Record)或元组(Tuple&#xff0…...

科技云报到:科技普惠潮流渐起,“开源”将带我们走向何方?

科技云报到原创。 开源决定软件未来,已成为全球技术和产业创新的主导模式之一。“开源”思想的诞生,可以说是计算机发展史中极具理想主义和浪漫主义色彩的一页,是科技自由与技术极客思想的延伸。 数字化浪潮奔涌,从软件开发的底…...

校园网架构设计与部署实战

一、学习目标 掌握校园网分层架构设计原则 理解多业务VLAN规划方法 学会部署认证计费系统 实现基础网络安全防护 二、典型校园网场景 需求分析:某中学需建设新型校园网络 覆盖教学楼/宿舍/图书馆三区域 区分教师/学生/访客网络权限 满足2000终端并发接入 …...

【含开题报告+文档+PPT+源码】基于Springboot的乡村老龄居民信息管理系统

开题报告 本文介绍了一个基于Spring Boot框架的乡村老龄居民信息管理系统。该系统旨在通过信息化手段,提高乡村老龄居民的生活质量,并为相关部门提供便捷的数据管理和服务支持。系统主要实现了用户注册登录、个人信息查看、健康数据录入、健康建议查询、…...

前端插件使用xlsx-populate,花样配置excel内容,根据坐添加标替换excel内容,修改颜色,合并单元格...。

需求要求:业务人员有个非常复杂得excel表格,各种表头等,但是模板是固定得。当然也可以实现在excel上搞出各种表格,但是不如直接用已有模板替换其中要动态得内容方便,这里我们用到CSDN得 xlsx-populate 插件。 实列中我…...

Mac m1 连接公司内网

1、创建VPN 1、在系统偏好设置 2、选择网络 3、进行添加 2、添加设置 1、选择VPN 2、类型选择L2TP/IPSec 3、填写服务器IP和账号 4、点击认证设置-填写密码 。然后应用 3、进行特殊配置 网上说苹果系统的问题。 1、创建命令 sudo vim /etc/ppp/options 2、添加内容-主要别…...

Jenkins 部署在 Mac 并在局域网内通过 ip 访问

Jenkins 部署在 Mac 并在局域网内通过 ip 访问 一、修改配置文件 打开文件 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist 打开文件 /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 两个文件目录不同&#xff0c;内容一样 <?xml version"1.0" e…...

臻识相机,华夏相机,芊熠车牌识别相机加密解密

臻识&#xff0c;华夏&#xff0c;芊熠这三种车牌识别相机解密我都试过了&#xff0c;可以正常解密成功&#xff0c;其它品牌我暂时没有测试。超级简单&#xff0c;免费的&#xff0c;白嫖无敌&#xff01; 流程&#xff1a; ①&#xff1a;先导出配置文件&#xff0c;例如我以…...

【Python 专题】数据结构 树

LeetCode 题目104. 二叉树的最大深度(gif 图解)方法一:后序遍历(DFS)方法二:层序遍历(BFS)872. 叶子相似的树(DFS 遍历)1448. 统计二叉树中好节点的数目(DFS 遍历)437. 路径总和 III(前缀和 + DFS 回溯)1372. 二叉树中的最长交错路径(DFS)236. 二叉树的最近公共…...

【飞行器原理学习】——1. 机翼及机翼参数

飞行器原理学习——1.机翼 一、 概述 飞机的各种机翼是飞机的控制面 通过铰链、钢索、液压等方式连接在机身上 操纵面运动时&#xff0c;会改变机翼的弧度和形状&#xff0c;使流经的空气发生偏转&#xff0c;从而影响空气动力的大小。使飞机围绕着3轴运动 二、机翼的操纵面…...

css之display:grid布局改块级元素布局

1.问题&#xff1a; div是块级元素&#xff0c;一个div元素占一行&#xff0c;但是&#xff0c;今天测试样式时&#xff0c;总是会有两个div并占一行&#xff0c;很困惑&#xff0c;结果发现是app这个样式 在main.css里 #app样式布局在main.ts里被应用 2.原因以及样式分析 im…...

如何组织和管理JavaScript文件:最佳实践与策略

在现代Web开发中&#xff0c;JavaScript已经成为不可或缺的一部分。随着项目规模的扩大&#xff0c;JavaScript代码的复杂性也随之增加。如何有效地组织和管理这些文件&#xff0c;不仅影响开发效率&#xff0c;还直接关系到项目的可维护性和可扩展性。本文将深入探讨如何组织和…...

Vue 中组件通信的方式有哪些,如何实现父子组件和非父子组件之间的通信?

一、父子组件通信&#xff08;垂直通信&#xff09; 1. Props 传值&#xff08;父 → 子&#xff09; 实现方案&#xff1a; <!-- Parent.vue --> <template><Child :user"userData" /> </template><script setup> import { ref } …...

伯克利 CS61A 课堂笔记 11 —— Mutability

本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理&#xff0c;全英文内容&#xff0c;文末附词汇解释。 目录 01 Objects 02 Example: Strings Ⅰ Representing Strings: the ASCII Standard Ⅱ Representing Strings: the Unicode Standard 03 Mutatio…...

MacOS安装Emacs

个人博客地址&#xff1a;MacOS安装Emacs | 一张假钞的真实世界 在MacOS X上可以使用Homebrew 安装Emacs&#xff1a; $ brew install emacs --with-cocoa 或者用MacPorts&#xff1a; $ sudo port install emacs-app OSX Emacs 网站提供了通用的二进制包。 前两种方法安装…...

基于海思soc的智能产品开发(图像处理的几种需求)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于一个嵌入式设备来说&#xff0c;如果上面有一个camera&#xff0c;那么就可以有很多的用途。简单的用途就是拍照&#xff0c;比拍照更多一点的…...

百度智能云AI收入增3倍,2025开源引流打赢生态战

免费、开源。在DeepSeek重塑产业价值观念后&#xff0c;百度、OpenAI等AI时代的“领航员”纷纷采取行动。 随着开源以雷霆万钧之势袭来&#xff0c;百度下定决心求变。而其底气&#xff0c;就藏在这份财报中。根据财报&#xff0c;2024年&#xff0c;百度集团总收入为1331亿元…...

[数据结构]顺序表详解

目录 一.线性表 二.顺序表 2.1概念及结构 1. 静态顺序表&#xff1a;使用定长数组存储元素。 2. 动态顺序表&#xff1a;使用动态开辟的数组存储。 2.1按需申请 2.2 接口实现&#xff1a;增删查改 SeqList.h: SeqList.c: test.c 一.线性表 线性表 &#xff08; line…...

力扣hot100 ——搜索二维矩阵 || m+n复杂度优化解法

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 解题思路&#xff1a; 借助行和列有序特性&#xff0c;不断按行或者列缩小范围&#xff1b;途中数字表示每…...

VirtualBox 中使用 桥接网卡 并设置 MAC 地址

在 VirtualBox 中使用 桥接网卡 并设置 MAC 地址&#xff0c;可以按照以下步骤操作&#xff1a; 步骤 1&#xff1a;设置桥接网卡 打开 VirtualBox&#xff0c;选择你的虚拟机&#xff0c;点击 “设置” (Settings)。进入 “网络” (Network) 选项卡。在 “适配器 1” (Adapt…...

ETL工具: Kettle入门(示例从oracle到oracle的数据导入)

kettle介绍 ETL工具,用于对数据的抽取&#xff08;Extract), 转换(Transform),加载 (Load&#xff09; Kettle 是一种ETL工具, 现称为 Pentaho Data Integration (PDI) 特点:纯JAVA语言编写 官方学习文档 网站: https://docs.hitachivantara.com/r/en-us/pentaho-data-int…...

未来AI方向落地场景:小语言模型,super_private_agent

未来AI方向落地场景:小语言模型,super_private_agent 目录 未来AI方向落地场景:小语言模型,super_private_agent小语言模型super - private - agent(注重隐私的智能代理)碳基生命和硅基生命交互界面面向agent的专用交互协议和数据接口从web平台经济到网络平台举例说明社交…...

Oracle RAC数据库单节点轮流重启

0、sqlplus / as sysdba 备份参数文件 create pfile/home/oracle/pfile.ora from spfile; 备份控制文件 Alter database backup controlfile to trace; 1、关闭两节点的监听&#xff1b; 2、操作系统层面kill掉所有LOCALNO的所有进程&#xff0c;即&#xff1a;连接会话。 p…...

渲染101对Blender的支持与硬件配置详解

一、Blender版本与渲染器支持 渲染101全面支持 Blender全版本&#xff08;包括Blender 4.0及早期版本&#xff09;&#xff0c;并适配其内置的 Eevee、Cycles、Workbench 三大渲染器 。此外&#xff0c;平台还兼容 Aces、Realflow、Anima 等40插件&#xff0c;覆盖建模、动画…...

安卓burp抓包,bypass ssl pinning

好久好久没有发东西了。主要是懒。。。 这几天在搞apk渗透&#xff0c;遇到了burp无法抓包问题&#xff0c;觉得可以写下来。 问题描述 1. 一台安卓手机&#xff0c;装了面具&#xff0c;可以拿到root 2. 电脑上有burp&#xff0c;设置代理 3.手机和电脑连同一个网段&…...

植物大战僵尸杂交版v3.2.1最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.2.1版本&#xff01;&#xff01;&#xff01;&#xff0c;有b站账户的记得要给作者三连关注一下呀&#xff01; 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;&#xff1a;https://pan.quark.cn/s/e5…...

【SQL】多表查询案例

&#x1f4e2;本章节主要学习使用SQL多表查询的案例,多表查询基础概念 请点击此处。 &#x1f384;数据准备 首先我们创建一个新的表也就是薪资等级表&#xff0c;其余两个表(员工表和薪资表)在多表查询章节中已经创建。然后我么根据这三个表完成下面的12个需求。 create tab…...

使用Python结合`stable-baselines3`库(包含PPO和TD3算法)以及`gym`库来实现分层强化学习的示例代码

以下是一个使用Python结合stable-baselines3库&#xff08;包含PPO和TD3算法&#xff09;以及gym库来实现分层强化学习的示例代码。该代码将环境中的动作元组分别提供给高层处理器PPO和低层处理器TD3进行训练&#xff0c;并实现单独训练和共同训练的功能。 代码实现 import g…...

解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”

一、神经网络&#xff1a;AI 领域的 “超级引擎” 在机器学习的庞大算法体系中&#xff0c;有十种算法被广泛认为是最具代表性和实用性的&#xff0c;它们犹如机器学习领域的 “十大神器”&#xff0c;各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森…...

一周学会Flask3 Python Web开发-redirect重定向

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 前面我们学过渲染到模板页面&#xff0c;这个其实是一种内部的转发&#xff0c;浏览器地址栏地址没有变化。如果我们想重定向…...

FFmpeg 源码编译安装

参考&#xff1a; https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu Linux (Ubuntu) 下载 FFmpeg 源码&#xff0c;并将其解压&#xff0c;这里我将它放在 ~/ffmpeg_source 目录下&#xff1b; cd ~/ffmpeg_sources wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org…...

3.Docker常用命令

1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...

vue3面试题进阶版

覆盖 Vue3 的核心知识点、高频考点及实战场景 一、基础与核心概念 MVVM 与 MVC 的区别 MVC&#xff1a;Model&#xff08;数据&#xff09;、View&#xff08;视图&#xff09;、Controller&#xff08;控制器&#xff09;&#xff0c;视图更新需手动操作 DOM。MVVM&#xff1…...

深入理解指针

例题1 int main() {int a[5][5];int(*p)[4];p a;printf("%p, %d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);return 0; }由图知第二个打印的是-4 因为%p是直接将内存中的值当作地址打印 而-4在内存中存放的是其二进制的补码,打印以16进制形式…...

微信小程序实现拉卡拉支付

功能需求&#xff1a;拉卡拉支付&#xff08;通过跳转拉卡拉平台进行支付&#xff09;&#xff0c;他人支付&#xff08;通过链接进行平台跳转支付&#xff09; 1.支付操作 //支付 const onCanStartPay async (obj) > {uni.showLoading({mask: true})// 支付接口获取需要传…...

conda简单命令

查看当前环境已经安装的库 conda list 查看conda已经创建的环境 conda env list切换conda环境 conda activate 环境名称删除环境 conda remove --name 环境名称 --all安装库 conda install 库名卸载库 conda remove 库名导出&#xff08;导入&#xff09;环境 保存某个…...

Linux应用之构建命令行解释器(bash进程)

目录 1.分析 2.打印输入提示符 3.读取并且处理输入字符串 4.创建子进程并切换 5.bash内部指令 6.完整代码 1.分析 当我们登录服务器的时候&#xff0c;命令行解释器就会自动加载出来。接下来我们就。在命令行中输入指令来达到我们想要的目的。 我们在命令行上输入的…...

什么是3D可视化?有哪些优势和应用领域?

3D可视化服务是一种基于大数据、物联网、云计算等技术构建的三维可视化系统服务&#xff0c;它提供直观的三维软件应用服务&#xff0c;帮助用户更好地理解和分析数据。以下是对3D可视化服务的详细介绍&#xff1a; 一、3D可视化服务的原理 3D可视化服务的原理主要包括数据采…...

在PyCharm中运行Jupyter Notebook的.ipynb文件及其pycharm软件的基础使用

&#xff08;注意需使用PyCharm专业版&#xff0c;学生、教师可以申请免费使用&#xff1a;https://www.jetbrains.com/shop/eform/students&#xff09; 1. pycharm2024版汉化 https://blog.csdn.net/m0_74103046/article/details/144560999 2. pycharm中的python控制台和J…...

解锁C#自定义属性:从0到1的深度实践指南

一、开篇&#xff1a;自定义属性的奇妙世界 在 C# 的编程宇宙中&#xff0c;自定义属性是一个强大且迷人的存在&#xff0c;它就像是代码世界里的魔法标记&#xff0c;为我们的程序赋予了丰富的元数据&#xff0c;让代码变得更加智能和富有表现力。 想象一下&#xff0c;你正…...

Ubuntu 安装 OpenCV (C++)

版本详情&#xff1a; Ubuntu: 22.04 5.15.0-133-generic gcc: 11.4.0 g: 11.4.0 OpenCV: 4.7.0 1. 卸载 OpenCV 进入原先编译 opencv 的 build 目录&#xff0c;在该目录下打开终端&#xff0c;执行以下代码&#xff08;如果 build 已经删除了&#xff0c;可以重新编译一…...

deepseek清华大学第二版 如何获取 DeepSeek如何赋能职场应用 PDF文档 电子档(附下载)

deepseek清华大学第二版 DeepSeek如何赋能职场 pdf文件完整版下载 https://pan.baidu.com/s/1aQcNS8UleMldcoH0Jc6C6A?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/3ee62050a2ac...

kill -9 结束某个用户所有进程的方式-linux019

1. 使用 pkill 命令 pkill 命令可以通过用户名直接终止该用户的所有进程。加上 -9 参数&#xff0c;表示强制结束进程。 pkill -9 -u XXXX 说明&#xff1a;这个命令会使用 SIGKILL 信号&#xff08;即 kill -9&#xff09;强制终止 ttlsa 用户的所有进程。 2. 使用 killal…...

十大排序算法

排序算法 插入排序冒泡排序选择排序希尔排序计数排序快速排序1经典 Lomuto 分区法2经典 Lomuto 分区法3随机快排 堆排序归并排序桶排序基数排序 插入排序 从i1开始&#xff0c;判断nums[i-1]和nums[i]的大小&#xff0c;一直到nums[i]插入到自己的位置。模拟抓扑克牌的过程&am…...

第8章作业

接口ip配置 r2 [r2]interface GigabitEthernet 0/0/0 [r2-GigabitEthernet0/0/0]ip address 13.0.0.3 24 [r2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 [r2-GigabitEthernet0/0/1]ip address 100.1.1.254 24 [r2-GigabitEthernet0/0/1]interface GigabitEthernet…...