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

Unity中使用环形缓冲区平滑抖动值

环形缓冲数据结构,就是如下图一样的一个收尾相接的列表

在index指针指到4时,再往里添加数据,index就会指向0,并覆盖已有数据。

如何绘制Sin函数,请看下面一篇文章

Unity中如何实现绘制Sin函数图像-CSDN博客

接下来要使用Sin函数来模拟输入,使用噪声来模拟抖动,代码如下:

amplitude * Mathf.Sin(tau * frequency * x) + Random.Range(0f,1f);

观察现在的正弦波:

 

然后创建环形平滑类:

public class SlidingAverage
{float[] buffer;float sum;int lastIndex;public SlidingAverage(int num_samples, float initial_value){buffer = new float[num_samples];lastIndex = 0;reset(initial_value);}public void reset(float value){sum = value * buffer.Length;for (int i = 0; i < buffer.Length; ++i)buffer[i] = value;}public void pushValue(float value){sum -= buffer[lastIndex]; // subtract the oldest sample from the sum sum += value; // add the new sample buffer[lastIndex] = value; // store the new sample // advance the index and wrap it around lastIndex += 1;if (lastIndex >= buffer.Length) lastIndex = 0;}public float getSmoothedValue(){return sum / buffer.Length;}
}

使用平滑类:

slidingAverage = new SlidingAverage(10, 0);

 下面是使用10个值平滑后的正弦波:

可以看到抖动明显消除了!perfect!

参考链接:

快速提示:使用 “Ring Buffer” 数据结构平滑抖动值 |Envato Tuts+ (tutsplus.com)

相关文章:

Unity中使用环形缓冲区平滑抖动值

环形缓冲数据结构&#xff0c;就是如下图一样的一个收尾相接的列表 在index指针指到4时&#xff0c;再往里添加数据&#xff0c;index就会指向0&#xff0c;并覆盖已有数据。 如何绘制Sin函数&#xff0c;请看下面一篇文章 Unity中如何实现绘制Sin函数图像-CSDN博客 接下来要…...

【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?

文章目录 前言问题描述问题分析问题解决1.允许所有用户上传驱动文件2.如果是想只上传白名单的驱动 前言 该方法适合永洪BI系列产品&#xff0c;包括不限于vividime desktop&#xff0c;vividime z-suit&#xff0c;vividime x-suit产品。 问题描述 当我们连接数据源的时候&a…...

SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql

本文主要介绍在 Spring Boot 中使用 AOP 实现自定义日志记录并保存在 Mysql 的方法。先阐述记录日志的重要性及传统方式的弊端&#xff0c;提出新方式&#xff0c;即通过创建自定义注解、切面类等&#xff0c;将重要日志存到数据库&#xff0c;还给出了创建日志表、注解类、切面…...

谷歌开源最强天气预报AI模型 GenCast

谷歌 DeepMind 开源新一代天气预测 AI 模型 GenCast&#xff0c;GenCast 以最先进的精度预测天气和极端条件的风险 天气预报对人们生活和决策至关重要&#xff0c;但传统 NWP 模型存在不确定性&#xff0c;且计算资源需求大、运行慢。机器学习在天气预报中虽有进展&#xff0c;…...

C++打造局域网聊天室第十课: 客户端编程及数据发送

文章目录 前言一、补充内容&#xff0c;设置显示框换行二、客户端编程三、封装消息发送函数四、所处的身份状态总结 前言 C打造局域网聊天室第十课&#xff1a; 客户端编程及数据发送 一、补充内容&#xff0c;设置显示框换行 编辑框的显示内容默认是不会换行的&#xff0c;这…...

Nginx整合Lua脚本

Nginx-Lua Nginx整合Lua脚本 Lua环境搭建 下载地址 linux环境下 yum install lua安装后验证 lua -vLua脚本执行 lua xxx.luaNginx整合Lua nginx需要添加lua模块 嵌入内容 示例如下 修改nginx.conf如下 location /lua {default_type text/plain;content_by_lua ngx.sa…...

【C++】C++11 STL容器emplace方法原理剖析

在 C 11 STL 容器中&#xff0c;push/insert > emplace 新的方法&#xff0c;push 和 emplace 的区别在于&#xff1a; 1. push push 通常用于将一个元素添加到容器的末尾&#xff08;在 std::vector、std::deque 等序列容器中&#xff09;&#xff0c;或者在关联容器中插入…...

QT-简单视觉框架代码

文章目录 简介1. 整体架构2. 关键类功能概述3. 详细代码实现hikcameraworker.h 和 hikcameraworker.cpp&#xff08;海康相机工作线程类&#xff09;imageviewerwidget.h 和 imageviewerwidget.cpp&#xff08;图像查看部件类&#xff09;构造函数 ImageViewerWidget析构函数 ~…...

AI新书推荐:深度学习和大模型原理与实践(清华社)

本书简介 在这个信息爆炸、技术革新日新月异的时代&#xff0c;深度学习作为人工智能领域的重要分支&#xff0c;正引领着新一轮的技术革命。《深度学习和大模型原理与实践》一书&#xff0c;旨在为读者提供深度学习及其大模型技术的全面知识和实践应用的指南。 本书特色在于…...

[spring]处理器

我们可以通过spring来管理我们的类&#xff0c;之后我们可以通过spring的容器来获取我们所需要的Bean类对象。Spring的处理器是Spring对外开发的重要扩展点&#xff0c;它允许我们介入到Bean的整个实例化流程中来&#xff0c;可以动态添加、修改BeanDefinition、动态修改Bean 首…...

重温设计模式--中介者模式

中介者模式介绍 定义&#xff1a;中介者模式是一种行为设计模式&#xff0c;它通过引入一个中介者对象来封装一系列对象之间的交互。中介者使得各个对象之间不需要显式地相互引用&#xff0c;从而降低了它们之间的耦合度&#xff0c;并且可以更方便地对它们的交互进行管理和协调…...

重温设计模式--设计模式七大原则

文章目录 1、开闭原则&#xff08;Open - Closed Principle&#xff0c;OCP&#xff09;定义&#xff1a;示例&#xff1a;好处&#xff1a; 2、里氏替换原则&#xff08;Liskov Substitution Principle&#xff0c;LSP&#xff09;定义&#xff1a;示例&#xff1a;好处&#…...

LeetCode429周赛T4

最小化二进制字符串中最长相同子字符串的长度 在处理二进制字符串问题时&#xff0c;优化字符串结构以满足特定条件是一项常见的挑战。本文将探讨一个具体的问题&#xff1a;给定一个长度为 n 的二进制字符串 s 和一个整数 numOps&#xff0c;通过最多 numOps 次位翻转操作&am…...

详解MySQL在Windows上的安装

目录 查看电脑上是否安装了MySQL 下载安装MySQL 打开MySQL官网&#xff0c;找到DOWNLOADS 然后往下翻&#xff0c;找到MySQL Community(GPL) Downloads>> 然后找到MySQL Community Server 然后下载&#xff0c;选择No thanks,just start my download. 然后双击进行…...

【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】

本教程的知识点为&#xff1a;操作系统 1. 常见的操作系统 4. 小结 ls命令选项 2. 小结 mkdir和rm命令选项 1. mkdir命令选项 压缩和解压缩命令 1. 压缩格式的介绍 2. tar命令及选项的使用 3. zip和unzip命令及选项的使用 4. 小结 编辑器 vim 1. vim 的介绍 2. vim 的工作模式 …...

软件测试面试题和简历模板(面试前准备篇)

一、问题预测 1、让简单介绍下自己&#xff08;这个不用说了每次面试开场&#xff09; 面试官&#xff0c;你好&#xff0c;我叫xxx&#xff0c;xx年本科毕业&#xff0c;从事软件测试将近3年的时间。在此期间做过一些项目也积累过一些经验&#xff0c;能够独立地完成软件测试…...

Linux 基本使用和程序部署

1. Linux 环境搭建 1.1 环境搭建方式 主要有 4 种&#xff1a; 直接安装在物理机上。但是Linux桌面使用起来非常不友好&#xff0c;所以不建议。[不推荐]。使用虚拟机软件&#xff0c;将Linux搭建在虚拟机上。但是由于当前的虚拟机软件(如VMWare之类的)存在一些bug&#xff…...

uniapp微信小程序,使用fastadmin完成一个一键获取微信手机号的功能

前端部分 点击按钮&#xff0c;获取手机号 <button open-type"getPhoneNumber" getphonenumber"bindGetPhoneNumber" hover-class"none"class"btn-purity">一键获取</button> 传入openid和code bindGetPhoneNumber(e) …...

CSS系列(27)- 图形与滤镜详解

前端技术探索系列&#xff1a;CSS 图形与滤镜详解 &#x1f3a8; 致读者&#xff1a;探索CSS的艺术表现力 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS 图形和滤镜效果&#xff0c;学习如何创建引人注目的视觉效果。 基础图形 &#x1f680; 几何形状…...

Docker 技术系列之安装多版本Mysql5.6和Mysql5.7

image 大家好&#xff0c;后面的就不是关于MAC专有的内容&#xff0c;基本是跟Java环境&#xff0c;基础技术方面有关。所以这个教程对于在linux系统还是macOS都是通用的&#xff0c;不用担心。 上一篇&#xff0c;我们安装好对应的Docker之后&#xff0c;感受到了它的便利。接…...

告别硬接线!用Wireshark抓包实战解析IEC 61850 GOOSE报文(附报文文件)

实战解析IEC 61850 GOOSE报文&#xff1a;从抓包到故障排查全流程 在变电站自动化系统中&#xff0c;GOOSE&#xff08;Generic Object Oriented Substation Event&#xff09;报文扮演着至关重要的角色。这种基于以太网多播的通信机制&#xff0c;已经彻底改变了传统IED&#…...

GD32 USB从机硬件设计避坑指南:F303/E503的1.5K电阻和F4xx的VBUS直连到底怎么选?

GD32 USB从机硬件设计避坑指南&#xff1a;F303/E503的1.5K电阻和F4xx的VBUS直连到底怎么选&#xff1f; 在嵌入式硬件设计中&#xff0c;USB接口的实现往往看似简单&#xff0c;实则暗藏玄机。尤其是面对GD32不同系列芯片时&#xff0c;设计工程师常常陷入"1.5K上拉电阻…...

JetBrains IDE试用期重置终极指南:30天免费试用无限续杯

JetBrains IDE试用期重置终极指南&#xff1a;30天免费试用无限续杯 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗&#xff1f;IDE Eval Resetter插件为你提供完美的解决…...

如何掌握RePKG:Wallpaper Engine资源逆向工程的终极工具指南

如何掌握RePKG&#xff1a;Wallpaper Engine资源逆向工程的终极工具指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专为Wallpaper Engine设计的开源命令行工具&…...

你花了几个月搭的 RAG 知识库,可能从一开始方向就错了:Karpathy 的 LLM Wiki 模式全解析

知识管理这个概念比计算机还早。 1945 年&#xff0c;Vannevar Bush 在《Atlantic Monthly》上发了篇文章叫《As We May Think》&#xff0c;提出了一个叫 Memex 的概念——一台可以装载所有书籍和记录&#xff0c;并能把各种材料串连起来的机器。 这大概就是"个人知识库&…...

大模型---RAG中的数据处理

目录 一.输入侧 1.纯文本TXT/Markdown 2.HTML/网页 3.Word/PPT 4.Email 5.可选中文本PDF 6.扫描PDF/扫描件/文档图片 7.图片/图表/截图/流程图 8.文档中的表格 9.CSV/XLSX 10.音频 11.视频 12.混合文档 二.输出侧 1.输出侧结构化最常见的四种实现方式 2.常见的…...

Magma智能运维:基于Prometheus的监控告警优化

Magma智能运维&#xff1a;基于Prometheus的监控告警优化 1. 监控系统面临的挑战 现代分布式系统的监控一直是个头疼的问题。随着微服务架构的普及&#xff0c;服务数量呈指数级增长&#xff0c;传统的监控方式已经力不从心。运维团队经常面临这样的困境&#xff1a;明明设置…...

Qwen3-14B私有部署镜像实测:一键启动,打造你的私有AI大脑

Qwen3-14B私有部署镜像实测&#xff1a;一键启动&#xff0c;打造你的私有AI大脑 1. 开箱即用的私有AI解决方案 在当今AI技术快速发展的背景下&#xff0c;越来越多的企业和开发者希望拥有自己的私有AI模型。Qwen3-14B私有部署镜像正是为这一需求而生的解决方案。它基于强大的…...

8、如何提高webpack的构建速度?

目录 一、先说本质&#xff1a;Webpack 为什么会慢&#xff1f; 二、面试开场高分回答 三、常见优化手段 1. 缩小 Loader 的作用范围 做法 为什么有效 面试亮点说法 2. 使用缓存 方案一&#xff1a;Webpack 5 持久化缓存 为什么有效 面试亮点 方案二&#xff1a;Ba…...

GLM-4.1V-9B-Base作品分享:中文视觉理解SOTA级效果的可复现截图

GLM-4.1V-9B-Base作品分享&#xff1a;中文视觉理解SOTA级效果的可复现截图 1. 模型介绍 GLM-4.1V-9B-Base是智谱最新开源的视觉多模态理解模型&#xff0c;在中文视觉理解任务上达到了SOTA(State-of-the-art)水平。这个模型特别擅长处理与中文相关的视觉任务&#xff0c;能够…...