avatar
文章
112
标签
18
分类
34

首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
Zhangzqs
搜索
首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
图形学三大变换
发表于2024-02-02|计算机图形学
Model 模型变换 缩放变换 S(sx,sy)=[sx000sy0001]S(s_x, s_y)=\begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix} S(sx​,sy​)=⎣⎡​sx​00​0sy​0​001​⎦⎤​ S(sx,sy,sz)=[sx0000sy0000sz00001]S(s_x, s_y, s_z)=\begin{bmatrix} s_x & 0 & 0 & 0\\ 0 & s_y & 0 & 0\\ 0 & 0 & s_z & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} S(sx​,sy​,sz​)=⎣⎢⎢⎡​sx​000​0sy​00​00sz​0​0001​⎦⎥⎥⎤​ 反射变换 Rx=[1000−10001]R_x=\begin{bmatrix} 1 & 0 & 0 \\ ...
使用Rust描述音乐系统并模拟乐器演奏
发表于2023-11-25|Rust
定义基本音乐元素 音符 音符由绝对音高与时值构成 12345#[derive(Debug, Clone, Copy)]pub struct Note { pub pitch: AbsulateNotePitch, pub duration: NoteDuration,} 音高 音高分为绝对音高与相对音高。 音程 音程可由半音数描述,12个半音音程为一个八度 八度 八度代码定义如下: 12345678910111213141516171819202122232425262728#[derive(Debug, Clone, Copy)]pub enum Octave { O1, O2, O3, O4, O5, O6, O7, O8,}impl From<u8> for Octave { fn from(x: u8) -> Self { match x { 0 => Octave::O1, ...
Docker快速部署prometheus+grafana监控体系
发表于2023-06-09|未分类
准备 首先确保已经安装了 docker 和 docker-compose 介绍 首先拿出官方的生态架构图简单介绍一下整个体系架构 Prometheus 是整个监控体系的核心,它中包含了时序数据库和 PromQL 查询语言 Exporter 是监控数据收集节点,由 Prometheus 根据配置主动拉取监控数据,Prometheus 官方提供了一些 exporter 如 node-exporter Grafana 是一个支持多种数据源配置的数据可视化系统,我们需要安装 Grafana 后将 Prometheus 作为数据源进行连接 除此之外 Short-lived jobs 和 Alertmanager 本文暂不涉及 开始搭建 首先可以创建一个文件夹,用于存放搭建过程中涉及到的所有文件,我这里创建一个 moniter 文件夹,后续均在该文件夹中进行操作 Prometheus 创建prometheus.yml 123456789101112# 全局配置global: # 抓取时间周期,默认为1分钟,这里设置为15s scrape_interval: 15s # eval的时 ...
Chapter 8 File system
发表于2023-01-13|论文翻译xv6文档翻译
文件系统的目的是为了组织和存放数据。文件系统通常是为了用户之间和应用程序之间共享数据使用,同时还能够实现持久话存储,以便于数据在重启之后依旧可用。 xv6文件系统提供了类Unix的文件,目录和路径名称,并且存储它的数据在virtio磁盘以持久话数据。文件系统需要解决几个挑战: 文件系统需要在磁盘之上的数据结构来表达树形的目录和文件,能够记录块标识来控制每个文件的内容,记录磁盘上的哪些区域是空闲的。 文件系统必须支持崩溃恢复。这是因为,如果崩溃发生了(如断电),文件系统必须在重启之后仍然能够正常地工作。风险在于崩溃可能会中断一个一连串的的更新,并且在磁盘数据结构上留下不一致性。(例如:一个块既被一个文件所使用又被标记为空闲块) 不同的进程可能在同一时间操作文件系统,所以文件系统的代码必须是 coordinate 来维持 invariants. 访问一个磁盘比访问内存慢几个数量级,所以文件系统对于频繁使用的块必须维护一个内存缓存。 这一章阐述了xv6的文件系统将如何应对这些挑战。 8.1 Overview xv6文件系统实现被组织成为了7层,如图8.1。 disk层在virtio硬件 ...
[论文翻译] Review of FAT data structure of FAT32 file system
发表于2023-01-11|论文翻译
原始 Paper http://www.computerscijournal.org/dnload/Wasim-Ahmad-Bhat-and-S-M-K-Quadri/OJCSV03I01P161-164.pdf 标题 回顾FAT数据结构,FAT32文件系统 概述 FAT 文件系统是一种最原始,可兼容并且简单的文件系统,它如今仍然在支撑着各种数码设备的运行,比如mini MP3播放器,智能手机和数字相机。由于它的简单性和经典性,这种文件系统几乎被所有的操作系统都支持。这篇论文回顾了FAT数据结构中最基本,最重要的一些设计技巧,约束,规则去构建FAT32文件系统中的块数据结构。 介绍 FAT (文件分配表) 文件系统于20世纪70年代开始发展并且早在20世纪80年代就被微软的MS-DOS操作系统所支持。 它也是包括DR-DOS, FreeDOS, MS-DOS, OS/2(v1.1)和Microsoft Windows (一直到Windows Me)在内的各种操作系统的原生文件系统。 FAT 最初是为了500KB以内的软盘设备而开发的。 随着存储容量的提升,FAT也被增强来支持大 ...
oh-my-zsh 安装
发表于2022-12-31|未分类
123456789101112131415161718192021# 安装zshsudo apt install zsh# 下载oh my zshgit clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh# 复制oh my zsh配置cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc# 设置默认终端为zshchsh -s /bin/zsh# 下载补全插件git clone git@github.com:zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions# 编辑配置文件,修改 plugins=(git zsh-autosuggestions)vim ~/.zshrc# 重启zshsource .zshrc
SIT-board-远程交互式白板的实现
发表于2022-11-29|项目开发
本作品为七牛云2022年1024创作节校园黑客马拉松参赛作品 需求分析 基本绘图功能 作为一个在线协作白板,离线的本地化的白板是一切功能的前提。本地白板中需要包含所有白板绘图相关的基本功能。 分页展示 白板需要支持分页显示,每一页都有其独立标题,用户能够切换当前页面,增加新页面,删除非当前页面,需要保证项目至少存在一页。 123456789101112@startumlleft to right directionusecase 使用分页 as usePageUser --> usePage usecase 切换当前页面 as switchPage usecase 增加新页面 as addPage usecase 删除非当前页 as deletePage usePage <-- switchPage: <<extends>> usePage <-- addPage: <<extends>> usePage <-- deletePage: <<extend ...
大整数求幂模
发表于2022-10-30|信息安全
大整数幂模分解公式 ma+b mod q=(ma×mb) q=((ma mod q)×(mb mod q)) mod q\begin{aligned} m^{a+b} \space mod \space q &=(m^a \times m^b) \space q\\ &=((m^a \space mod \space q)\times (m^b \space mod \space q)) \space mod \space q\\ \end{aligned} ma+b mod q​=(ma×mb) q=((ma mod q)×(mb mod q)) mod q​ 证明: 设 ma+b mod q=tm^{a+b} \space mod \space q = tma+b mod q=t ma mod q=t1m^{a} \space mod \space q = t_1ma mod q=t1​ mb mod q=t2m^{b} \space mod \space q = t_2mb mod q=t2​ 等价于 ma+b ÷ q=x⋯tm^{a+b} \space \ ...
Diffie-Hellman密钥交换算法
发表于2022-10-29|信息安全
简介 Diffie和Hellman在1976年发表的论文中提出了公钥密码思想,但没有给出具体的方案,原因在于没有找到单向函数,但在该文中给出了通信双方通过信息交换协商密钥的算法,即Diffie-Hellman密钥交换算法,这是第一个密钥协商算法,用于密钥分配,不能用于加密或解密信息。 算法描述 算法描述:Diffie-Hellman算法的安全性基于离散对数问题,设p是一个满足要求的大素数,并且g(0< g < p)是循环群Zp的生成元,g和p公开。 用户A选取一个大的随机数 α(2≤α≤p−2)α(2≤α≤p-2)α(2≤α≤p−2), 计算SA=gαmod p)S_A=g^α mod \space p)SA​=gαmod p), 并且把SAS_ASA​发送给用户B 用户B选取一个大随机数β(2≤β≤p−2)β(2≤β ≤p-2)β(2≤β≤p−2),计算SB=gβmod p),并且把S_B=g^β mod \space p),并且把SB​=gβmod p),并且把S_B$发送给用户A 用户A收到SBS_BSB​后,计算K=SBαmod pK={S_B}^α mo ...
RSA算法
发表于2022-10-28|信息安全
RSA算法简介 RSA密码算法是美国麻省理工学院的Rivest、Shamir和Adleman三位学者于1978年提出的。RSA密码算法方案是唯一被广泛接受并实现的通用公开密码算法,目前已经成为公钥密码的国际标准。它是第一个既能用于数据如密,也能通用数字签名的公开密钥密码算法。在Internet中,电子邮件收、发的加密和数字签名软件PGP就采用了RSA密码算法。 RSA的理论基础 RSA的理论基础是大整数因数分解的困难性质。 RSA加解密过程 密钥生成 选取两个大素数p,qp,qp,q 计算n=p⋅qn=p \cdot qn=p⋅q 计算欧拉函数 ϕ(n)=(p−1)⋅(q−1)\phi (n) = (p-1)\cdot(q-1)ϕ(n)=(p−1)⋅(q−1) 随机选取一个整数e(1<e<ϕ(n))e(1 < e < \phi(n))e(1<e<ϕ(n)),使满足gcd(e,ϕ(n))=1gcd(e,\phi(n))=1gcd(e,ϕ(n))=1 由扩展欧几里得算法计算d使得e⋅d mod ϕ(n)=1e \cdot d \space mo ...
1234…12
avatar
Zhangzqs
一个分享与记录的个人空间
文章
112
标签
18
分类
34
Follow Me
最新文章
图形学-光线追踪4(概率论)2025-10-14
图形学-光线追踪(渲染方程)2025-10-12
图形学-Animation动画22025-10-07
图形学-Animation动画2025-10-05
图形学-光线追踪(辐射度量学)2025-08-11
分类
  • Android7
  • Golang6
  • Java框架2
  • Python1
  • ROS机器人1
  • Rust1
  • 信息安全9
  • 各种日常踩坑小技巧4
标签
Typora Linux hexo 设计模式 踩坑 MyBatis pandoc 敏捷开发 算法 数学建模 C/C++ 语法分析 Java 编译原理 数据库 Scrum Hibernate 读后感
归档
  • 十月 20254
  • 八月 20254
  • 四月 20254
  • 六月 20241
  • 五月 20241
  • 四月 20244
  • 三月 20241
  • 二月 20242
网站资讯
文章数目 :
112
已运行时间 :
本站总字数 :
196.5k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Zhangzqs
框架 Hexo|主题 Butterfly
搜索
数据库加载中