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

Three.js 快速入门教程【六】相机控件 OrbitControls

·
请添加图片描述

系列文章目录

Three.js 快速入门教程【一】开启你的 3D Web 开发之旅
Three.js 快速入门教程【二】透视投影相机
Three.js 快速入门教程【三】渲染器
Three.js 快速入门教程【四】三维坐标系
Three.js 快速入门教程【五】动画渲染循环
Three.js 快速入门教程【六】相机控件 OrbitControls
Three.js 快速入门教程【七】常见几何体类型


文章目录

  • 系列文章目录
  • 一、前言
  • 二、OrbitControls控件作用
  • 三、工作原理
    • 操作指南:
  • 三、项目中添加 OrbitControls 控件
    • 1、新建控件实例
    • 2、更新控件状态
  • 四、OrbitControls 属性
    • 1、基础行为控制
    • 2、 视角限制
    • 3、 自定义按键配置
    • 4、 禁用某个按钮的操作
  • 五、OrbitControls 方法
  • 六、OrbitControls 事件监听
  • 五、总结


一、前言

      在3D可视化开发中,用户交互体验直接影响项目的成败。OrbitControls 是 Three.js 库中一个非常实用的相机控制辅助工具,它能极大地增强用户与 3D 场景的交互性,让用户可以像在现实世界中观察物体一样对场景进行操作,从而更好地观察 3D 场景。


二、OrbitControls控件作用

OrbitControls作为官方推荐的交互解决方案,能够实现:

  • 鼠标拖拽旋转视图

  • 滚轮缩放场景

  • 平移观察视角

  • 移动端触摸支持

请添加图片描述


三、工作原理

OrbitControls 会监听鼠标事件(如鼠标移动、鼠标滚轮滚动、鼠标按键点击等),根据用户的操作实时计算相机应该移动到的新位置和角度,然后更新相机的相关属性,从而改变相机在 3D 场景中的视角。例如,当用户按下鼠标左键并拖动时,OrbitControls 会计算鼠标移动的距离和方向,进而旋转相机;当用户滚动鼠标滚轮时,它会根据滚轮的滚动量来缩放相机。

操作指南:

  • 旋转功能:用户按下鼠标左键并拖动,可以围绕一个目标点旋转相机,就像在现实中围绕一个物体走动观察一样。这样可以从不同的角度查看场景中的物体,全面了解其外观和结构。
  • 平移功能:按下鼠标右键并拖动,能够在水平和垂直方向上平移相机。这在需要查看场景中特定区域或者调整观察范围时非常有用。
  • 缩放功能:滚动鼠标滚轮可以实现相机的缩放操作,拉近或拉远与场景中物体的距离,以便更清晰地观察细节或者查看整个场景的全貌。

三、项目中添加 OrbitControls 控件

1、新建控件实例

const controls=new OrbitControls(camera, domElement);

构造函数接受两个参数:
camera:要控制的相机对象。
domElement:用于监听鼠标事件的 DOM 元素,通常是渲染器的 DOM 元素。

2、更新控件状态

controls.update()

该方法用于更新控件的状态,通常在每一帧渲染时调用。如果启用了阻尼效果,必须在每一帧调用此方法,以确保阻尼效果正常工作。

示例:

// 创建 OrbitControls 控件
const controls = new OrbitControls(camera, renderer.domElement);// 设置阻尼(惯性),让控件的操作更平滑
controls.enableDamping = true;
controls.dampingFactor = 0.05;// 更新控件
function animate() {requestAnimationFrame(animate);// 必须每帧更新!controls.update();renderer.render(scene, camera);
}
animate();

在上述代码中,我们创建了 OrbitControls 实例,然后启用了阻尼效果,并设置了阻尼因子,这样在操作相机时会有惯性的感觉,让交互更加自然。同时,在 animate 函数中,我们调用 controls.update() 方法来更新控件的状态,确保相机能够根据用户的操作实时更新。


四、OrbitControls 属性

常用属性大全:

属性名称类型说明默认值
enableDampingBoolean用于启用或禁用阻尼(惯性)效果,启用后,相机的运动会更平滑,就像有惯性一样false
dampingFactorNumber用于控制阻尼(惯性)效果强度的属性,通常取值范围在 0 到 1 之间0.05
autoRotateBoolean相机是否围绕着目标点自动旋转false
autoRotateSpeedNumber自动旋转的速度1.0
enableRotateBoolean用于控制是否启用鼠标旋转相机true
enablePanBoolean用于控制是否启用鼠标平移相机true
enablePanBoolean用于控制是否启用鼠标滚轮缩放相机true
maxDistanceNumber设置相机到目标点的最大距离,限制缩放范围Infinity
minDistanceNumber设置相机到目标点的最小距离,限制缩放范围0
minPolarAngleNumber相机垂直方向的最小角度(弧度制)0
maxPolarAngleNumber相机垂直方向的最大角度(弧度制)Math.PI
minAzimuthAngleNumber相机水平方向的最小角度(弧度制)-Infinity
maxAzimuthAngleNumber相机水平方向的最大角度(弧度制)Infinity
targetTHREE.Vector3对象相机观察目标点new THREE.Vector3(0, 0, 0)
screenSpacePanningBoolean相机的平移操作是否基于屏幕空间true
mouseButtonsObject配置鼠标按钮与相机控制操作之间的映射关系。通过修改这个属性,你可以自定义鼠标不同按键对应的操作,默认鼠标左键旋转(THREE.MOUSE.ROTATE),滚轮缩放(THREE.MOUSE.DOLLY),右键平移(THREE.MOUSE.PAN){ LEFT: THREE.MOUSE.ROTATE,MIDDLE: THREE.MOUSE.DOLLY, RIGHT: THREE.MOUSE.PAN }

1、基础行为控制

controls.enableDamping = true;   // 启用阻尼惯性
controls.dampingFactor = 0.05;  // 惯性系数(0-1)
controls.autoRotate = true;      // 启用自动旋转
controls.autoRotateSpeed = 2.0; // 旋转速度(默认1.0)controls.enableZoom = false;    // 禁用缩放
controls.enablePan = false;     // 禁用平移

2、 视角限制

controls.minDistance = 3;      // 最小缩放距离
controls.maxDistance = 50;     // 最大缩放距离controls.minPolarAngle = Math.PI/4;  // 垂直视角下限(弧度)
controls.maxPolarAngle = Math.PI/2;  // 垂直视角上限controls.minAzimuthAngle = -Math.PI/2; // 水平旋转下限
controls.maxAzimuthAngle = Math.PI/2;  // 水平旋转上限

3、 自定义按键配置

修改左键平移,右键旋转

controls.mouseButtons = {LEFT:THREE.MOUSE.PAN,//平移MIDDLE: THREE.MOUSE.DOLLY,RIGHT:  THREE.MOUSE.ROTATE//旋转
};

4、 禁用某个按钮的操作

把对应按键配置设置为null

// 禁用鼠标滚轮的操作
controls.mouseButtons.MIDDLE = null;

五、OrbitControls 方法

方法名称说明
update该方法用于更新控件的状态,通常在每一帧渲染时调用。如果启用了阻尼效果,必须在每一帧调用此方法,以确保阻尼效果正常工作
reset将相机的位置和角度重置为初始状态
saveState保存当前相机的位置、角度和目标点等状态
restoreState恢复之前保存的相机状态

六、OrbitControls 事件监听

事件名称说明使用场景
change当相机的位置、角度或者目标点发生变化时,就会触发 change 事件可用于实时更新与相机状态相关的 UI 元素,或者在相机视角改变时执行一些特定操作。
start当用户开始与控件进行交互(如按下鼠标按钮开始旋转、平移或缩放)时,会触发 start 事件。可以在用户开始操作相机时,播放一些提示音或者显示操作提示信息。
end当用户结束与控件的交互(如松开鼠标按钮)时,会触发 end 事件。可用于在用户操作结束后,进行一些资源清理或者数据保存的操作
// 变化事件监听
controls.addEventListener('change', () => {console.log('Camera position:', camera.position);console.log('Camera rotation:', camera.rotation);
});// 特定事件处理
controls.addEventListener('start', () => {console.log('交互开始');
});controls.addEventListener('end', () => {console.log('交互结束');
});

五、总结

       OrbitControls 作为 Three.js 生态中的重要控件,极大地简化了开发者在处理 3D 场景交互时的复杂度。它就像是一把钥匙,为用户打开了自由探索 3D 世界的大门,让用户能够以直观的方式与场景进行互动,从不同的角度、距离去观察和体验 3D 模型和场景。无论是在产品展示、建筑可视化还是游戏开发等领域,OrbitControls 都能发挥出巨大的作用,为项目增添独特的魅力。

更多three.js入门知识点请关注该系列教程后续的更新。

相关文章:

Three.js 快速入门教程【六】相机控件 OrbitControls

系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…...

【git】合并多个提交记录

1.说明 有时候因为某些小修改会导致代码多了很多不必要的提交,如果希望合并这些commit记录,我们可以使用rebase或者reset命令完成合并 2.rebase 这种方式是通过变基操作完成的,它适用于已经push到远程的情况,当我们变基好了之后…...

题海拾贝:【枚举】P2010 [NOIP 2016 普及组] 回文日期

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…...

SQL Server 链接服务器 MySQL 详细步骤

目录 前言 一、准备工作 1. 确认需求 2. 获取权限 二、安装必要的驱动程序和工具 1.下载并安装MySQL ODBC驱动&#xff1a; 2.安装 SQL Server 和 MySQL 的管理工具&#xff1a; 三、配置 SQL Server 以连接到MySQL 1.执行创建链接服务器的T-SQL语句&#xff1a; 2.配…...

Java集合框架之List接口详解

目录 一、List接口概述 二、List接口常见实现类 三、List接口特有方法: 1.元素操作 2. 查找元素位置 3. 子列表与不可变列表 四、List特有迭代器:ListIterator 1.特有的迭代方式 2.ListIterator接口中的常用方法: ⑴.void add(E e):在光标位置插入元素。(会移动…...

【大语言模型_4】源码编译vllm框架cpu版

背景&#xff1a; 通过官方提供的pip install vllm安装的vllm框架不支持cpu加载模型。因此需要本地编译。 系统环境 操作系统&#xff1a;欧拉2203 python版本&#xff1a;3.10 编译步骤 一、安装gcc/g/cmake 1、下载源码&#xff1a;https://github.com/vllm-project/vllm 安…...

城市地质安全专题连载⑦ | 加强国土空间规划管控,规避城市地质安全风险

作者 | 徐海洋 在国土空间规划中&#xff0c;地质调查扮演着先导性和基础性的角色。它如同一把无形的尺子&#xff0c;衡量着每一寸土地的开发潜力与安全边界&#xff0c;不仅为城市规划提供了科学依据&#xff0c;还在规避地质安全风险、优化资源配置方面发挥着关键作用。然而…...

Go入门之函数

func subn1(x, y int) int {sub : x - yreturn sub } 函数参数简写&#xff0c;可以省略前边的&#xff0c;和后边的类型一样 func addn1(x ...int) int {sum : 0for _, v : range x {sum v}return sum } 求可变参数的核&#xff0c;表示传参的个数不确定 func addn1(x int…...

前端如何把SEO优化做到极致✅

在前端&#x1f680;如何把SEO优化做到极致✅ SEO 是 Search Engine Optimization 的缩写&#xff0c;即搜索引擎优化。它是一种通过调整网站的内容、结构、外部链接等方面的优化手段&#xff0c;来提高网站在搜索引擎中的自然排名&#xff0c;以求得获得更多的流量&#xff0…...

【Linux】多线程 -> 线程同步与基于BlockingQueue的生产者消费者模型

线程同步 条件变量 当一个线程互斥地访问某个变量时&#xff0c;它可能发现在其它线程改变状态之前&#xff0c;它什么也做不了。 例如&#xff1a;一个线程访问队列时&#xff0c;发现队列为空&#xff0c;它只能等待&#xff0c;直到其它线程将一个节点添加到队列中。这…...

Openssl交叉编译

在 OpenSSL 交叉编译中&#xff0c;linux-aarch64是一个用于指定目标平台的配置选项&#xff0c;表示目标是 X86 架构的 64位系统。这个选项可以从 OpenSSL 的 ./Configure 命令支持的平台列表中获取。 你可以通过运行以下命令查看 OpenSSL 支持的所有平台配置选项&#xff1a…...

基于Ubuntu系统的docker环境对MySQL8.0.36主从部署

1. 环境准备 1、1 前言 本文基于Ubuntu系统的docker环境对MySQL8.0.36进行2台物理服务器的主从部署。1.2 服务器硬件环境准备 准备2台物理服务器192.168.8.6 和 192.168.8.9。 2台物理服务器在同一个局域网环境下,可以相互网络通信。 服务器操作系统版本:Ubuntu 24.04.1 L…...

吃一堑长一智

工作中经历&#xff0c;有感触记录下 故事一 以前在一家公司时&#xff0c;自己是一名开发人员&#xff0c;遇到问题请教领导解决方案&#xff0c;当时领导给了建议&#xff0c;后来上线后出问题了&#xff0c;背了锅。心里想的是领导说这样做的呀&#xff0c;为什么出问题还…...

详解Nginx 配置

一、Nginx 介绍 Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。它由俄罗斯的程序设计师 Igor Sysoev 所开发&#xff0c;自 2004 年发布以来&#xff0c;凭借其高性能、低内存消耗、高并发处理能力等特点&#xf…...

《深度揭秘:DeepSeek如何解锁自然语言处理密码》

在人工智能蓬勃发展的当下&#xff0c;自然语言处理&#xff08;NLP&#xff09;成为了连接人类与机器的关键桥梁。作为该领域的佼佼者&#xff0c;DeepSeek以其卓越的语义理解和生成能力&#xff0c;备受瞩目。今天&#xff0c;就让我们深入探寻DeepSeek在自然语言处理中实现语…...

备战蓝桥杯 -牛客

习题-[NOIP2006]明明的随机数 1046-习题-[NOIP2006]明明的随机数_2021秋季算法入门班第一章习题&#xff1a;模拟、枚举、贪心 思路&#xff1a;这道题用stl的set&#xff0c;今天写这道题复习了一下set的用法&#xff1a; s.find(a) s.end()的意思是判断元素a是否存在于集…...

Pandas:从一个DataFrame中直接索引赋值到另一个索引位置出错的Bug及其解决方案

这里写自定义目录标题 动机代码1&#xff0c;这个代码是有问题的代码2&#xff0c;这个代码是我调试代码。拆分代码&#xff0c;最后找到问题所在&#xff0c;这个代码是正确的代码3。本以为找到问题所在之后&#xff0c;又稍微修改了下代码 2&#xff0c;这个代码还是没问题的…...

电脑想安装 Windows 11 需要开启 TPM 2.0 怎么办?

尽管 TPM 2.0 已经内置在许多新电脑中&#xff0c;但很多人并不知道如何激活这一功能&#xff0c;甚至完全忽略了它的存在。其实&#xff0c;只需简单的几步操作&#xff0c;你就能开启这项强大的安全特性&#xff0c;为你的数字生活增添一层坚固的防护屏障。无论你是普通用户还…...

请谈谈 Vue 中的响应式原理,如何实现?

一、Vue2响应式原理&#xff1a;Object.defineProperty的利与弊 实现原理&#xff1a; // 数据劫持核心实现 function defineReactive(obj, key, val) {const dep new Dep(); // 依赖收集容器Object.defineProperty(obj, key, {get() {if (Dep.target) { // 当前Watcher实例…...

深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)

本文以https://example.com为例&#xff0c;逐层剖析浏览器从输入URL到页面渲染的完整链路&#xff0c;涵盖DNS解析、TCP/TLS握手、HTTP请求、DOM/CSSOM构建等核心阶段&#xff0c;结合代码示例与性能调优技巧&#xff0c;助你掌握浏览器底层运行机制。 一、导航阶段&#xff1…...

vue 识别 <think></think>

在 Vue.js 中处理自定义标签或者在 HTML 中嵌入特定标记&#xff08;例如 &#xff09;通常涉及到两个方面&#xff1a;模板语法和组件化。 模板语法 Vue 使用基于 HTML 的模板语法来声明式地将 DOM 绑定至底层数据。默认情况下&#xff0c;Vue 会忽略未知元素&#xff0c;除非…...

Three.js 快速入门教程【一】开启你的 3D Web 开发之旅

系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…...

ubuntu 执行 sudo apt-get update 报错

记录一下&#xff0c;遇到这个问题了&#xff0c;网络上看到的解决办法&#xff0c;亲测有效 执行sudo apt-get update ,却报以下错误&#xff0c;“SECURITY: URL redirect target contains control characters rejecting ” 经检查发现&#xff0c;/etc/apt/source.list 下的…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-loaders.py

loaders.py ultralytics\data\loaders.py 目录 loaders.py 1.所需的库和模块 2.class SourceTypes: 3.class LoadStreams: 4.class LoadScreenshots: 5.class LoadImagesAndVideos: 6.class LoadPilAndNumpy: 7.class LoadTensor: 8.def autocast_list(source…...

ubuntu24基于虚拟机无法从主机拖拽文件夹

以下是解决问题的精简步骤&#xff1a; 安装 open-vm-tools-desktop&#xff1a; bash复制 sudo apt-get install open-vm-tools-desktop 重启虚拟机后&#xff0c;文字复制粘贴功能可正常工作。 禁用 Wayland&#xff1a; 编辑 /etc/gdm3/custom.conf 文件&#xff1a; bash复…...

二叉树(数据结构)

二叉树 二叉树也是用过递归定义的结构 先序遍历又称前序遍历 ​​ ​​ 按照先序遍历的方法去手算处理这个二叉树 ​​ 先A B C 再 A B D E C&#xff08;也就是把B换成BDE再放进去&#xff09; 再 A B D E C F 看这个插入的方法要掌握像二叉树这样向一个…...

Vue 实现通过URL浏览器本地下载 PDF 和 图片

1、代码实现如下&#xff1a; 根据自己场景判断 PDF 和 图片&#xff0c;下载功能可按下面代码逻辑执行 const downloadFile async (item: any) > {try {let blobUrl: any;// PDF本地下载if (item.format pdf) {const response await fetch(item.url); // URL传递进入i…...

MySQL版本选择与安装

MySQL版本选择与安装 MySQL 5.5 优点: 稳定性&#xff1a;5.5版本是长期支持&#xff08;LTS&#xff09;版本&#xff0c;因此它非常稳定&#xff0c;被广泛部署在生产环境中。 兼容性&#xff1a;与旧版本的MySQL和各种应用程序有很好的兼容性。 缺点: 过时&#xff1a;…...

Python网络爬虫技术详解文档

Python网络爬虫技术详解文档 目录 网络爬虫概述爬虫核心技术解析常用Python爬虫库实战案例演示反爬虫机制与应对策略爬虫法律与道德规范高级爬虫技术资源推荐与学习路径1. 网络爬虫概述 1.1 什么是网络爬虫 网络爬虫(Web Crawler)是一种按特定规则自动抓取互联网信息的程序…...

STM32 CubeMx配置串口收发使用DMA并调用Idle模式(二)

本篇主要结合代码落实&#xff0c;之前串口已经配置好的DMA方式。 一、首先我们把串口看成一个对象&#xff0c;它有属性、私有数据和方法&#xff1b; 每个串口都有名字属性&#xff1b;有初始化、发送、接收方法&#xff1b;还有一个私有数据&#xff08;这个私有数据是每个…...

现代游戏UI架构深度解析——以UIController为核心的模块化界面管理系统

一、架构全景与设计哲学 本文将以重构后的UIController为核心&#xff0c;深入探讨Unity引擎下的高效UI管理方案。该体系采用"分层-分治"设计理念&#xff0c;通过界面生命周期管理、动态适配策略、资源优化机制三个维度的协同工作&#xff0c;构建了适应复杂交互需…...

DeepSeek 助力 Vue 开发:打造丝滑的点击动画(Click Animations)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

**ARM Cortex-M4** 和 **ARM Cortex-M7* 运行freeRTOS

**是的&#xff0c;Cortex-M4 和 Cortex-M7 都可以运行 FreeRTOS**。FreeRTOS 是一个轻量级的实时操作系统&#xff08;RTOS&#xff09;&#xff0c;专为嵌入式系统设计&#xff0c;支持多种硬件架构&#xff0c;包括 ARM Cortex-M 系列&#xff08;如 Cortex-M0、M3、M4、M7 …...

### net7 + 出现了 自带的 限流中间件 固定窗口、滑动窗口 并发 令牌桶 全局限流器

资料 限流的方法 速率限制算法 固定窗口算法 是最简单的算法之一。它将请求限制为一个固定的时间窗口&#xff0c;该窗口在任何时间点都只允许固定数量的请求。 滑动窗口算法 是固定窗口算法的改进版本&#xff0c;它将请求限制为一个可变的窗口&#xff0c;该窗口在任何时间…...

【Python】迭代器与生成器详解,附代码(可迭代对象、定义、实现方式、区别、使用场景)

文章目录 1. 可迭代对象1.1 常见的可迭代对象1.2 迭代器和生成器 2. 迭代器2.1 定义2.2 原理2.3 特点2.4 示例2.4.1 for语句进行遍历2.4.2 next() 函数进行遍历2.4.3 自定义迭代器 2.5 内置迭代器 3. 生成器3.1 定义3.2 创建方式3.2.1 生成器表达式3.2.2 生成器函数 3.3 特点 4…...

05.Docker 容器命令

Docker 容器命令 Docker 容器命令1. 启动容器用法2. 显示当前存在容器3. 查看容器内的进程4. 查看容器资源使用情况5. 查看容器的详细信息6. 删除容器7. 容器的启动和停止8. 给正在运行的容器发信号9. 进入正在运行的容器10. 暴露所有容器端口11. 指定端口映射12. 查看容器的日…...

猿大师办公助手对比其他WebOffice在线编辑Office插件有什么优势

1. 原生Office功能完整嵌入&#xff0c;排版一致性保障 猿大师办公助手直接调用本地安装的微软Office、金山WPS或永中Office&#xff0c;支持所有原生功能&#xff08;如复杂公式、VBA宏等&#xff09;&#xff0c;确保网页编辑与本地打开的文档排版完全一致。 提供OLE嵌入和完…...

Ubuntu搭建RTSP服务器

下载 http://www.live555.com/liveMedia/public/ 安装ffmpeg sudo apt install -y ffmpeg 转换文件&#xff08;必须&#xff01;&#xff09; ffmpeg -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.264编译 ./genMakefiles linux-64bit make 启动服务器…...

视觉分析之边缘检测算法

9.1 Roberts算子 Roberts算子又称为交叉微分算法&#xff0c;是基于交叉差分的梯度算法&#xff0c;通过局部差分计算检测边缘线条。 常用来处理具有陡峭的低噪声图像&#xff0c;当图像边缘接近于正45度或负45度时&#xff0c;该算法处理效果更理想。 其缺点是对边缘的定位…...

14.2 Auto-GPT 开源项目深度解析:从代码架构到二次开发实践

Auto-GPT 开源项目深度解析:从代码架构到二次开发实践 关键词:Auto-GPT 源码解读、自主智能体开发、开源项目贡献指南、智能体扩展开发、AI 代理技术栈 一、Auto-GPT 项目全景速览 1.1 项目定位与技术定位 GitHub 数据亮眼: 🌟 Star 数:98k+(截至2024年3月)🚀 贡献…...

Java中的常用类 --String

学习目标 掌握String常用方法掌握StringBuilder、StringBuffer了解正则 1.String ● String是JDK中提前定义好的类型 其所在的包是java.lang ,String翻译过来表示字符串类型&#xff0c;也就是说String类中已经提前定义好了很多方法都是用来处理字符串的&#xff0c;所以Str…...

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备&#xff0c;该软件除了能通过电脑远程关闭另一台电脑外&#xff0c;您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机&#xff1a; 步骤1.在手机应用商店搜索“远程看看”进行软件安装&#xff0c;…...

用DeepSeeker + AI 进行物料主数据编码规则学习训练

AI 进行物料主数据编码规则学习训练 作为需要通过AI赋能SAP用户&#xff0c;如何通过DeepSeeker AI帮助SAP进行物料主数据的学习和规则验证 一、核心场景与痛点分析 SAP物料主数据管理挑战 数据质量问题 字段值错误&#xff08;如单位错误、分类错误&#xff09;重复数据&#…...

ES6相关操作(2)

一.Promise Promise是ES6引入的异步编程工具。 语法上Promise是一个构造函数,用于封装异步操作并可以获取操作成功或失败的结果 Promise构造函数:Promise(excutor){} Promise的常用函数:then,catch 实例化Promise对象(创建Promise工具) let data"请求数据"//该数据为…...

Java中JDK、JRE,JVM之间的关系

Java中的JDK、JRE和JVM是三个核心概念&#xff0c;其关系可概括为JDK > JRE > JVM&#xff0c;具体如下&#xff1a; 一、定义与作用 JDK&#xff08;Java Development Kit&#xff09; 定义&#xff1a;Java开发工具包&#xff0c;用于开发和编译Java程序。包含内容&…...

HTTP SSE 实现

参考&#xff1a; SSE协议 SSE技术详解&#xff1a;使用 HTTP 做服务端数据推送应用的技术 一句概扩 SSE可理解为&#xff1a;服务端和客户端建立连接之后双方均保持连接&#xff0c;但仅支持服务端向客户端推送数据。推送完毕之后关闭连接&#xff0c;无状态行。 下面是基于…...

51单片机介绍

1、单片机基础知识 1.1、单板机 将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配到一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。 1.2、单片机 在一片集成电路芯片上集成微处理器、存储器…...

Github访问不了解决方案(Mac)

电脑又重装了&#xff0c;到Github下载东西&#xff0c;又访问不了&#xff0c;记录一下解决方案&#xff1a;修改hosts文件。 补充 1、确定可以访问Github的IP地址 打开多个地点ping[github.com]服务器-网站测速-站长工具 输入github.com&#xff0c;点击Ping检测&#xff…...

机器视觉3D深度图颜色含义解析

在机器视觉中&#xff0c;3D深度图颜色变化通常表示以下含义&#xff1a; 1.深度信息变化 颜色深浅&#xff1a;颜色越深&#xff0c;物体越近&#xff1b;颜色越浅&#xff0c;物体越远。 颜色渐变&#xff1a;平滑的渐变表示深度连续变化&#xff0c;突变则表示深度不连续。 …...

鸡兔同笼问题

鸡兔同笼问题是这样一个问题&#xff1a; 现有鸡、兔合装在一个笼子里。数头一共100个头&#xff0c;数脚一共300只脚。问有多少只鸡多少只兔&#xff1f; 在这里讨论这个问题的解法当然太小儿科了。但是y_tab这个C语言解释器只提供了1维数组。如果需要用到2维数组时&#xff…...