ShaderToy学习笔记 03.多个形状和旋转
1. 正方形和旋转
1.1. 正方形
要绘制一个正方形,我们需要定义一个点到正方形边界的距离函数。对于中心在原点的正方形,其数学表达式为:
对于一个点 p(x,y) 到正方形边界的距离函数可以表示为:
d = max(|x|, |y|) - r
其中:
- |x| 和 |y| 分别表示点到原点的x轴和y轴距离的绝对值
- r 为正方形的半边长
- d 为点到正方形边界的有向距离:
- d < 0 表示点在正方形内部
- d = 0 表示点在正方形边界上
- d > 0 表示点在正方形外部
我们可以使用 desmos 来验证一下。
运行结果如下图所示:
#define PIXW (1./iResolution.y)vec3 sdfSquare(vec2 uv, float r,vec2 offset)
{uv=uv-offset;float d=max(abs(uv.x),abs(uv.y))-r;return d>0.?vec3(0.):vec3(abs(sin(iTime*0.3)),abs(cos(iTime*0.3)),abs(sin(iTime*0.3)));
}void mainImage( out vec4 fragColor, in vec2 fragCoord )
{// Normalized pixel coordinates (from -1 to 1)vec2 uv = (2.0*fragCoord-iResolution.xy)/iResolution.xx;float r=0.3;vec3 c=sdfSquare(uv,0.3,vec2(0,0));// Output to screenfragColor = vec4(vec3(c),1.0);
}
1.2. 旋转
1.2.1. 2.1 旋转矩阵
1.2.2. 二维空间的旋转矩阵
从向量角度看:
点A可以理解为向量A1+A2,其中 A1 为(x,0),A2 为(0,y)。
将坐标轴旋转θ角度后,点A’的坐标为(x’,y’)。
将坐标轴以逆时针旋转θ角度后,点A’的坐标为(x’,y’)。
点A’可以理解为向量A1’+A2’,其中
A1' = (x*cos(θ),x*sin(θ))
A2' = (-y*sin(θ),y*cos(θ))
**注意:从图中也可以看出A2’的x坐标为 -y*sin(θ) **
A’=A1’+A2’ ,所以
x' = x * cos(θ) - y * sin(θ)
y' = x * sin(θ) + y * cos(θ)
在二维空间中,旋转矩阵可以表示为:
R ( θ ) = ( cos θ − sin θ sin θ cos θ ) R(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix} R(θ)=(cosθsinθ−sinθcosθ)
对于任意点 A(x, y),旋转后的坐标 A’(x’, y’) 可以通过矩阵乘法得到:
( x ′ y ′ ) = ( cos θ − sin θ sin θ cos θ ) ( x y ) \begin{pmatrix} x' \\ y' \end{pmatrix} = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} (x′y′)=(cosθsinθ−sinθcosθ)(xy)
展开后得到旋转公式:
x' = x * cos(θ) - y * sin(θ)
y' = x * sin(θ) + y * cos(θ)
在 desmos 来验证一下
思路:
- 定义一个旋转矩阵 R,它是一个 2x2 的矩阵,其中包含了旋转角度的余弦和正弦值。
运行结果如下图所示:
#define PIXW (1./iResolution.y)#define PI 3.1415926535897932384626433832795
vec2 rotate(vec2 uv ,float theta)
{mat2 m=mat2(cos(theta),sin(theta),-sin(theta),cos(theta));return m*uv;
}
vec3 sdfSquare(vec2 uv, float r,vec2 offset)
{uv=uv-offset;uv=rotate(uv,PI/4.);float d=max(abs(uv.x),abs(uv.y))-r;return d>0.?vec3(0.):vec3(abs(sin(iTime*0.3)),abs(cos(iTime*0.3)),abs(sin(iTime*0.3)));
}void mainImage( out vec4 fragColor, in vec2 fragCoord )
{// Normalized pixel coordinates (from -1 to 1)vec2 uv = (2.0*fragCoord-iResolution.xy)/iResolution.xx;float r=0.3;vec3 c=sdfSquare(uv,0.3,vec2(0,0));// Output to screenfragColor = vec4(vec3(c),1.0);
}
1.2.3. 三维空间的旋转矩阵
详见 https://blog.csdn.net/weixin_44539328/article/details/147030682?spm=1011.2415.3001.5331 # 1. 多个2D形状和混合
1.1. mix函数
mix函数可以将两个颜色混合在一起,它的语法如下:
函数 | 说明 | 数学公式 | 示例 |
---|---|---|---|
mix(x,y,a) | 在x和y之间按a进行线性插值。a的范围在[0,1]之间,当a=0时返回x,当a=1时返回y | f(x,y,a) = x * (1-a) + y * a | mix(0.0, 1.0, 0.5) = 0.5 |
1.1.1. 用mix函数混合颜色
#define PIXW (1./iResolution.y)
vec3 getBackgroundColor(vec2 uv)
{return mix(vec3(1,0,1),vec3(0,1,0),uv.y);
}void mainImage( out vec4 fragColor, in vec2 fragCoord )
{// Normalized pixel coordinates (from -1 to 1)vec2 uv = (2.0*fragCoord-iResolution.xy)/iResolution.xx;float r=0.3;vec3 c=getBackgroundColor(uv);// Output to screenfragColor = vec4(vec3(c),1.0);
}
1.2. SDF 介绍
SDF在shader中指的是"Signed Distance Function"(有符号距离函数)。这是一个非常重要的概念,让我详细解释一下:
-
基本概念:
- SDF 是一个返回点到形状表面距离的函数
- 返回值的符号表示点是在形状内部(负值)还是外部(正值)
- 表面上的点返回值为0
-
SDF 的特点:
- 可以精确描述几何形状
- 计算效率高
- 便于实现形状的混合和变形
- 可以轻松实现平滑过渡和边缘效果
1.3. 用SDF实现多个2D形状
1.3.1. 用SDF实现一个圆
核心代码
vec3 c=getBackgroundColor(uv);float circle_d=sdfCircle(uv,r,vec2(0,0));c=mix(vec3(1,0,0),c,step(0.,circle_d));
完整代码
#define PIXW (1./iResolution.y)
float sdfCircle(vec2 p, float r,vec2 offset)
{return length(p-offset)-r;
}vec3 getBackgroundColor(vec2 uv)
{
//uv.y [-1,1]
//y: [0,1] float y=(uv.y+1.)/2.; return mix(vec3(1,0,1),vec3(0,1,1),y);
}void mainImage( out vec4 fragColor, in vec2 fragCoord )
{// Normalized pixel coordinates (from -1 to 1)vec2 uv = (2.0*fragCoord-iResolution.xy)/iResolution.xx;float r=0.3;vec3 c=getBackgroundColor(uv);float circle_d=sdfCircle(uv,r,vec2(0,0));c=mix(vec3(1,0,0),c,step(0.,circle_d));// Output to screenfragColor = vec4(vec3(c),1.0);
}
1.3.2. 用SDF实现一个矩形 和 圆形
核心代码
vec3 c=getBackgroundColor(uv);float circle_d=sdfCircle(uv,r,vec2(0,0));float rect_d=sdfRect(uv,vec2(0.3,0.3),vec2(0,0));c=mix(vec3(1,0,0),c,step(0.,circle_d));c=mix(vec3(0,1,0),c,step(0.,rect_d));
采用mix函数,实现形状的混合,但当两个形状相交时,最后画的图形会覆盖前面的图形。上图中圆形和矩形相交部份显示的是矩形的颜色。
完整代码
#define PIXW (1./iResolution.y)
float sdfCircle(vec2 p, float r,vec2 offset)
{return length(p-offset)-r;
}
float sdfSquare(vec2 p, float r,vec2 offset)
{return max(abs(p.x-offset.x)-r,abs(p.y-offset.y)-r);
}
vec3 getBackgroundColor(vec2 uv)
{
//uv.y [-1,1]
//y: [0,1] float y=(uv.y+1.)/2.; return mix(vec3(1,0,1),vec3(0,1,1),y);
}void mainImage( out vec4 fragColor, in vec2 fragCoord )
{// Normalized pixel coordinates (from -1 to 1)vec2 uv = (2.0*fragCoord-iResolution.xy)/iResolution.xx;float r=0.3;vec3 c=getBackgroundColor(uv);float circle_d=sdfCircle(uv,r,vec2(-0.5,0));float square_d=sdfSquare(uv,r,vec2(-0.1,0));c=mix(vec3(1,0,0),c,step(0.,circle_d));c=mix(vec3(0,1,0),c,step(0.,square_d));// Output to screenfragColor = vec4(vec3(c),1.0);
}
相关文章:
ShaderToy学习笔记 03.多个形状和旋转
1. 正方形和旋转 1.1. 正方形 要绘制一个正方形,我们需要定义一个点到正方形边界的距离函数。对于中心在原点的正方形,其数学表达式为: 对于一个点 p(x,y) 到正方形边界的距离函数可以表示为: d max(|x|, |y|) - r 其中: |x| 和 |y| 分…...
Arduino+ESP01S烧录
这种办法不使用与ThonnyMircopython 前言 这里我们使用烧录器烧录,淘宝十几块钱一个的东西,ESP01S做一个WIFI继电器还是蛮有用的,就是烧录起来不太方便,传统的办法接线麻烦,需多次上电,也可能因为电源问题…...
什么是Lua模块?你会如何使用NGINX的Lua模块来定制请求处理流程?
大家好,我是锋哥。今天分享关于【什么是Lua模块?你会如何使用NGINX的Lua模块来定制请求处理流程?】面试题。希望对大家有帮助; 什么是Lua模块?你会如何使用NGINX的Lua模块来定制请求处理流程? 1000道 互联…...
小白自学python第三天
学习python第三天 一、函数 1、函数介绍 函数就是组织好的,可重复使用的,用以实现特定功能的代码块。 现在我们现在需要统计多个字符串长度并且不考虑使用内置函数,你会怎么做?我们先用一种原始人办法看看吧: str…...
【CF】Day44——Codeforces Round 908 (Div. 2) C + Codeforces Round 1020 (Div. 3) DE
C. Anonymous Informant 题目: 思路: 比这场的D难,虽然也不是很难 一个很容易想到的就是由当前状态推出初始状态,那么怎么推呢? 一个性质就是如果对于某一个 x 它可以执行左移操作的话,那么它一定会到数组…...
深入理解HashMap:Hash冲突的解决机制
引言 HashMap 是 Java 集合框架中最常用的数据结构之一,它通过键值对的形式存储数据,并利用哈希算法实现高效的插入、删除和查询操作。然而,在实际使用中,由于哈希函数的有限性和哈希桶数量的限制,不可避免地会出现 哈…...
Datawhale AI春训营二期---使用AI实现老人的点餐效果(关于task2的相关思考)
文章目录 1.多次测试的结果2.分数是如何提高的3.关于上分点拨4.关于task2的收获 1.多次测试的结果 第一次和第二次的,都是使用的baseline: 第三次的: 2.分数是如何提高的 之前的几次都是通过这个baseline进行运行的,然后今天是了解了一下这…...
摩尔投票法详细介绍
原理 摩尔投票法(Boyer-Moore Voting Algorithm)是一种用于在存在多数元素的数组中,高效找出出现次数超过数组长度一半的元素的算法。其核心思想是通过元素抵消策略,逐步缩小候选范围,最终确定多数元素。 核心假设&a…...
DP之书架
现按一定顺序给出所有要放置于书架上的书,共有 n 本,第 i 本书有一个长度 hi。 书架有若干层,层与层之间的宽度不一定相等,但是一层的宽度不能小于其上所摆放的任何一本书的长度。同时,每层上的书的长度之和不能超过…...
Python Cookbook-6.11 缓存环的实现
任务 你想定义一个固定尺寸的缓存,当它被填满时,新加入的元素会覆盖第一个(最老的)元素。这种数据结构在存储日志和历史信息时非常有用。 解决方案 当缓存填满时,本节解决方案及时地修改了缓存对象,使其从未填满的缓存类变成了…...
计算机网络基本概念
层次名称主要功能第七层应用层直接面向用户,提供应用服务(如浏览网页、发邮件)第六层表示层处理数据格式、加密解密、压缩解压第五层会话层建立、管理、终止会话(连接)第四层传输层提供端到端的数据传输(如…...
Eigen线性代数求解器(分解类)
1. 核心分解类概览 Eigen 提供多种矩阵分解方法,适用于不同矩阵类型(稠密/稀疏、正定/非正定等): 分解类适用矩阵类型分解形式典型应用场景PartialPivLU方阵(可逆)APLUAPLU通用线性方程组求解FullPivLU任…...
【Android】四大组件之Service
目录 一、什么是Service 二、启停 Service 三、绑定 Service 四、前台服务 五、远程服务扩展 六、服务保活 七、服务启动方法混用 你可以把Service想象成一个“后台默默打工的工人”。它没有UI界面,默默地在后台干活,比如播放音乐、下载文件、处理…...
VO包装类和实体类分别是什么?区别是什么?
VO包装类和实体类 1. 实体类(Entity Class)是什么?2. VO包装类(Value Object Class)是什么?3. VO包装类和实体类的区别4. 实际应用中的区别5. 举例5.1. 实体类(Entity Class)的定义与…...
如何创建一个C#项目(基于VS2022版)
一.先找到要保存项目的位置,新建一个文件夹 二.打开VisualStudio,选择创建新项目 三.选择模版: 选择操作语言和操作系统 这个是跨平台的 初学在windows系统上,可选择其他,下面这个是不带窗体模版 也可根据需要选择带窗体模版 点击下一步 填写项目名称,选择项目保存位置,填写解…...
RabbitMQ 四种交换机(Direct、Topic、Fanout、Headers)详解
本文是博主在梳理 RabbitMQ 知识的过程中,将所遇到和可能会遇到的基础知识记录下来,用作梳理 RabbitMQ 的整体架构和功能的线索文章,通过查找对应的知识能够快速的了解对应的知识而解决相应的问题。 文章目录 一、直连交换机(Dire…...
聚合分销系统开发:短剧小说外卖网盘电商cpscpa系统
聚合分销系统是一种整合了多种分销项目和功能的综合性平台,其核心在于通过CPS(按销售付费)和CPA(按行为付费)两种模式,为推广者提供多样化的赚钱机会。以下是聚合分销系统的主要项目和功能: 一…...
【Flume 】Windows安装步骤、配置环境
🛠 Flume 是什么? Apache Flume 是一个高效、可靠、可扩展的数据收集系统,通常用于收集日志、流数据,比如收集数据到 HDFS、Kafka 等。 虽然 Flume 本身是为 Linux 服务器设计的,但 在 Windows 本地也是能跑起来的&a…...
【信息系统项目管理师】高分论文:论质量管理和进度管理(智慧旅游平台建设项目)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划质量管理2、质量保证3、质量控制论文 2019年3月,我作为项目经理,参加了某市智慧旅游平台建设项目,负责项目的全面管理, 该项目以打造一流的国内外生态旅游城市为目标,旨在大数据云平台建设的基…...
一致性哈希详解:优雅地扩展分布式系统
引言 对于哈希算法,相信大家一定不会陌生。它经常被用在负载均衡、分库分表等场景中。例如,在进行分库分表时,我们可能初步根据业务分析,确定 128 张表足以满足当前的数据量需求。此时,当需要插入或查询一条记录时&am…...
pytest 技术总结
目录 一 pytest的安装: 二 pytest有三种启动方式: 三 用例规则: 四 配置框架: 一 pytest的安装: pip install pytest # 安装 pip install pytest -U # 升级到最新版 二 pytest有三种启动方式: 1…...
数据库MySQL学习——day5(总结与复习实践)
文章目录 1、复习总结1.1. 数据库基础1.2. 表操作1.3. 数据操作1.4. 更新与删除 2、实践任务:创建学生管理系统数据库2.1. 数据库设计2.2. 创建表的SQL语句2.3. 插入示例数据2.4. 查询与数据操作示例 3、调试与练习4、 今日小结 1、复习总结 1.1. 数据库基础 数据…...
unity bug
发现一个奇怪的bug,就是某些unity版本打包apk时候不允许StreamingAssets里面有中文文件或者中文路径。比如下图这面这俩都是不行的。 解决方案:中文改为英文即可。 一般报错信息如下: > Configure project :launcher WARNING:The option s…...
苹果计划2026年底前实现美版iPhone“印度造”,以减轻关税及地缘政治风险
基于 6 个来源 据多家媒体报道,苹果公司计划在2026年底前,实现在印度组装销往美国的大部分或全部iPhone手机,以减轻关税和地缘政治紧张局势带来的风险。这一目标意味着苹果需将印度的iPhone产量增加一倍以上,凸显其供应链多元化战…...
新增Webhook通知功能,文档目录树展示性能优化,zyplayer-doc 2.5.1 发布啦!
zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具,支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件,支持基于知识库的AI问答,专为私有化部署而设计,最大程度上保证企业或…...
【量化交易笔记】17.多因子的线性回归模型策略
前言 上一篇介绍了 因子的评价和分析方法,让我知道如何判断该因子的作用,以及对最终结果的影响,其最大的问题,他只能评价和分析单因子,而对多个因子,不能直接加以评价。我们自然会想到,如果是多…...
五年经验Java开发如何破局创业
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息文章目录 五年经验Java开发如何破局创业一、创业方向筛选与优劣势分析**方向1:技术教育/在线课程开发****方向2:企业级技术服务外包****方向3:技…...
定制一款国密浏览器(11):SM2算法的椭圆曲线参数定义
在国密算法中,SM2 算法是最复杂的,不仅是算法本身比较复杂,其应用场景也复杂。不管 SM2 算法本身有多复杂,作为开发者,我们需要知道的是 SM2 算法是建立在椭圆曲线算法(ECC)之上。关于 SM2 算法和椭圆曲线算法之间的关系,参考我之前的一篇文章: 解读国密非对称加密算…...
RAG技术与应用---0426
大语言模型>3.10 课程中会用到python 工具箱: faiss,modelscope,langchain,langchain_community,PyPDF2 1)大模型应用开发的三种模式 提示词没多少工作量,微调又花费时间费用,RAG是很多公司招聘用来对LLM进行应用…...
STM32的开发环境介绍
目录 STM32软件环境 Keil软件在线安装 其他软件环境安装 STM32开发的几种方式 STM32寄存器版本和库函数版本 标准外设库的作用: STM32软件环境 STM32 的集成开发环境(IDE):编辑编译软件 常见的环境: (1)KEIL&a…...
【生成式AI】从原理到实践的创造性革命
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现(文生图) 三、性能对比测试方法论量化数据对比结果分析 四、最佳实践推荐方…...
Win下Pycharm运行/调试配置脚本形参执行替换Linux下终端执行,进行调试需要注意的
Linux下终端执行 python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpuWin下Pycharm运行/调试配置脚本形参执行 主要改红色两处 如果工作目录正确,脚本形参…...
Pytorch(无CPU搭建)+Jupyter
2024年最新最简洁深度学习环境配置:AnacondaPyTorch(CPU、GPU)VScodePycahrm_哔哩哔哩_bilibili 跟 PyCharm說再見, [VSCode] PythonJupyter 超牛逼的功能 ! 5分鐘大幅提升編碼效率~ 數據分析、AI大神必備_哔哩哔哩_bilibili...
类的高级特性与语法细节
static 静态关键字 Java中的static关键字用于修饰类的成员(属性或方法),表示“静态”的含义,即属于类本身,而非某个对象。静态成员在内存中只有一份,在类加载时初始化,生命周期贯穿程序运行始终…...
基于 RAG 的 Text2SQL 全过程的 Python 实现详解,结合 LangChain 框架实现自然语言到 SQL 的转换
什么是RAG 一、核心流程:三阶段协同 RAG的核心流程分为检索(Retrieval)、增强(Augmentation)、生成(Generation)三个阶段,形成“检索→知识整合→生成”的闭环。 1. 检索ÿ…...
使用 OpenCV 进行视觉图片调整的几种常见方法
以下是使用 OpenCV 进行视觉图片调整的几种常见方法: 调整图片大小 指定目标尺寸:使用cv2.resize()函数,通过设定目标图像的宽度和高度来调整图片大小。例如,将图片调整为 200x200 像素: import cv2 image cv2.imre…...
【特殊场景应对9】视频简历的适用场景与风险分析
写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...
Dify 1.3.0 为 LLM 节点引入了结构化输出支持
Dify 1.3.0 为 LLM 节点引入了结构化输出支持 0. 引言1. 使用方法 0. 引言 Dify 1.3.0 开始,在 LLM 节点支持结构化输出:Dify 已经为 LLM 节点引入了结构化输出支持。这意味着您的语言模型现在可以返回整齐组织且易于处理的数据。后端实现由 Nov1c444 在…...
【Linux网络】HTTP协议全解析 - 从请求响应到方法与Header
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
JSP实现用户登录注册系统(三天内自动登录)
JSP实现用户登录注册系统 引言 在Web开发中,用户认证是最基础且核心的功能之一。本文基于JSP技术,实现了一个包含注册、登录、自动登录(3天内)、退出等功能的用户系统,并在过程中解决了Cookie字符错误、错误信息回显…...
大数据模型现状分析
大数据模型现状分析 一、引言 在当今数字化时代,数据以前所未有的速度增长,大数据已成为推动各行业发展的核心动力。大数据模型作为挖掘数据价值的关键工具,正受到广泛关注与深入研究。通过对海量、多样且高速产生的数据进行处理和分析&…...
代码随想录算法训练营第二十八天
LeetCode题目: 509. 斐波那契数70. 爬楼梯746. 使用最小花费爬楼梯2444. 统计定界子数组的数目(每日一题) 其他: 今日总结 往期打卡 动态规划解题步骤: 确定递推公式确定遍历顺序记忆化搜索(确定dp数组以及下标的含义与初始化值)递推优化与空间优化 509. 斐波那契数 跳转: 5…...
HTML与安全性:XSS、防御与最佳实践
HTML 与安全性:XSS、防御与最佳实践 前言 现代 Web 应用程序无处不在,而 HTML 作为其基础结构,承载着巨大的安全责任。跨站脚本攻击(XSS)仍然是 OWASP Top 10 安全威胁之一,对用户数据和网站完整性构成严…...
三维重建(二十)——思路整理与第一步的进行
文章目录 一、整体思路二、细分三、之前存在问题四、任务安排五、第一步——找到内参并选定一种5.1 train的RTK5.2 test的RTK5.3 各选择一个5.3.1 train-185.3.2 test-193一、整体思路 这部分主要是宏观的讲一下整体框架。 从gshell里面提取核心参数,放入py3d,渲染出图片,…...
判断 ONNX 模型是否支持 GPU
🔍 判断 ONNX 模型是否支持 GPU 的几个关键点: ✅ 1. 检查模型支持的 Execution Provider 可以通过下面的代码打印出来当前模型使用了什么设备: 需要安装好:onnxruntime-gpu import onnxruntime as ort session ort.InferenceSe…...
CANFD技术在实时运动控制系统中的应用:协议解析、性能测试与未来发展趋势
摘要: 本文深入探讨了CANFD技术在实时运动控制系统中的应用。通过对传统CAN协议与CANFD协议的对比分析,详细阐述了CANFD在提升数据传输效率、增强系统实时性与稳定性方面的优势。文章结合具体测试案例,对CANFD总线的性能指标进行了全面评估&a…...
Java基础 4.26
1.访问修饰符细节 package com.logic.modifier;public class A {public int n1 100;protected int n2 200;int n3 300;private int n4 400;public void m1() {//在同一个类中 可以访问public protected 默认 private 修饰属性和方法System.out.println(n1 " " …...
山东大学离散数学第九章习题解析
参考教材:离散数学教程,徐秋亮 / 栾俊峰 / 卢雷 / 王慧 / 赵合计 编著,山东大学计算机科学与技术学院 注:该解析为个人所写,涵盖了 2022-2023-2 学期赵合计老师所布置的所有课本习题;由于学识、认识及经验…...
5G融合消息PaaS项目深度解析 - Java架构师面试实战
5G融合消息PaaS项目深度解析 - Java架构师面试实战 场景:互联网大厂Java求职者面试,面试官针对5G融合消息PaaS项目进行提问。 第一轮提问 面试官:马架构,请简要介绍5G融合消息PaaS平台的核心功能和应用场景。 马架构ÿ…...
React-Redux
1、安装 npm i redux react-redux reduxjs/toolkit 2、基础使用方式(无 Toolkit) (1)核心Api createStore:创建数据仓库;store.dispatch():用于派发action,执行修改动作…...