学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
👨⚕️ 主页: gis分享者
👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅!
👨⚕️ 收录于专栏:threejs gis工程师
文章目录
- 一、🍀前言
- 1.1 ☘️THREE.EffectComposer 后期处理
- 1.1.1 ☘️代码示例
- 1.1.2 ☘️构造函数
- 1.1.3 ☘️属性
- 1.1.4 ☘️方法
- 1.2 ☘️THREE.RenderPass
- 1.2.1 ☘️构造函数
- 1.2.2 ☘️属性
- 1.2.3 ☘️方法
- 1.3 ☘️THREE.GlitchPass
- 1.3.1 ☘️构造函数
- 1.3.2 ☘️属性
- 1.3.3 ☘️方法
- 二、🍀使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
- 1. ☘️实现思路
- 2. ☘️代码样例
一、🍀前言
本文详细介绍如何基于threejs在三维场景中使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道),亲测可用。希望能帮助到您。一起学习,加油!加油!
1.1 ☘️THREE.EffectComposer 后期处理
THREE.EffectComposer 用于在three.js中实现后期处理效果。该类管理了产生最终视觉效果的后期处理过程链。 后期处理过程根据它们添加/插入的顺序来执行,最后一个过程会被自动渲染到屏幕上。
1.1.1 ☘️代码示例
import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';
// 初始化 composer
const composer = new EffectComposer(renderer);
// 创建 RenderPass 并添加到 composer
const renderPass = new RenderPass(scene, camera);
composer.addPass(renderPass);
// 添加其他后期处理通道(如模糊)
// composer.addPass(blurPass);
// 在动画循环中渲染
function animate() {composer.render();requestAnimationFrame(animate);
}
1.1.2 ☘️构造函数
EffectComposer( renderer : WebGLRenderer, renderTarget : WebGLRenderTarget )
renderer – 用于渲染场景的渲染器。
renderTarget – (可选)一个预先配置的渲染目标,内部由 EffectComposer 使用。
1.1.3 ☘️属性
.passes : Array
一个用于表示后期处理过程链(包含顺序)的数组。
渲染通道:
BloomPass 该通道会使得明亮区域参入较暗的区域。模拟相机照到过多亮光的情形
DotScreenPass 将一层黑点贴到代表原始图片的屏幕上
FilmPass 通过扫描线和失真模拟电视屏幕
MaskPass 在当前图片上贴一层掩膜,后续通道只会影响被贴的区域
RenderPass 该通道在指定的场景和相机的基础上渲染出一个新的场景
SavePass 执行该通道时,它会将当前渲染步骤的结果复制一份,方便后面使用。这个通道实际应用中作用不大;
ShaderPass 使用该通道你可以传入一个自定义的着色器,用来生成高级的、自定义的后期处理通道
TexturePass 该通道可以将效果组合器的当前状态保存为一个纹理,然后可以在其他EffectCoposer对象中将该纹理作为输入参数
.readBuffer : WebGLRenderTarget
内部读缓冲区的引用。过程一般从该缓冲区读取先前的渲染结果。
.renderer : WebGLRenderer
内部渲染器的引用。
.renderToScreen : Boolean
最终过程是否被渲染到屏幕(默认帧缓冲区)。
.writeBuffer : WebGLRenderTarget
内部写缓冲区的引用。过程常将它们的渲染结果写入该缓冲区。
1.1.4 ☘️方法
.addPass ( pass : Pass ) : undefined
pass – 将被添加到过程链的过程
将传入的过程添加到过程链。
.dispose () : undefined
释放此实例分配的 GPU 相关资源。每当您的应用程序不再使用此实例时调用此方法。
.insertPass ( pass : Pass, index : Integer ) : undefined
pass – 将被插入到过程链的过程。
index – 定义过程链中过程应插入的位置。
将传入的过程插入到过程链中所给定的索引处。
.isLastEnabledPass ( passIndex : Integer ) : Boolean
passIndex – 被用于检查的过程
如果给定索引的过程在过程链中是最后一个启用的过程,则返回true。 由EffectComposer所使用,来决定哪一个过程应当被渲染到屏幕上。
.removePass ( pass : Pass ) : undefined
pass – 要从传递链中删除的传递。
从传递链中删除给定的传递。
.render ( deltaTime : Float ) : undefined
deltaTime – 增量时间值。
执行所有启用的后期处理过程,来产生最终的帧,
.reset ( renderTarget : WebGLRenderTarget ) : undefined
renderTarget – (可选)一个预先配置的渲染目标,内部由 EffectComposer 使用。
重置所有EffectComposer的内部状态。
.setPixelRatio ( pixelRatio : Float ) : undefined
pixelRatio – 设备像素比
设置设备的像素比。该值通常被用于HiDPI设备,以阻止模糊的输出。 因此,该方法语义类似于WebGLRenderer.setPixelRatio()。
.setSize ( width : Integer, height : Integer ) : undefined
width – EffectComposer的宽度。
height – EffectComposer的高度。
考虑设备像素比,重新设置内部渲染缓冲和过程的大小为(width, height)。 因此,该方法语义类似于WebGLRenderer.setSize()。
.swapBuffers () : undefined
交换内部的读/写缓冲。
1.2 ☘️THREE.RenderPass
THREE.RenderPass用于将场景渲染到中间缓冲区,为后续的后期处理效果(如模糊、色调调整等)提供基础。
1.2.1 ☘️构造函数
RenderPass(scene, camera, overrideMaterial, clearColor, clearAlpha)
- scene THREE.Scene 要渲染的 Three.js 场景对象。
- camera THREE.Camera 场景对应的相机(如 PerspectiveCamera)。
- overrideMaterial THREE.Material (可选) 覆盖场景中所有物体的材质(默认 null)。
- clearColor THREE.Color (可选) 渲染前清除画布的颜色(默认不主动清除)。
- clearAlpha number (可选) 清除画布的透明度(默认 0)。
1.2.2 ☘️属性
.enabled:boolean
是否启用此通道(默认 true)。设为 false 可跳过渲染。
.clear:boolean
渲染前是否清除画布(默认 true)。若需叠加多个 RenderPass,可设为 false。
.needsSwap:boolean
是否需要在渲染后交换缓冲区(通常保持默认 false)。
1.2.3 ☘️方法
.setSize(width, height)
调整通道的渲染尺寸(通常由 EffectComposer 自动调用)。
width: 画布宽度(像素)。
height: 画布高度(像素)。
1.3 ☘️THREE.GlitchPass
THREE.GlitchPass是 Three.js 后期处理模块中用于实现数字故障效果(Glitch)的通道,可模拟画面撕裂、颜色偏移、随机噪声等视觉效果,适用于赛博朋克、数据损坏或科幻场景的增强。
1.3.1 ☘️构造函数
new GlitchPass(options)
- dt_size number 默认64 噪声纹理的分辨率(值越高细节越丰富)。
- columns number 默认0.05 纵向撕裂的概率(0 无撕裂,1 高频撕裂)。
- strength Object 默认{ x: 0.05, y: 0.05 } 水平和垂直方向的撕裂强度。
- wild boolean 默认false 是否启用更强烈的随机故障效果(如闪烁、色块)。
1.3.2 ☘️属性
.enabled:boolean
是否启用此通道(默认 true)。设为 false 可临时禁用效果。
.goWild:boolean
是否启用狂暴模式(wild 参数的动态控制)。设为 true 时触发随机剧烈故障。
.uniforms:object
着色器 uniforms 对象,可直接修改参数(动态调整效果):
glitchPass.uniforms.byp.value = 1; // 1 禁用效果,0 启用
glitchPass.uniforms.amount.value = 0.1; // 全局故障强度
1.3.3 ☘️方法
.setSize(width, height)
调整通道的渲染尺寸(通常由 EffectComposer 自动调用)。
width: 画布宽度(像素)。
height: 画布高度(像素)。
二、🍀使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
1. ☘️实现思路
- 1、初始化renderer渲染器。
- 2、初始化Scene三维场景scene。
- 3、初始化camera相机,定义相机位置 camera.position.set,设置相机方向camera.lookAt。
- 4、创建THREE.AmbientLight环境光源ambi,创建DirectionalLight平行光源spotLight,设置spotLight位置和光强,scene场景加入ambi和spotLight。
- 5、加载几何模型:定义createMesh方法(参数:geom 几何对象),用于生成网格对象。调用createMesh方法创建球体网格对象sphere,scene场景添加sphere。创建THREE.RenderPass渲染通道renderPass,创建THREE.GlitchPass特效通道effectGlitch,设置effectGlitch的属性renderToScreen值为true,创建THREE.EffectComposer后期处理组合器composer,composer添加renderPass和effectGlitch。定义controls方法,定义gui控制effectGlitch特效通道参数以及参数更新方法。定义render方法,实现sphere的旋转动画,调用composer的渲染方法render。具体代码参考下面代码样例。
- 6、加入gui控制。加入stats监控器,监控帧数信息。
2. ☘️代码样例
<!DOCTYPE html>
<html><head><title>学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)</title><script type="text/javascript" src="../libs/three.js"></script><script type="text/javascript" src="../libs/stats.js"></script><script type="text/javascript" src="../libs/dat.gui.js"></script><script type="text/javascript" src="../libs/OrbitControls.js"></script><script type="text/javascript" src="../libs/postprocessing/ShaderPass.js"></script><script type="text/javascript" src="../libs/shaders/CopyShader.js"></script><script type="text/javascript" src="../libs/postprocessing/EffectComposer.js"></script><script type="text/javascript" src="../libs/postprocessing/MaskPass.js"></script><script type="text/javascript" src="../libs/postprocessing/RenderPass.js"></script><script type="text/javascript" src="../libs/postprocessing/GlitchPass.js"></script><script type="text/javascript" src="../libs/postprocessing/DigitalGlitch.js"></script><style>body {margin: 0;overflow: hidden;}</style>
</head>
<body><div id="Stats-output">
</div>
<div id="WebGL-output">
</div><!-- Js 代码块 -->
<script type="text/javascript">// 初始化function init() {var stats = initStats();// 创建三维场景scenevar scene = new THREE.Scene();// 创建相机cameravar camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);// 创建渲染器webGLRenderer,设置webGLRenderer的背景色、大小和投影var webGLRenderer = new THREE.WebGLRenderer();webGLRenderer.setClearColor(new THREE.Color(0x000, 1.0));webGLRenderer.setSize(window.innerWidth, window.innerHeight);webGLRenderer.shadowMapEnabled = true;var sphere = createMesh(new THREE.SphereGeometry(10, 40, 40));// 添加球体网格scene.add(sphere);// 设置camera相机位置和方向camera.position.x = -10;camera.position.y = 15;camera.position.z = 25;camera.lookAt(new THREE.Vector3(0, 0, 0));var orbitControls = new THREE.OrbitControls(camera);orbitControls.autoRotate = false;var clock = new THREE.Clock();var ambi = new THREE.AmbientLight(0x181818);scene.add(ambi);var spotLight = new THREE.DirectionalLight(0xffffff);spotLight.position.set(550, 100, 550);spotLight.intensity = 0.6;scene.add(spotLight);// webGLRenderer渲染器绑定html要素document.getElementById("WebGL-output").appendChild(webGLRenderer.domElement);var renderPass = new THREE.RenderPass(scene, camera);var effectGlitch = new THREE.GlitchPass(64);effectGlitch.renderToScreen = true;var composer = new THREE.EffectComposer(webGLRenderer);composer.addPass(renderPass);composer.addPass(effectGlitch);// gui控制var controls = new function () {this.goWild = false;this.updateEffect = function () {effectGlitch.goWild = controls.goWild;};};var gui = new dat.GUI();gui.add(controls, "goWild").onChange(controls.updateEffect);var step = 0;render();function createMesh(geom) {var planetTexture = THREE.ImageUtils.loadTexture("../assets/textures/planets/Earth.png");var specularTexture = THREE.ImageUtils.loadTexture("../assets/textures/planets/EarthSpec.png");var normalTexture = THREE.ImageUtils.loadTexture("../assets/textures/planets/EarthNormal.png");var planetMaterial = new THREE.MeshPhongMaterial();planetMaterial.specularMap = specularTexture;planetMaterial.specular = new THREE.Color(0x4444aa);planetMaterial.normalMap = normalTexture;planetMaterial.map = planetTexture;var mesh = THREE.SceneUtils.createMultiMaterialObject(geom, [planetMaterial]);return mesh;}function render() {stats.update();var delta = clock.getDelta();orbitControls.update(delta);sphere.rotation.y += 0.002;requestAnimationFrame(render);composer.render(delta);}function initStats() {var stats = new Stats();stats.setMode(0);stats.domElement.style.position = 'absolute';stats.domElement.style.left = '0px';stats.domElement.style.top = '0px';document.getElementById("Stats-output").appendChild(stats.domElement);return stats;}}window.onload = init;
</script>
</body>
</html>
效果如下
相关文章:
学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.EffectComposer 后期…...
Yarn的定义?
YARN(Yet Another Resource Negotiator) 是 Apache Hadoop 的核心组件之一,负责集群的资源管理和任务调度。它的主要作用是将 Hadoop 的资源管理和作业调度/监控功能分离,形成一个通用的资源管理平台,可以支持多种计算…...
职坐标IT培训热门技术实战精讲
在数字化转型浪潮中,人工智能、大数据与云原生已成为驱动产业升级的核心引擎。职坐标IT培训课程以实战导向为基石,聚焦高薪岗位核心技术栈,通过拆解企业级项目案例,将复杂的技术理论转化为可落地的工程实践。课程模块涵盖从架构设…...
前端:uniapp框架中<scroll-view>r如何控制元素进行局部滚动
以下是使用 <scroll-view> 实现局部滚动的完整示例,包含动态内容、滚动控制和滚动位置监听: 一、基础局部滚动示例 <template><view class"container"><!-- 固定高度的滚动容器 --><scroll-view scroll-y :scroll…...
【KWDB 创作者计划】_算法篇---Stockwell变换
文章目录 前言一、Stockwell变换原理详解1.1 连续S变换定义1.2 离散S变换1.3简介 二、S变换的核心特点2.1频率自适应的时频分辨率2.1.1高频区域2.1.2低频区域 2.2无交叉项干扰2.3完全可逆2.4相位保持2.5与傅里叶谱的直接关系 三、应用领域3.1地震信号分析3.2生物医学信号处理3.…...
桌面级OTA测试解决方案:赋能智能网联汽车高效升级
一、前言 随着智能网联汽车的快速发展,OTA(Over-The-Air)技术已成为汽车软件更新和功能迭代的关键手段。为确保OTA升级的可靠性、安全性和效率,构建一套高效、便捷的桌面级OTA测试解决方案至关重要。 本方案基于Vector先进的软硬…...
京东物流基于Flink StarRocks的湖仓建设实践
摘要:本文整理自京东物流高级数据开发工程师梁宝彬先生在 Flink Forward Asia 2024 论坛中的分享。内容主要为以下四个部分: 1、实时湖仓探索与建设 2、实时湖仓应用 3、问题与思考 4、未来展望 今天,将分享的主题大纲包括:首先&a…...
【Test Test】灰度化和二值化处理图像
文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…...
Docker快速入门
1 基本信息 1.1 基础概览 (1)容器与镜像 容器:轻量级的独立运行时环境,基于Linux的命名空间(namespace)和控制组(cgroup)技术实现资源隔离。容器通过镜像创建,每个容…...
AI 编程工具—如何在 Cursor 中集成使用 MCP工具
AI 编程工具—如何在 Cursor 中集成使用 MCP工具 这里我们给出了常用的MCP 聚合工具,也就是我们可以在这些网站找MCP服务 这是一个MCP Server共享平台,用户可以在上面发布和下载MCP Server配置。在这里可以选择你需要的MCP 服务。 如果你不知道你的mcp 对应的server 名称也不…...
航电系统通信与数据链技术分析
一、技术要点 1. 高带宽与低时延通信技术 航电系统需支持实时数据传输,如民航VDL2数据链采用D8PSK调制和Reed Solomon编码技术,传输速率达31.5Kb/s,并通过物理层优化减少码间串扰。新一代LDACS系统则利用L频段频谱,提供比传统VD…...
windwos脚本 | 基于scrcpy,只投声音、只投画面
安装scrcpy,scrcpy自带adb 写脚本命名为 .bat 结尾 注意这里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替换成scrcpy的安装目录 echo off :: 设置UTF-8编码 chcp 65001 > nul :: 设置标题 title 手机投屏工具:: 添加 scrcpy 路径到 PATH set &q…...
产品经理面试题与参考答案资料(2025年版)
一、技术背景与工具能力 问题1: 软件开发生命周期(SDLC)包括哪些阶段?作为产品经理,你如何参与每个阶段? 参考答案: 软件开发生命周期通常划分为需求分析、设计、开发、测试、部署和维护六个阶段。作为产品经理,你需要在...
HTML 初识
段落标签 <p><!-- 段落标签 -->Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, voluptate iure. Obcaecati explicabo sint ipsum impedit! Dolorum omnis voluptas sint unde sed, ipsa molestiae quo sapiente quos et ad reprehenderit.&l…...
CSS3笔记
文章目录 1.CSS的概念2.CSS的引入方式3.选择器3.1基础选择器3.1.1标签选择器3.1.2类选择器3.1.3id选择器3.1.4通配符选择器 4.画盒子5.文字控制属性5.1 字体大小-font-size5.2 字体粗细-font-weight5.3 字体倾斜-font-style5.4 行高-line-height5.5 字体族-font-family5.6 字体…...
yarn的定义
YARN是一个分布式资源管理平台,它通过分离资源管理和作业调度的功能,为Hadoop集群提供了一种高效、灵活且可扩展的方式来管理和分配计算资源。YARN的核心目标是将资源管理与作业调度/监控的功能分离,从而让Hadoop能够支持更多种类的计算框架&…...
CSS 美化页面(五)
一、position属性 属性值描述应用场景static默认定位方式,元素遵循文档流正常排列,top/right/bottom/left 属性无效。普通文档流布局,默认布局,无需特殊定位。relative相对定位,相对于元素原本位置进行偏…...
互联网大厂Java面试:微服务与分布式系统挑战
互联网大厂Java面试:微服务与分布式系统挑战 在互联网的大潮中,无数程序员怀揣着梦想,希望能在一线大厂找到自己的位置。今天的故事主角是马飞机,一位充满幽默感但技术略显水货的程序员。他来到了一家知名互联网公司参加Java开发…...
数据结构——顺序表(C语言实现)
1.顺序表的概述 1.1 顺序表的概念及结构 在了解顺序表之前,我们要先知道线性表的概念,线性表,顾名思义,就是一个线性的且具有n个相同类型的数据元素的有限序列,常见的线性表有顺序表、链表、栈、队列、字符串等等。线…...
FastGPT安装前,系统环境准备工作?
1.启用适用于 Linux 的 Windows 子系统 方法一:打开控制面板 -> 程序 -> 启用或关闭Windows功能->勾选 “适用于Linux的Vindows子系统” 方法二:以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“…...
【2】CICD持续集成-k8s集群中安装Jenkins
一、背景: Jenkins是一款开源 CI&CD 系统,用于自动化各种任务,包括构建、测试和部署。 Jenkins官方提供了镜像:https://hub.docker.com/r/jenkins/jenkins 使用Deployment来部署这个镜像,会暴露两个端口ÿ…...
相比其他缓存/内存数据库(如 Memcached, Ehcache 等),Redis 在微服务环境中的优势和劣势是什么?
我们来比较一下 Redis 与 Memcached、Hazelcast、Ehcache 等在微服务环境下的优势和劣势。 Redis 的优势 : 丰富的数据结构 (Rich Data Structures): 优势: 这是 Redis 最显著的优势之一。除了简单的 Key-Value (字符串) 外,Redis 还原生支持 Lists, Sets, Sorted …...
Day53 二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* T…...
mac上安装VMWare Fusion安装ubuntu系统问题
mac不能复制粘贴到虚拟机的ubuntu系统里,没有下载vmtools 在ubuntu系统执行命令 sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y ubuntu 下载地址 https://cdimage.ubuntu.com/ubuntu/releases/20.04/release/...
JAVA Web_定义Servlet_处理POST请求【练习】
题目 有一个登录页面(login.html),其登录表单的HTML代码如下: </form action"doLogin" method "post"> 用户名:<input type"text" name"userName"><br>…...
FreeRTOS任务通知
一、什么是任务通知 FreeRTOS从版本V8.2.0开始提供通知这个功能,每个任务都有一个32位的通知值。按照官方说法,使用消息通知比通过二进制信号量方式解除阻塞任务快45%,且更加省内存(无需创建队列)。 (也就…...
NO.97十六届蓝桥杯备战|数论板块-最大公约数和最小公倍数|欧几里得算法|秦九韶算法|小红的gcd(C++)
约数和倍数 如果a 除以b 没有余数,那么a 就是b 的倍数,b 就是a 的约数,记作b ∣ a 。 约数,也称因数。 最⼤公约数和最⼩公倍数 最⼤公约数Greatest Common Divisor,常缩写为gcd。 ⼀组整数的公约数,是…...
ESP32之本地HTTP服务器OTA固件升级流程,基于VSCode环境下的ESP-IDF开发(附源码)
背景知识: 本实验利用编译链内Python内置的 HTTP 服务器,将升级包通过http发送给设备,实现OTA固件升级。 目录 背景知识: 1.创建工程 1.1 创建OTA基础工程 3.编写、修改代码 3.1 修改menuconfig配置文件 3.1.1 配置WiFi账…...
Jenkins的使用及Pipeline语法讲解
Jenkins简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 什么是持续集成(CI)? CI(…...
【MySQL】初识数据库
目录 一.什么是数据库 二.数据库和数据结构的关系 三. 数据库服务器、数据库与表之间的关系 四.关系型数据库 五. SQL介绍 SQL分类 六.MySQL架构(面试重点) 七. 库的基本操作 1.查看数据库 2.创建数据库 字符集编码和校验(排序&…...
Android tinyalsa库函数剖析
1. PCM 流控制函数 打开、关闭及状态检查 pcm_open(unsigned int card, unsigned int device, unsigned int flags, struct pcm_config *config) 打开指定声卡(card)和设备(device)的 PCM 流。 flags 参数确定流的方向࿱…...
DFS/BFS专练-搞定图论基础!(从海岛问题过渡至图论基础应用C++/C)
:: 图论基础理论 :: 紧接着,图论基础理论中,咱们讲到,图论的遍历主要由(dfs与bfs决定) 那咱们本篇博客就来聊聊dfs与bfs。 dfs(深度优先搜索)、bfs(广度优先搜索)的区别…...
2024年RIS SCI2区:自适应天鹰算法AAO,深度解析+性能实测
目录 1.摘要2.天鹰算法AO原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 智能电网通过集成可再生能源并管理供需动态平衡来提高效率,本文提出了自适应天鹰算法(AAO),AAO使用Sigmoid因子来平衡探索和开发,根据迭…...
orcad csi 17.4 DRC规则设置及检查
rCAD绘制完原理图之后总是需要开启DRC检测,但是DRC一般都是英文版的,下面基于Cadence17.4 的orCAD16.6 对DRC的界面做简单的介绍 首先,鼠标点击原理图,然后再点击右上方的小勾图标 desine rules check option选项的界面 电气规…...
前端实战:基于 Vue 与 QRCode 库实现动态二维码合成与下载功能
在现代 Web 应用开发中,二维码的应用越来越广泛,从电子票务到信息传递,它都扮演着重要角色。本文将分享如何在 Vue 项目中,结合QRCode库实现动态二维码的生成、与背景图合成以及图片下载功能,打造一个完整且实用的二维…...
天梯赛DFS合集
1.DFS特殊输入:PTA | 程序设计类实验辅助教学平台 这题其他还是蛮容易,直接用递归即可,问题在于怎么输入,其实可以在递归到底层时输入即可,也就是边递归边输入,另外提一嘴跟这个题没什么关系的点ÿ…...
Qt中读写结构体字节数据
在Qt中读写结构体字节数据通常涉及将结构体转换为字节数组(QByteArray)或直接从内存中读写。以下是几种常见方法: 方法1:使用QDataStream读写结构体 cpp #include <QFile> #include <QDataStream>// 定义结构体 #pragma pack(push, 1) //…...
关于yarn和hadoop
1.yarn的定义? YARN(Yet Another Resource Negotiator)是 Apache Hadoop 的一个关键组件,它是一个资源管理平台,负责管理和调度计算资源。YARN 允许多个数据处理引擎(如 MapReduce、Spark、Flink 等&#…...
【全部更新】2025妈妈杯D题1-4问mathercupD题数学建模挑战赛D题数学建模思路代码文章教学短途运输货量预测及车辆调度问题
完整内容请看文章最下面的推广群 先进行摘要和结果的展示、再给出完整的思路 问题1:通过时间序列或机器学习模型预测货量,并按历史分布拆分到10分钟颗粒度。 问题2:基于货量生成运输需求,用贪心算法或整数规划优化车辆调度。 问…...
考研408第一章计算机系统概述——1.1-1.2操作系统的基本概念与发展历程
考研408计算机系统概述——操作系统的基本概念与发展历程 一、操作系统的基本概念 1.1 操作系统的定义与功能 1.1.1 定义 操作系统(Operating System, OS)是管理计算机硬件与软件资源的程序集合,为应用程序和用户提供接口与服务。其核心功能包括: 资源管理者:处理机、…...
《从理论到实践:CRC校验的魔法之旅》
循环冗余校验(Cyclic Redundancy Check ,CRC )是一种用于检测数据传输或存储过程中错误的算法。他通过计算数据的校验值(也称为CRC码),并在数据接收端验证校验值是饭否正确,从而检测数据是否在传输过程中被…...
【算法笔记】整除与最大公约数(GCD)专题整理
参考文章链接(已获得作者授权) 一、整除:数学中的"完美分割" 定义 若整数 a a a能整除整数 b b b(记作 a ∣ b a\mid b a∣b),则存在整数 k k k使得 b a ⋅ k ba\cdot k ba⋅k。 通俗理解&…...
JDBC 与 MyBatis 详解:从基础到实践
目录 一、JDBC 介绍 二、使用 JDBC 查询用户信息 三、ResultSet 结果集 四、预编译 SQL - SQL 注入问题 五、预编译 SQL - 性能更高 六、JDBC 增删改操作 插入数据: 更新数据: 删除数据: 七、MyBatis 介绍 八、MyBatis 入门程序 引…...
虚拟机开发环境搭建与内网迁移
以下是关于在虚拟机中搭建开发环境并迁移至内网的详细步骤及注意事项,适用于需要在内网隔离环境中进行开发的场景(如企业安全要求、离线开发等): 一、虚拟机开发环境搭建 1. 选择虚拟机平台 推荐工具: V…...
【HFP】蓝牙HFP协议音频连接核心技术深度解析
目录 一、音频连接建立的总体要求 1.1 发起主体与时机 1.2 前提条件 1.3 同步连接的建立 1.4 通知机制 二、不同主体发起的音频连接建立流程 2.1 连接建立触发矩阵 2.2 AG 发起的音频连接建立 2.3 HF 发起的音频连接建立 三、编解码器连接建立流程 3.1 发起条件 3.…...
PowerBI 表格显示无关联的表数据
假设有两张没有建立关联的数据表: 产品表 库存表 我们将他们放入表格里显示,数据会出问题。 因为 [库存表] 里的数据有除 [产品表] 以外的产品的数据,所以PBI无法从两张表中找到一一对应的数据。 解决方法:(不建立关联关系的情况下) 新建一个度量值&a…...
观察者模式详解与C++实现
1. 模式定义 观察者模式(Observer Pattern)是一种行为型设计模式,定义了对象间的一对多依赖关系。当一个对象(被观察者/主题)状态改变时,所有依赖它的对象(观察者)都会自动收到通知…...
用ffmpeg 实现拉取h265的flv视频转存成264的mp4 实现方案
1.需要对ffmpeg进行源码修改 这里使用 https://github.com/numberwolf/FFmpeg-QuQi-H265-FLV-RTMP 这位大神提供的源码 需要 x265_3.2.1.tar.gz last_x264.tar.bz2 fdk-aac-2.0.1.tar.gz FFmpeg-QuQi-H265-FLV-RTMP-master.zip 这些包 升级ubuntu18.04 apt update a…...
《AI赋能职场:大模型高效应用课》第8课 AI辅助职场沟通与协作
【本课目标】 掌握AI辅助邮件、沟通话术的优化技巧。学习利用AI快速生成高效的会议纪要。通过实操演练,提升职场沟通效率与协作能力。 【准备工具】 DeepSeek大模型(deepseek.com)百度文心一言(yiyan.baidu.com) 一…...
PowerBI下载安装教程
1、打开官方下载链接,或者Microsoft store里搜索下载(通过官网下载可以选择安装路径,应用商店直接会安装到默认路径里)。 2、等待下载成功后,直接点击【打开】即可。...