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

Three.js 字体

请添加图片描述

在 Three.js 中,我们可以通过 FontLoader 加载字体,并结合 TextGeometry 创建 3D 文本。加载字体是因为字体文件包含了字体的几何信息,例如字体的形状、大小、粗细等,而 TextGeometry 则是根据字体信息生成 3D 文本的几何体。

在下面,我们将分别讲解加载字体和创建文本这两部分内容,并结合参数说明,让你对每一步都有深入理解。

加载字体和创建 3D 文本

Three.js 使用 FontLoader 来加载字体文件(格式为 .json),通过加载后的字体对象结合 TextGeometry 创建文本几何体。

加载字体:FontLoader

以下是使用 FontLoader 加载字体的代码:

const fontLoader = new THREE.FontLoader();// 加载字体文件(路径需要正确)
fontLoader.load("/path/to/font.json", (font) => {console.log("字体加载成功", font);// 使用加载的字体创建 3D 文本几何体const textGeometry = new THREE.TextGeometry("Hello Three.js!", {font: font, // 必须提供加载后的字体对象size: 1, // 字体大小height: 0.5, // 字体厚度curveSegments: 12, // 曲线分段数,值越大越平滑bevelEnabled: true, // 是否启用斜角bevelThickness: 0.03, // 斜角厚度bevelSize: 0.02, // 斜角大小bevelSegments: 5, // 斜角分段数});// 创建材质和网格const textMaterial = new THREE.MeshStandardMaterial({ color: 0xff6347 });const textMesh = new THREE.Mesh(textGeometry, textMaterial);// 设置文本位置textMesh.position.set(-5, 2, 0);// 添加到场景scene.add(textMesh);
});
TextGeometry 参数解析

TextGeometry 的构造函数中,我们需要传入两个参数:文本字符串和配置对象。

参数 1:文本字符串
  • 表示需要显示的文本内容,例如 'Hello Three.js!'
参数 2:配置对象

配置对象是一个 JSON,用于定义文本的样式和几何细节。以下是主要字段的详细说明:

参数名称类型默认值描述
fontTHREE.Font必须提供加载的字体对象,通过 FontLoader 加载后传入。
sizenumber100字体大小,值越大,文本越大。
heightnumber50字体厚度,用于创建 3D 效果。
curveSegmentsnumber12曲线分段数,值越大,曲线部分(如圆形字母)越平滑。
bevelEnabledbooleanfalse是否启用斜角。
bevelThicknessnumber10斜角的厚度,仅在启用斜角时有效。
bevelSizenumber8斜角的大小,表示斜角距离文本边缘的距离。
bevelSegmentsnumber3斜角的分段数,值越大斜角部分越平滑。

Three.js 的 FontLoader 仅支持 .json 格式的字体文件。如果是 .ttf 或其他格式,可以使用工具(如 Facetype.js)将其转换为 .json

例子

示例中,我们将创建一个 3D 文本效果,包含以下特性:

  • 使用 TextGeometry 创建立体文字
  • 添加斜角效果使文字边缘更加平滑
  • 使用 MeshPhongMaterial 材质实现高光效果
  • 通过环境光和方向光打造立体感
  • 实现文本自动居中显示
  • 支持通过鼠标交互旋转和缩放场景

效果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们先看看创建 3D 文本的关键步骤:

  1. 加载字体
const fontLoader = new FontLoader();
fontLoader.load("https://threejs.org/examples/fonts/helvetiker_regular.typeface.json",(font) => {// 加载完成后的回调函数}
);
  1. 创建文本几何体
const textGeometry = new TextGeometry("Hello Three.js!", {font: font,size: 1, // 字体大小height: 0.2, // 文字厚度curveSegments: 12, // 曲线分段数bevelEnabled: true, // 启用斜角bevelThickness: 0.03,bevelSize: 0.02,bevelSegments: 5,
});
  1. 创建材质
const textMaterial = new THREE.MeshPhongMaterial({color: 0x00ff00, // 绿色材质specular: 0x555555, // 高光颜色shininess: 30, // 高光强度
});const textMesh = new THREE.Mesh(textGeometry, textMaterial);
  1. 文本居中处理
textGeometry.computeBoundingBox();
const centerOffset =-0.5 * (textGeometry.boundingBox.max.x - textGeometry.boundingBox.min.x);
textMesh.position.x = centerOffset;

下面是完整代码

import * as THREE from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
import { FontLoader } from "three/examples/jsm/loaders/FontLoader";
import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry";// 创建场景
const scene = new THREE.Scene();
scene.background = new THREE.Color(0x000000);// 创建相机
const camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight,0.1,1000
);
camera.position.z = 10;// 创建渲染器
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);// 添加轨道控制器
const controls = new OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;// 添加灯光
const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);
scene.add(ambientLight);const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
directionalLight.position.set(5, 5, 5);
scene.add(directionalLight);// 加载字体
const fontLoader = new FontLoader();fontLoader.load("https://threejs.org/examples/fonts/helvetiker_regular.typeface.json",(font) => {// 创建文本几何体const textGeometry = new TextGeometry("Hello Three.js!", {font: font,size: 1, // 字体大小height: 0.2, // 文字厚度curveSegments: 12, // 曲线分段数bevelEnabled: true, // 启用斜角bevelThickness: 0.03, // 斜角深度bevelSize: 0.02, // 斜角大小bevelOffset: 0, // 斜角偏移bevelSegments: 5, // 斜角分段数});// 创建材质const textMaterial = new THREE.MeshPhongMaterial({color: 0x00ff00, // 绿色材质specular: 0x555555, // 高光颜色shininess: 30, // 高光强度});// 创建网格const textMesh = new THREE.Mesh(textGeometry, textMaterial);// 居中文本textGeometry.computeBoundingBox();const centerOffset =-0.5 * (textGeometry.boundingBox.max.x - textGeometry.boundingBox.min.x);textMesh.position.x = centerOffset;scene.add(textMesh);}
);// 动画循环
function animate() {requestAnimationFrame(animate);controls.update();renderer.render(scene, camera);
}// 处理窗口大小变化
window.addEventListener("resize", () => {camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();renderer.setSize(window.innerWidth, window.innerHeight);
});animate();

代码

github

https://github.com/calmound/threejs-demo/tree/main/font

gitee

https://gitee.com/calmound/threejs-demo/tree/main/font

相关文章:

Three.js 字体

在 Three.js 中,我们可以通过 FontLoader 加载字体,并结合 TextGeometry 创建 3D 文本。加载字体是因为字体文件包含了字体的几何信息,例如字体的形状、大小、粗细等,而 TextGeometry 则是根据字体信息生成 3D 文本的几何体。 在…...

Jenkins 构建流水线

在 Linux 系统上安装 Jenkins 服务,以及配置自动化构建项目 前置准备环境:docker、docker-compose、jdk、maven 一、环境搭建 1. Jenkins 安装 (1)拉取镜像 # 安装镜像包,默认安装最新版本 docker pull jenkins/jen…...

ES 磁盘使用率检查及处理方法

文章目录 1. 检查原因2. 检查方法3. 处理方法3.1 清理数据3.2 再次检查磁盘使用率 1. 检查原因 磁盘使用率在 85%以下,ES 可正常运行,达到 85%及以上会影响 PEIM 数据存储。 在 ES 磁盘分配分片控制策略中,为了保护数据节点的安全&#xff0…...

【回溯】LeetCode经典题目总结:组合、排列、子集、分割、N皇后、单词搜索

回溯 组合问题组合总和全排列子集分割回文串N皇后电话号码的字母组合单词搜索括号生成 组合问题 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 树形结构&#xff1…...

uniapp开发小程序内嵌h5页面,video视频两边有细小黑色边框

1.问题如图 2.原因分析 是否为设置上述属性呢? 设置了,但是仍然有黑边。经过选中页面元素分析后,判断video元素本身就有这种特点,就是视频资源无法完全铺满元素容器。 3.解决方案...

Ubuntu meson使用

一 下载pip3 &#xff0c;使用pip3下载 meson sudo apt install python3 sudo apt install python3-pip二 下载 nanjia sudo apt-get install ninja-build三 测试 meson 使用 1 同一个目录下创建两个文件 main.c #include<stdio.h> int main() {printf("meson t…...

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

算法排序算法

文章目录 快速排序[leetcode 215数组中的第K个最大元素](https://leetcode.cn/problems/kth-largest-element-in-an-array/)分析题解快速排序 桶排序[leetcode 347 前K个高频元素](https://leetcode.cn/problems/top-k-frequent-elements/)分析题解 快速排序 leetcode 215数组…...

植物大战僵尸杂交版3.0.2版本

更新内容 植物大战僵尸杂交版3.0.2版本的更新内容如下&#xff1a; • 修复BUG&#xff1a; • 游戏内贴图错乱的BUG。 • 无尽模式卡死的BUG。 • 卡牌模仿者的一系列BUG。 • 干扰车可能同时出现多辆的BUG。 • 冒险模式部分关卡无法过关的BUG。 • 新增内容&#xf…...

Kafka数据迁移全解析:同集群和跨集群

文章目录 一、同集群迁移二、跨集群迁移 Kafka两种迁移场景&#xff0c;分别是同集群数据迁移、跨集群数据迁移。 一、同集群迁移 应用场景&#xff1a; broker 迁移 主要使用的场景是broker 上线,下线,或者扩容等.基于同一套zookeeper的操作。 实践&#xff1a; 将需要新添加…...

自动化测试模型(一)

8.8.1 自动化测试模型概述 在自动化测试运用于测试工作的过程中&#xff0c;测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象&#xff0c;总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。 线性测试 首先&#…...

selenium(三)

总结 一、web基础 html、dom对象、javascript基本语法二、元素定位&#xff1a; find_element(定位方式) 八大定位方式&#xff1a;id、name、class、tag_name、class_name、link_text、partial_link_text、xpath、cssxpath://标签名[属性名值 and/or 属性名值]//标签名[tex…...

7.若依参数设置、通知公告、日志管理

参数设置 对系统中的参数进行动态维护。 关闭验证码校验功能 打开页面注册功能 需要修改前端页面代码 通知公告 促进组织内部信息传递 若依只提供了一个半成品&#xff0c;只实现了管理员可以添加通知公告。 日志管理 追踪用户行为和系统运行状况。 登录日志 和操作日志…...

vsftpd虚拟用户及其权限配置

目录 一、应用场景二、配置过程1、安装软件2、新建本地用户3、修改vsftpd的配置文件4、新建虚拟用户目录5、配置虚拟用户&#xff08;1&#xff09;创建虚拟用户列表文件&#xff08;2&#xff09;生成虚拟用户数据库&#xff08;3&#xff09;配置pam认证&#xff08;4&#…...

Android使用辅助服务AccessibilityService实现自动化任务

Android 辅助服务&#xff08;AccessibilityService&#xff09;旨在帮助具有视觉、身体或年龄相关限制的用户更轻松地使用 Android 设备和应用。通过辅助服务&#xff0c;可以将一些人工操作自动化&#xff0c;从而解放用户的双手。 因此我们可以使用它来实现一些自动化任务&a…...

brupsuite的基础用法常用模块(1)

proxy模块&#xff1a; Options: 设置代理端口&#xff0c;默认为8080端口&#xff0c;若8080端口被占用可在该界面更改代理端口. HTTP history: 拦截的历史请求&#xff0c;右键可做更多操作&#xff0c;很多操作与其他模块有关。&#xff08;清除历史的话右键选择clear p…...

基础的基础之 pillow与opencv相比的特点与优缺点比较

Pillow 和 OpenCV 都是人工智能图像处理的必不可少的常用库&#xff0c;但它们有各自的特点和适用场景。 以下是它们的主要特点、优缺点以及适用场景的对比&#xff1a; 1. Pillow&#xff08;Python Imaging Library&#xff09; Pillow 是一个轻量级的图像处理库&#xff0…...

代码随想录算法训练营第51期第32天 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

理论基础 动态规划&#xff1a;dp&#xff0c;每一个状态都是由上个状态推导出来的&#xff0c;因为我是先写完三道题再看理论的&#xff0c;所以有点感概&#xff1b; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举…...

街景主观感知1:街景图片两两对比程序

目录 1、为什么不用place pluse 2.0数据集&#xff1f;2、街景主观感知两两对比程序2.1 总框架2.2 两两对比程序流程2.2.1 准备数据集&#xff08;即街景图片&#xff09;2.2.2 数据集采用组合的思想构建排列前的两两对比csv2.2.3 两两对比程序使用 3、其他数据处理/程序/指导&…...

vue在action中调用action的函数

以下是在 Vue2 中一个 Vuex 的 action 中调用另一个 action 中的函数的解决思路&#xff1a; 首先&#xff0c;确保你已经在 Vue 项目中正确配置了 Vuex 状态管理。在 Vuex 的 actions 对象中定义不同的 action 函数。当需要在一个 action 中调用另一个 action 时&#xff0c;…...

探索 Java 静态变量(static)的奥秘

目录 一、静态变量初印象 &#xff08;一&#xff09;什么是静态变量 &#xff08;二&#xff09;静态变量的特点 二、静态变量的使用场景 &#xff08;一&#xff09;共享数据 &#xff08;二&#xff09;全局常量 &#xff08;三&#xff09;工具类中的变量 三、静态…...

Excel for Finance 07 `FV PV` 函数

Excel 的 FV 函数用于计算一笔投资在未来的价值&#xff0c;基于固定的利率和定期付款。这是一个金融函数&#xff0c;常用来分析储蓄计划、贷款、或投资的增长。 语法&#xff1a; FV(rate, nper, pmt, [pv], [type])参数说明&#xff1a; rate&#xff08;必需&#xff09;&…...

【GUI-PyQt5】简介

1. 简介 GUI&#xff1a;带图形的用户接口程序&#xff0c;也就是桌面应用。 2. 分类 2.1 基本窗口控件 QMainWindowQwidgetQlabelQLineEdit菜单工具栏 2.2 高级组件 QTableViewQListView容器多线程 2.3 布局管理 QBoxLayoutQGridLayoutQFormLayout嵌套布局 2.4 信号与…...

CMSeasy;大米CMS漏洞复现

一、越权漏洞 pikachu-Over permission 水平越权 ⽔平越权&#xff1a;指攻击者尝试访问与他拥有相同权限的⽤户资源。 登录lucy 查看lucy个人信息 在lucy页面修改usernamelili 可以跳转lili的个人信息页面 pikachu-Over permission 垂直越权 垂直越权&#xff1a;通过低权…...

【CSS in Depth 2 精译_093】16.2:CSS 变换在动效中的应用(上)—— 图标的放大和过渡效果的设置

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 16 章 变换】 ✔️ 16.1 旋转、平移、缩放与倾斜 16.1.1 变换原点的更改16.1.2 多重变换的设置16.1.3 单个变换属性的设置 16.2 变换在动效中的应用 ✔️ 16.2.1 放大图…...

代码随想录算法【Day5】

DAY5 1.熟悉哈希表的数据结构&#xff1a;数组、map和set&#xff0c;使用方法、使用场景 2.哈希表应用场景&#xff1a;解决给你一个元素&#xff0c;判断它在集合里是否出现过。 242.有效的字母异位词 本题用数组解决的。 class Solution { public:bool isAnagram(strin…...

工程师如何平衡工作和生活?

在快节奏的社会环境中&#xff0c;工程师面临着高强度的工作压力和长时间的工作需求&#xff0c;要做到工作和生活的平衡&#xff0c;确实不容易。然而&#xff0c;通过一些策略和改变工作方式&#xff0c;可以有效缓解压力&#xff0c;找到平衡点。以下是一些建议&#xff1a;…...

若依数据权限控制

效果 新建用户 表结构 sys_role_dept 这张表的存在。是为了实现数据权限自定义的功能 service层 mapper层 流程...

C++ 设计模式:抽象工厂(Abstract Factory)

链接&#xff1a;C 设计模式 链接&#xff1a;C 设计模式 - 工厂方法 链接&#xff1a;C 设计模式 - 原型模式 链接&#xff1a;C 设计模式 - 建造者模式 抽象工厂&#xff08;Abstract Factory&#xff09;是一种创建型设计模式&#xff0c;它提供一个接口&#xff0c;用于创…...

嵌入式系统 第十讲 字符设备和驱动程序设计

• 字符设备是Linux三大设备之一&#xff08;另外两种是块设备&#xff0c;网 络设备&#xff09;。 • 字符设备就是采用字节流形式通讯的I/O设备&#xff0c;绝大部分 设备都是字符设备。 • 常见的字符设备包括鼠标、键盘、显示器、串口等等。 • 10.1 字符设备驱动框架 …...

Cod---Class of Device for Bluetooth device

0 Preface/Foreword 蓝牙sink在广播时候&#xff0c;需要告知自己的设备类型&#xff0c;这样蓝牙source可以方便准备相应协议。 从可视化来看&#xff0c;cod&#xff08;设备类型&#xff09;&#xff0c;比如Android手机&#xff0c;在蓝牙可配对列表中&#xff0c;左边那…...

踏踏实实练SQLday2-3连续12345

3连续12345 连续12345 -- hive的连续开窗函数知识点&#xff1a;排序开窗函数--4种 (如果第2 和 3 名一样大)3种 序号排序 - rank() 12245 - 紧缩dense_rank() 12234 - row_number() 123451种百分比排序 - percent_rank() - 算百分比&#xff0c;超过了多少人top20排行榜 连续1…...

脱离电路图编程

SM0.0常开始终吸合 SM0.1&#xff08;特殊中继&#xff09; 常开&#xff1a;闭合一次再断开 常闭&#xff1a;断开一次再闭合 上述是依据电路图编程...

spring的@Transactional事务原理理解

目录 Transactional 普通例子代码和测试输出编程式事务事务代理实现和TransactionAspectSupport重要类复习Spring的事务传播机制有哪些实际工作中用到的事务处理 Transactional事务原理理解 Transactional 普通例子代码和测试输出 Transactional(rollbackFor Exception.class…...

机器学习之线性回归算法预测数据

机器学习之线性回归算法预测数据 目录 机器学习之线性回归算法预测数据线性回归算法概念理解算法导入线性回归模型参数理解误差项分析 LinearRegression理解参数理解返回值方法基本格式 预测一元线性回归数据问题及理解可视化数据理解数据预测 预测二元线性回归数据问题及理解数…...

Markdown如何填充前景色、背景色

Markdown如何填充前景色、背景色 前言语法详解前景色背景色 > 快来试试吧&#x1f60a; Markdown填充前景色、背景色讲解&#x1f448;点击这里也可查看 前言 颜色可以使普通文字表达出更深刻的含义&#xff0c;比如红色用于醒目与警示&#xff0c;绿色用于表达良好与正常等…...

SpringCloudAlibaba实战入门之路由网关Gateway断言(十二)

上一节课中我们初步讲解了网关的基本概念、基本功能,并且带大家实战体验了一下网关的初步效果,这节课我们继续学习关于网关的一些更高级有用功能,比如本篇文章的断言。 一、网关主要组成部分 上图中是核心的流程图,最主要的就是Route、Predicates 和 Filters 作用于特定路…...

Spring Boot Actuator、Spring Boot Actuator使用、Spring Boot Actuator 监控、Spring程序监控

SpringBoot四大核心之actuator——程序监控器 1. 添加 Spring Boot Actuator 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2. 配置 …...

【机器学习】机器学习的基本分类-半监督学习(Semi-supervised Learning)

半监督学习是一种介于监督学习和无监督学习之间的机器学习方法。它利用少量的标注数据&#xff08;有监督数据&#xff09;和大量的未标注数据&#xff08;无监督数据&#xff09;来进行模型训练&#xff0c;从而在标注数据不足的情况下&#xff0c;提升模型的性能。 半监督学习…...

RAG挑战及其解决方案:实践中的应对策略

RAG挑战及其解决方案&#xff1a;实践中的应对策略 在将检索增强生成&#xff08;RAG&#xff09;技术应用于生产环境的过程中&#xff0c;我发现了许多在原型设计阶段不易察觉的挑战。RAG结合了生成模型和检索机制&#xff0c;以调用外部知识&#xff0c;从而提高语言模型的质…...

机器学习DAY7: 特征工程和特征选择(数据预处理)(完)

本文通过特征提取、特征转换、特征选择三个过程介绍数据预处理方法&#xff0c;特征提取将原始数据转换为适合建模的特征&#xff0c;特征转换将数据进行变换以提高算法的准确性&#xff0c;特征选择用来删除无用的特征。 知识点 特征提取特征转换特征选择 本次实验的一些示…...

uniapp使用ucharts组件

1.ucharts准备 有两种使用方式&#xff1a;一种是在uni的插件市场下载&#xff08;组件化开发&#xff09;。一种是手动引入ucharts包。官方都封装好组件了&#xff0c;我们不用岂不是浪费。 直接去dcloud插件市场&#xff08;DCloud 插件市场&#xff09;找&#xff0c;第一…...

【RabbitMQ高级篇】消息可靠性问题(1)

目录 1.消息可靠性 1.1.生产者消息确认 1.1.1.修改配置 1.1.2.定义Return回调 1.1.3.定义ConfirmCallback 1.2.消息持久化 1.2.1.交换机持久化 1.2.2.队列持久化 1.2.3.消息持久化 1.3.消费者消息确认 1.3.1.演示none模式 1.3.2.演示auto模式 1.4.消费失败重试机制…...

PR视频剪辑的属性

调整运动效果 选中视频或图品素材在效果控件面板可以看到运动效果的各个参数。 在运动效果中可以调整视频素材的位置、缩放、旋转等属性。 位置属性 PR中素材的位置根据图像锚点的位置决定&#xff0c;由x、y轴的参数控制图像位置。一个1920px1080px的视频素材默认位置是960…...

[数据集][图像分类]常见鱼类分类数据集2w张8类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;7554&#xff08;剩余1w多为测试集&#xff09; 分类类别数&#xff1a;…...

Boost之log日志使用

不讲理论&#xff0c;直接上在程序中可用代码&#xff1a; 一、引入Boost模块 开发环境&#xff1a;Visual Studio 2017 Boost库版本&#xff1a;1.68.0 安装方式&#xff1a;Nuget 安装命令&#xff1a; #只安装下面几个即可 Install-package boost -version 1.68.0 Install…...

Spring Cloud LoadBalancer (负载均衡)

目录 什么是负载均衡 服务端负载均衡 客户端负载均衡 Spring Cloud LoadBalancer快速上手 启动多个product-service实例 测试负载均衡 负载均衡策略 自定义负载均衡策略 什么是负载均衡 负载均衡(Load Balance&#xff0c;简称 LB) , 是高并发, 高可用系统必不可少的关…...

ASP.NET Web应用程序出现Maximum request length exceeded报错

一、问题描述 在ASP.NET的web应用中&#xff0c;导出数据时出现500 - Internal server error.Maximum request length exceeded。 二、原因分析 这个错误通常出现在Web应用程序中&#xff0c;表示客户端发送的HTTP请求的长度超过了服务器配置的最大请求长度限制。这可能是因为…...

Modbus

【欢迎关注编码小哥&#xff0c;学习更多实用的编程方法和技巧】 Modbus 是一种广泛使用的通信协议&#xff0c;主要用于工业自动化和控制系统中。它最初由 Modicon&#xff08;现为施耐德电气的一部分&#xff09;在1979年开发&#xff0c;旨在实现不同设备之间的通信。Modbu…...

【AI资讯汇总】2024年12月第四周

目录 OpenAI发布o3&#xff1a;AI 推理能力的重大突破&#xff0c;得分高达 87.5% 阿里通义千问Qwen开源视觉推理模型QVQ-72B-Preview OpenAI推出ChatGPT新记忆功能:能跨对话回忆用户交流 OpenAI发布ChatGPT宕机故障详细报告&#xff1a;只因一个小更改导致 OpenAI发布o3&a…...