自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2513)
  • 资源 (119)
  • 收藏
  • 关注

原创 GAMES001 Computational Geometry学习:线与线的位置关系(3D)—— 异面直线之间的距离

在三维空间里,两条直线的位置关系比二维复杂很多。二维平面上两条直线要么相交,要么平行,不存在第三种情况。但是在三维空间里,多了一种情况:异面直线(skew lines)—— 它们既不相交,也不平行,就像两根悬空交叉但不接触的电线杆上的电线一样,一根在高处,一根在低处,方向还不一样。这一页 PPT 讨论的核心问题是:给定空间中两条异面直线,怎么算出它们之间的最短距离?先把直线用参数方程表示出来。空间中一条直线可以用"一个起点 + 一个方向"来描述,任意一点沿着方向移动任意长度都能得到直线上所有的点:x1

2026-08-10 18:02:08 72

原创 GAMES001 Computational Geometry学习:什么是计算几何

这份笔记从零开始讲清楚"计算几何"到底是研究什么的、它是怎么来的、为什么会存在这门学科。很多人第一次听到"计算几何"这个名字,会下意识以为它是数学的一个分支(毕竟名字里带"几何")。但实际上:计算几何这门学科起源于 1971 年,它的诞生并不是数学家闭门造车想出来的,而是被两个实际的工程领域"逼出来"的:这些问题看起来五花八门,但都有一个共同点:输入是几何对象(点、线、面),输出也是几何结论,中间靠算法而不是靠人工画图去解决。和普通的算法题(比如排序、图论)相比,计算几何有两个很鲜明的特点:普通算法题里,数

2026-08-10 14:20:21 117

原创 GAMES001 Mathematics in Computer Graphics学习:张量的运算:缩并与点积

这份笔记从零开始,把"张量缩并"和"张量点积"这两个概念讲清楚,尽量不依赖你已经知道什么,只依赖基本的求和符号和矩阵知识。在讲缩并之前,先说明一下张量表达式里各个符号的含义,不然后面的公式会看不懂。一个高阶张量,本质上就是若干个基矢"并排放在一起"(这种并排的运算叫并矢,记号上就是把基矢直接写在一起,不加任何符号),前面挂着对应的分量系数。缩并做的事情是:从这一串基矢里挑出一个上标基矢和一个下标基矢,把它们用克罗内克符号"消掉",从而让张量的阶数降低 2。打个比方:张量就像一串珠子,每颗珠子是一个基矢,缩

2026-08-10 12:42:23 143

原创 GAMES001 Mathematics in Computer Graphics学习:内积、外积、向量积

这一节讲向量之间两种最基本的乘法:内积(点乘,结果是一个数)和叉积(也叫外积、向量积,结果是一个向量)。这两种"乘法"是线性代数和几何、物理里都绕不开的基础工具,下面从定义、几何意义、坐标公式三个层面,从零讲清楚。两个向量 a\boldsymbol aa 和 b\boldsymbol bb 的内积(也叫点积、数量积),记作 a⋅b\boldsymbol a\cdot \boldsymbol ba⋅b 或者 ⟨a,b⟩\langle \boldsymbol a,\boldsymbol b\rangle⟨a,b

2026-08-10 12:20:17 254

原创 GAMES001 Mathematics in Computer Graphics学习:矩阵求导:从零理解「用微分求导」的方法

这份笔记讲的是怎么对一个「输入是矩阵、输出是一个数」的函数求导数。听起来抽象,但其实思路很朴素:普通函数求导数我们靠微分,矩阵函数求导数照样靠微分,只不过要多处理一层"矩阵形状"的问题。下面从最基础的记号开始,一步一步把整套方法讲清楚。配套的原理图请看文末的 PDF(图1),里面画了完整的推导流程和一个例子,建议对照着看。

2026-08-10 11:36:55 130

原创 GAMES001 Mathematics in Computer Graphics学习:矩阵求导:从零开始理解

这份笔记讲的是"矩阵变元的实值标量函数"怎么求导。听起来很唬人,其实拆开看很简单:自变量不再是一个数,而是一整个矩阵;函数的输出还是一个普通的数(标量)。我们要搞清楚,这种情况下"导数"应该长什么样子。先拆解这个名字:在普通的一元微积分里,y=f(x)y=f(x)y=f(x) 对 xxx 求导,导数 f′(x)f'(x)f′(x) 还是一个数。但现在自变量是一整个矩阵,有 m×nm\times nm×n 个独立分量,每个分量都可以单独对 fff 求一次偏导数。很自然的想法是:把这 m×nm\times nm

2026-08-10 11:35:18 333

原创 GAMES001 Mathematics in Computer Graphics学习:向量与矩阵的范数——矩阵范数完整讲解

这份讲义把两页PPT(诱导范数 + 元素形式范数/沙滕范数)合并成一篇完整的笔记,从最基础的动机开始,把每一个公式的来龙去脉、证明思路都讲清楚,最后再配一段C++代码把所有范数实际算一遍,帮助建立直观感受。配套文件:矩阵范数其实不止一种定义方式,PPT里出现了三个"家族":诱导范数、元素形式范数、沙滕范数。麻烦的是,这三个家族都喜欢用 ∥A∥1\|A\|_1∥A∥1​、∥A∥2\|A\|_2∥A∥2​、∥A∥∞\|A\|_\infty∥A∥∞​ 这几个记号,但它们表示的东西并不一样。比如 ∥A∥2\|A\

2026-08-10 11:32:21 345

原创 GAMES001 Mathematics in Computer Graphics学习:矩阵分解:PLU 分解与 Cholesky 分解详解

矩阵分解(Decomposition)指的是把一个矩阵拆成几个结构更简单、更容易计算的矩阵相乘的形式。这样做的意义在于:很多矩阵运算(比如求解线性方程组、求逆、求行列式)如果直接对原矩阵操作会很慢,但如果矩阵已经被拆成了三角矩阵这种"规整"的形式,计算量就会大大减少。这一页介绍了两种最常用的分解方式:PLU 分解和 Cholesky 分解。下面从零开始讲清楚它们各自是什么、为什么这样拆、以及怎么用代码实现。在讲分解之前,先明确两个名词:PLU 分解的公式是:A=PLUA = PLUA=PLU也就是说

2026-08-10 09:27:45 340

原创 GAMES001 Mathematics in Computer Graphics学习:低维变换矩阵——从零理解 3D 线性变换

这份材料讲的是计算机图形学里最基础也最常用的几种 3D 变换矩阵:缩放、切变、绕 z 轴旋转,以及绕任意轴旋转。这几种矩阵是后面做模型变换、相机变换、动画的基石,先把它们的原理和推导过程搞清楚,后面遇到复杂的变换组合就不会懵。三维空间里的一个点或者一个向量,可以写成一个三维列向量 (x,y,z)T(x, y, z)^T(x,y,z)T。如果我们想让空间里所有的点都按照某种统一的规则移动(比如整体放大、整体歪斜、整体旋转),最方便的做法就是找一个 3×33\times 33×3 的矩阵 MMM,让新的点等于矩

2026-08-09 12:52:57 350

原创 GAMES001 Mathematics in Computer Graphics学习:矩阵单目运算:迹、逆、伴随

矩阵之间的加法、乘法,都需要两个矩阵才能进行,这种叫"双目运算"。而这一页讲的迹、逆、伴随,都只需要一个矩阵就能算出结果,所以叫"单目运算"——就像给一个数取相反数、取倒数一样,是对单个对象本身做的操作。这三个运算分别回答三个问题:对一个 nnn 阶方阵 AAA,把它对角线上的元素全部加起来,就是它的迹,记作 tr A\text{tr}\,AtrA:tr A=a11+a22+⋯+ann=∑i=1naii\text{tr}\,A = a_{11} + a_{22} + \cdots + a_{nn} =

2026-08-09 12:48:35 311

原创 GAMES001 Mathematics in Computer Graphics学习:向量(Vector)从零理解

在计算机图形学里,几乎所有要处理的东西——一个点在屏幕上的位置、一条边的方向、一个表面朝向哪边(法向)——从本质上讲都可以用同一种数学对象来描述,这个对象就是向量。所以在正式学图形学之前,必须先把"向量到底是什么"这件事搞清楚。向量其实有两套讲法,一套是我们中学就学过的直观讲法,另一套是大学线性代数里更抽象、更严谨的讲法。这两套讲法说的是同一个东西,只是站的角度不同。下面我们从直观讲起,再过渡到抽象定义。中学数学和物理里对向量的定义是:既有大小(长度)又有方向的量。比如"速度"就是一个向量——它不仅要说清

2026-08-09 12:40:10 197

原创 pro git学习:Git 命令大全

命令核心用途git branch列出/创建/删除/重命名分支;-u设置追踪切换分支;-b新建并切换;--恢复文件git merge合并分支;--abort中止;--squash压缩打开外部工具解决冲突git log查看历史;--graph图形化;-S搜索git stash暂存工作现场;pop恢复;list列出git tag打标签;-a附注标签;-sGPG签名命令核心用途关键选项git gc垃圾回收,打包对象,整理引用--auto(按需执行)、(立即清理不可达对象)git fsck。

2026-08-08 17:32:41 85

原创 pro git学习:Git Configuration 从零理解

优先级关系可以理解成"离得越近、管得越具体的那份配置,说了算":系统级配置/etc/gitconfig用户级配置~/.gitconfig仓库级配置.git/config最终生效的配置值也就是说,如果三个层级都设置了同一个选项(比如 ),最终生效的是仓库级()里那份,因为它是最后被读取、覆盖掉前面两层的。这些配置文件都是纯文本,理论上可以直接用编辑器打开手动改,但一般还是用 命令更省心,不容易改错格式。Git 支持的配置项非常多,官方文档()里能列出一大串,但真正常用的其实只有那么几个。默认情况下,Git

2026-08-08 17:20:57 102

原创 pro git学习:Git 工具:彻底搞懂 Reset

HEAD正常情况下,HEAD指向一个分支名(比如master),分支名再指向某个提交。分离头指针状态下,HEAD正常状态: HEAD -> master -> commit_C3分离头指针状态: HEAD -> commit_C3 (没有分支名)在这种状态下提交,新提交虽然存在,但因为没有分支指向它,切换到别的提交后就很容易"够不着"它了(除非记得那个哈希值或者用 reflog 找回来)。对比项普通子目录子模块版本历史和父项目共用同一条提交历史拥有自己独立的提交历史父项目记录的内容。

2026-08-08 16:32:42 81

原创 pro git学习:5.2 分布式 Git —— 给项目贡献代码

场景提交权限典型工作方式适合场景私有小团队每个人都有推送权限直接 clone、commit、fetch、merge、push,一直在同一个 master 上协作团队小、彼此信任、闭源项目私有托管团队个人无 master 权限,有集成负责人各自在功能分支上开发,推送到非 master 分支,由集成负责人统一合并团队规模较大,需要多个小组并行开发Fork 公共开源项目对原项目无写权限,对 Fork 副本有写权限。

2026-08-08 15:52:26 173

原创 pro git学习:3.5 Git 分支——远程分支(Remote Branches)详解

作为协作节点的远程仓库,通常都是裸仓库——也就是没有工作目录的 Git 仓库。因为这个仓库存在的唯一目的就是充当"协作中转站",没有必要在磁盘上专门检出一份可以直接编辑的项目快照,只保留 Git 自己的版本数据就够了。用最简单的话说:裸仓库,就是项目里.git目录的内容,除此之外什么都没有。平时我们本地开发用的仓库,是"工作目录 +.git版本库"这样一个组合:工作目录里放的是当前检出的实际文件,可以直接编辑;.git目录里存的才是完整的提交历史、分支信息等版本数据。而裸仓库只保留.git。

2026-08-08 13:42:00 168

原创 pro git学习:从零理解版本控制与 Git

如果不想让新目录叫默认的仓库名(比如上面例子里默认叫libgit2# 在原来的克隆地址后面,多加一个参数 mylibgit # 效果和上一条命令完全一样,唯一区别是本地目录名字变成了 mylibgit git clone https://github.com/libgit2/libgit2 mylibgit正常情况下,HEAD 指向一个分支,分支再指向最新提交。正常状态:检出标签后:HEAD → commit A(直接指向,绕开了分支)main → commit C(分支没动)

2026-08-08 12:28:39 140

原创 Data and Computer Communications学习:第 23 章 多协议标签交换(Multiprotocol Label Switching, MPLS)

MPLS 让网络管理者能够很方便地调度网络资源,从而在面对给定需求时均衡负载,并且能为不同用户的流量需求,承诺不同等级的支持力度。这种"能动态定义路由、依据已知需求规划资源投入、优化网络利用率"的能力,统称为流量工程(traffic engineering)。在 MPLS 出现之前,业界唯一能提供强大流量工程能力的网络技术,是ATM。一个 MPLS 网络(或者说互连网络)由一组节点组成,这些节点叫做标签交换路由器(LSR),它们能够依据附加在每个数据包上的标签(label),来完成数据包的交换和路由。

2026-08-08 09:24:51 209

原创 Data and Computer Communications学习:IP 多播(Multicasting)详解

第一件事(数据平面/转发功能):一个数据包进来了,查一下转发表,决定从哪个端口发出去——这是纯粹的"体力活",要求速度快。第二件事(控制平面/大脑功能):决定"转发表里到底应该写什么"——要跑路由协议、算最优路径、检查安全策略、决定 QoS 等级——这是"脑力活",要求逻辑复杂。在传统网络设备里,这两件事是焊死在同一台设备里的——每一台路由器、每一台交换机,都自己带着一套完整的"大脑"和"手脚"。

2026-08-08 08:02:25 193

原创 Data and Computer Communications学习:第22章 网络服务质量(QoS)架构

这部分内容本身不是知识点,而是给想深入研究的读者指了几条路,这里简单梳理一下每篇资料对应的主题,方便按需查阅:21.3 组播需要哪些功能支持?概括来说需要以下几类功能:一是成员关系管理,主机要有办法告诉路由器自己想加入或退出哪个组播组(这正是 IGMP 要做的事);二是组播路由,路由器之间要能协作构建出一棵能覆盖所有组成员的分发树(比如稀疏模式 PIM 用的"汇聚点树"或者"最短路径树");三是数据包复制转发,路由器在分发树的分叉节点上,要能把收到的一份数据包复制成多份,分别发往不同的下游分支;四是地址映

2026-08-08 08:00:58 167

原创 Data and Computer Communications学习:第20章:拥塞控制(Congestion Control)从零理解

想象一个高速公路收费站,平时车辆稀少,一切顺畅。但在节假日,车辆蜂拥而至,收费站处理不过来,于是排起了长龙——这就是"拥塞"。在计算机网络中,同样的事情会发生在路由器/交换机上:每个路由器/交换机节点,对于它的每个端口,都维护着两个缓冲区(队列):用 ASCII 图直观表示:关键问题:如果数据包到达速度 > 数据包发出速度,队列就会不断增长。根据排队论(Queueing Theory)的规律:当线路利用率>80% 时,队列长度会急剧增长\text{当线路利用率} > 80\%\text{ 时,队列长

2026-08-07 15:47:02 19

原创 Data and Computer Communications学习:分组交换网络中的路由技术详解

在任何一个交换式网络里(无论是分组交换网络、互联网,还是私有的内联网),有一个核心的设计难题:怎么给每一对想要通信的端节点,规划出一条能够高效利用网络资源的路径——这就是路由(Routing)要解决的问题。分组交换网络最基本的任务,就是把分组从源站点,送到目的站点。要做到这一点,网络必须先确定一条穿过网络的路径(通常不止一条可行路径),这个"确定路径"的过程,就是路由功能。设计路由功能时,通常要同时兼顾下面这几项要求:值得注意的是,上面这些要求并不是各自独立、可以同时拉满的——它们之间存在几组典型的权衡(

2026-08-07 14:58:02 71

原创 Data and Computer Communications学习:18.1 固定宽带无线接入(Fixed Broadband Wireless Access)详解

上行调度服务下行数据传送服务典型应用主要QoS参数非请求授权服务(UGS)非请求授权服务(UGS)VoIP(语音通话)最小保留流量速率、最大时延、容许抖动实时轮询服务(rtPS)实时可变速率服务(RT-VR)流式音频/视频最小保留流量速率、最大持续流量速率、最大时延、流量优先级非实时轮询服务(nrtPS)非实时可变速率服务(NRT-VR)FTP文件传输最小保留流量速率、最大持续流量速率、流量优先级尽力而为服务(BE)尽力而为服务(BE)网页浏览等一般数据传输。

2026-08-07 13:24:33 75

原创 Data and Computer Communications学习:第 17 章无线传输技术

普通的无线通信只用一根发射天线和一根接收天线,信号在空气中传播时会遇到反射、衍射,产生多径效应——同一个信号沿不同路径到达接收端,时间上有先后、相位上有差异,这本来是干扰源。**MIMO(Multiple-Input Multiple-Output,多输入多输出)**天线技术反过来利用了这一点:故意在收发两端都布置多根天线,把"空间"这个维度也利用起来,从而在不增加频谱带宽的情况下提升系统的容量、覆盖范围和可靠性。MIMO 和 OFDM 一起构成了现代宽带无线网络(Wi-Fi、WiMAX、4G/5G)的技术

2026-08-07 12:39:59 194

原创 Data and Computer Communications学习:模拟数据的模拟信号调制(续)

停等协议之所以慢,是因为发一帧就得完全停下来等确认,白白浪费了 2a2a2a 那么长的"等待时间"。滑动窗口的思路是:在等确认的这段时间里,不要闲着,继续发送后面的帧,只要窗口(一次最多能连续发送、且尚未被确认的帧数量)还没用完就行。依然把帧的传输时间归一化为 1,传播时间记为 aaa。发送方 A 从 t=0t=0t=0 开始连续发帧:情况一:W >= 2a+1(窗口足够大)第一个ACK在 t=2a+1 到达前窗口还没用完,A可持续发送结果:链路几乎不空闲,利用率=1.0Frame 1, Frame 2,

2026-08-07 12:36:16 175

原创 Data and Computer Communications学习:模拟数据的模拟信号调制——从零开始理解 AM、FM、PM

下面用一张图梳理一下这三种方式和它们之间的关系:模拟信号调制调幅 AM改变载波振幅角度调制调相 PM相位正比于信号调频 FM相位变化率正比于信号单边带 SSB双边带抑制载波 DSBSC残留边带 VSB需要特别说明一点:FM 和 PM 虽然公式形式不同,但本质上是"近亲"——PM 是相位直接跟着信号变化,FM 是相位的变化速度(也就是频率的瞬时偏移量)跟着信号变化。正因如此,教材里把它们统称为"角度调制"(angle modulation),因为它们调制的都是载波的相位角,只是调制方式略有差别。先看图 16.

2026-08-07 12:14:07 307

原创 Data and Computer Communications学习:第 15 章 传输协议 —— 15.1 面向连接的传输协议机制

动画资源配套网站上提供了与本章主题相关的一些动画演示,包括:建议观看这些动画来加深对本章概念的理解。下面逐一梳理每道习题的解题思路和计算过程。这里侧重帮助理解方法,而不仅仅是给出结果。问题:RFC 791(IP 规范)虽然没有明确说明,但定义了网络技术要支持 IP 运行必须能承载的最小分组尺寸。a. 该数值是多少?根据 RFC 791 第 3.2 节,答案是 68 字节(octets)。b. 为什么采用这个特定数值?推导逻辑如下:之所以选择这个数值,是因为需要保证:即使某个网络的最大传输单元(

2026-08-07 11:32:57 300

原创 Data and Computer Communications学习:第13章 无线局域网(WLAN)—— 从零开始理解

这一章讲的是"不用网线也能组网"的技术,核心围绕 IEEE 802.11 这个标准家族展开。整体思路分四步:有线局域网(比如以太网)已经很成熟了,但在某些场景下拉网线很麻烦,甚至根本没法拉:最简单的一种形态:所有无线终端设备都在同一个控制模块(CM,Control Module)的覆盖范围内。CM 本身还带有网桥或路由器功能,负责把无线这一侧和有线主干网(比如以太网)连接起来,并且内置某种访问控制逻辑(比如轮询或令牌传递)来协调各个无线终端谁能发送数据。除了 CM 直接管理的终端外,配置里也可能出现用户模

2026-08-07 11:08:36 352

原创 Data and Computer Communications学习:局域网协议体系结构详解:IEEE 802 参考模型、LLC 与 MAC

要描述一个局域网(LAN)的架构,最合适的方式就是把它拆解成一层一层的协议,每一层各自负责局域网里的某一部分基本功能。这一节先介绍局域网标准化的协议分层结构——这套结构包含物理层、介质访问控制(MAC)层、逻辑链路控制(LLC)层,然后再分别展开讲 MAC 层和 LLC 层各自具体在做什么。专门针对局域网(LAN)和城域网(MAN)传输设计的协议,处理的问题都跟"如何在网络上传输数据块"这件事直接相关。用 OSI(开放系统互联)模型的术语来说:第 3 层、第 4 层甚至更高层的协议,其实跟具体的网络架构没什

2026-08-07 10:10:00 355

原创 Data and Computer Communications学习:广域网技术与协议:电路交换、分组交换与 ATM 详解

这份笔记从零开始,把"交换网络"这一大类概念讲清楚:为什么网络需要"交换"、电路交换和分组交换分别是怎么工作的、交换机内部的硬件结构长什么样、以及 ATM(异步传输模式)是如何把两者的优点结合起来的。所有公式都会推导一遍,重点的地方还会配上可以直接编译运行的 C++ 代码,帮助把抽象的公式变成看得见摸得着的数字。想象一下,如果每两台想要通信的设备之间都要拉一条专用线路,那么 NNN 台设备两两互联就需要(N2)=N(N−1)2\binom{N}{2} = \frac{N(N-1)}{2}(2N​)=2

2026-08-07 09:15:41 120

原创 Data and Computer Communications学习:第 7 章 数据链路控制协议——流量控制

读完这一部分你应该能做到:前面讨论的是怎么把信号送到线路上传输,但光把比特送上线路是远远不够的。要让两台设备之间真正"对上话",还需要在物理层上面再加一层控制逻辑,这层逻辑就叫数据链路控制(Data Link Control,简称 DLC),使用这种协议的传输介质就被称为数据链路(data link)。两台直接相连的收发设备之间,要想实现有效的数据通信,至少要解决下面这些问题:流量控制说白了就是一句话:别让发送方的数据把接收方"淹没"了。接收方通常会为一次数据传输分配一块固定大小的缓冲区。数据一到,接收

2026-08-06 18:57:55 30

原创 Data and Computer Communications学习:第6章 错误检测与纠正(Error Detection and Correction)

在数字传输系统中,数据从发送方传到接收方,可能因为各种干扰(噪声、衰减、电磁干扰等)导致某些比特(bit)发生翻转,也就是:这三种方法都作用于数据块(称为帧、包或单元),而且前两种都依赖冗余位(Redundant Bits)。一个独立的比特发生了翻转,其周围的比特不受影响。通常在白噪声(White Noise)环境下,信噪比偶尔轻微下降时发生。2.2 突发错误(Burst Error)一段连续的比特序列中,有多个比特出错。定义(IEEE Std 100 / ITU-T Q.9):突发错误更常

2026-08-06 17:46:34 84

原创 第5章 信号编码技术导论:数据如何变成信号

在正式讲编码技术之前,必须先把"数据"和"信号"这两个概念彻底分清楚,因为这一整章讨论的核心问题就是:同一份数据,可以用不同方式变成信号。图中展示了两种截然不同的处理流程,一种走"数字信号"路线,另一种走"模拟信号"路线。x(t)数字信号数据源 g(t)(可以是数字或模拟)编码器Encoder解码器Decoder还原出 g(t)流程很简单:不管原始数据 g(t)g(t)g(t) 是数字的还是模拟的,都先送进编码器,编码器把它转换成一个数字信号 x(t)x(t)x(t) 送到线路上传输;到了接收端,解码器再把

2026-08-06 16:24:12 76

原创 Data and Computer Communications学习:第4章 传输介质详解:双绞线、同轴电缆与光纤

传输介质就是发送端和接收端之间信号传播所经过的物理路径。它可以分成两大类:在设计一个数据传输系统时,我们最关心两件事:能跑多快(数据速率)和能传多远(距离)。以下四个因素直接决定了这两点:下面这张图展示了整个电磁波谱,以及双绞线、同轴电缆、光纤各自工作在哪个频率区间:光纤覆盖区间同轴电缆覆盖区间双绞线覆盖区间10²HzELF/VF10⁵HzVLF10⁶HzLF/MF10⁸HzVHF/UHF10¹⁰HzSHF/EHF10¹²Hz红外10¹⁴Hz可见光10¹⁵Hz简单理解就是:双绞线用的频率最低,同轴电缆用的频

2026-08-06 16:23:24 84

原创 Data and Computer Communications学习:数据传输基础概念详解:信号、频率与带宽

数据能不能传得成功,主要看两件事:信号本身的质量好不好,以及传输介质的特性怎么样。这一章的目标,就是让你对这两件事建立起一种"直觉",而不是死记硬背公式。我们会先补一点电子工程的基础词汇和概念,然后搞清楚"模拟"和"数字"到底是什么意思——无论是数据本身还是承载数据的信号,都可能是模拟的,也可能是数字的,二者是可以自由组合的。接着我们看看信号在传输过程中会遇到哪些"伤害"(衰减、失真、噪声等),最后落到一个非常核心的概念上:信道容量——一条信道到底能塞下多少数据。数据传输发生在发送端(transmitte

2026-08-06 15:29:53 144

原创 Data and Computer Communications学习:2.9 关键术语、复习题与习题

协议就是通信双方(或多方)必须共同遵守的一套规则语法(数据长什么样、字段怎么排列)、语义(每个字段具体是什么意思、该采取什么动作)、时序(什么时候该发送、发送节奏应该多快)。PDU 指的是某一层协议在通信双方对等实体之间传递的一个完整数据单元,它通常由"本层的控制信息(头部)"加上"要传递的实际数据"两部分组成。协议体系结构是指把一次完整的网络通信任务,拆分成若干个层次。

2026-08-06 12:34:30 165

原创 Data and Computer Communications学习:数据通信与网络教材导读:从零理解整本书的结构

这一章是整本教材正式开始之前的"导读",主要回答几个问题:这本书分几块、顺序怎么读、去哪找配套资源、跟这个领域相关的标准化组织都有哪些。下面按逻辑重新梳理一遍。另外线上还有一个 Part Nine:安全,讲各种安全威胁以及应对手段;再加上一些线上附录,补充书里提到但没细讲的话题。整体结构画成一张图会更直观:整本教材Unit One基础内容Unit Two进阶内容Part Nine(线上)安全Part One概览Part Two数据通信Part Three广域网Part Four局域网Part Five互联

2026-08-06 12:31:28 152

原创 C++ The Comprehensive Guide学习:C++ 多线程基础:共享数据、数据竞争与同步机制

在单个线程内部,C++ 保证:一条语句执行完,才会轮到下一条语句执行,语句和语句之间是有严格先后顺序的。但这个"顺序保证"仅仅针对语句(statement),并不适用于表达式(expression)内部的求值顺序。举个例子:这里 和 到底谁先执行,标准并没有规定,可能是 先执行,也可能是 先执行,甚至编译器有权按它认为合适的方式安排。只有语句与语句之间,才有"前一条做完,后一条才开始"的保证。这里要特别强调一点:即便是语句层面的顺序保证,系统承诺的也只是"看起来好像是按顺序完成的"。如果几条语

2026-08-06 10:32:58 231

原创 C++ The Comprehensive Guide学习:C++ 系统错误处理:`system_error`

当操作系统或者某些底层库遇到错误时,通常会用一个数字把错误报告给程序,而不是给一句人话描述。举个例子,在 POSIX 系统(比如 Linux)上,“权限不足"这个错误会用错误码 (对应常量 )来表示。这就带来一个很现实的问题:如果你想写能跨平台运行的代码,同一个"权限不足"的语义,在不同操作系统上对应的数字可能完全不一样。你不能在代码里到处写"如果错误码等于1就是权限问题”,因为这在 Windows 上可能压根对不上。于是就出现了一个两难的局面: 这套机制有一个很人性化的设计:它既能配合异常使用,也能完

2026-08-06 10:05:38 189

原创 C++ The Comprehensive Guide学习:C++ 字符串流、流缓冲区、filesystem 与 format 详解

是最简单的数字转字符串函数,但它底层基于 C 的 ,输出格式不可控,和 的输出经常不一致。对比一目了然:数值 输出 输出(固定 6 位小数)(精度丢失)超长数字字符串结论: 对浮点数几乎没有实用价值,优先选择下面两种方式:也可以用 配合 运算符来读取。每一个流对象(、、 等)内部都有一个缓冲区,真正的字节处理发生在这里。类层次结构:streambuf抽象基类filebuf文件缓冲区stringbuf字符串缓冲区ifstream /

2026-08-06 08:18:44 223

Real-Time C++, 2nd Edition.pdf

C++ programs combine class types that encapsulate objects with procedural subroutines in order to embody the functionality of the application. This chapter presents these main language elements of C++ using a short, intuitive program that toggles an LED on a microcontroller output port pin. In addition, other language features are introduced including the syntax of C++, namespaces, the C++ standard library and optimization with compile time constants. This chapter uses our target system with the 8-bit microcontroller.

2018-06-17

OpenGL ES 3dot0 Cookbook

First and foremost, I would like to thank my wife, Gurpreet, for her love, encouragement, and extreme patience during the book writing process, which mostly occurred on vacations, weekends, and overnights. I dedicate this book to my parents and brother; without their support, this book wouldn't have been possible. I wish to extend my special thanks to Amit Dubey for his guidance and directions, which always proved helpful. I would like to express my gratitude to Vijay Sharma. I learned ways to handle complex problems with a simple approach from him. I am highly grateful to Saurav Bhattacharya, Mohit Sindwani, and Tarun Nigam for being highly supportive during the course of this book. I am also very thankful to Dr. Ulrich Kabatek for providing me flexible timings, which helped me fnalize this title.

2018-06-17

OpenCV 3 Blueprints.pdf

OpenCV 3 Blueprints.pdf OpenCV 3 Blueprints.pdfOpenCV 3 Blueprints.pdf

2018-06-17

Data Structures & Algorithm Analysis in C++, 4th Edition.pdf

Data Structures & Algorithm Analysis in C++, 4th Edition.pdf

2018-06-17

Learning Boost C++ Libraries.pdf

Boost is not just a collection of useful, portable, generic C++ libraries. It is an important incubator for ideas and concepts that make their way to the ISO C++ Standard itself. If you are involved in the development of software written in C++, then learning to use the Boost libraries would save you from reinventing the whee improve the quality of your software, and very likely push up your productivity.

2018-06-17

OpenCV Computer Vision with Python.pdf

OpenCV Computer Vision with Python.pdf OpenCV Computer Vision with Python.pdf

2018-06-17

OpenGL 4 Shading Language Cookbook, Second Edition

OpenGL 4 Shading Language Cookbook, Second Edition

2018-06-17

OpenGL Data Visualization Cookbook

OpenGL is an ideal multiplatform, cross-language, and hardware-accelerated graphics rendering interface that is well suited to visualize large 2D and 3D datasets in many felds. In fact, OpenGL has become the industry standard to create stunning graphics, most notably in gaming applications and numerous professional tools for 3D modeling. As we collect more and more data in felds ranging from biomedical imaging to wearable computing (especially with the evolution of Big Data), a high-performance platform for data visualization is becoming an essential component of many future applications. Indeed, the visualization of massive datasets is becoming an increasingly challenging problem for developers, scientists, and engineers in many felds. Therefore, OpenGL can provide a unifed solution for the creation of impressive, stunning visuals in many real-time applications.

2018-06-17

OpenCV By Example.pdf

OpenCV By Example.pdfOpenCV By Example.pdfOpenCV By Example.pdf

2018-06-17

A Practical Introduction to Computer Vision with OpenCV.pdf

A Practical Introduction to Computer Vision with OpenCV.pdf

2018-06-17

Functional Programming with C++

Functional programming is experiencing a resurgence with languages like Python, Haskell, and Scala. C++ and Java have also added functional features, such as lambdas and futures. Writing C++ in a functional style using const variables, functions without side effects, recursive functions, and function objects results in code that is often simpler and easier to maintain and understand, especially when poorly documented. This book explores functional techniques in C++ code and their advantages and disadvantages.

2018-06-17

Procedural Content Generation for C++ Game Development.pdf

Computer games are a vast medium with dozens of genres that have developed over the past three to four decades. Games are bigger and more immersive than ever, and gamers' expectations have never been higher. While linear games, ones that have a set story and fxed progression, are still commonplace, more and more dynamic and open-ended games are being developed. Advances in computer hardware and video game technologies are giving a much more literal meaning to the phrase "game world". Game maps are constantly increasing in size and flexibility, and it's thanks to technologies such as procedural generation that it's possible. Two gamers who buy the same game may have very different experiences as content is generated on the fly

2018-06-17

OpenGL Programming Guide, 8th Edition

OpenGL Programming Guide, 8th Edition OpenGL Programming Guide, 8th Edition

2018-06-17

Arduino Computer Vision Programming.pdf

Arduino Computer Vision Programming.pdf Arduino Computer Vision Programming.pdf

2018-06-17

OpenCV Computer Vision Application Programming Cookbook Second Edition.pdf

OpenCV Computer Vision Application Programming Cookbook Second Edition.pdf

2018-06-17

pictures.zip

图片picture1

2020-08-20

The Linux Programming Interface

The Linux Programming Interface

2018-06-17

OpenCV 2 Computer Vision Application Programming Cookbook

OpenCV 2 Computer Vision Application Programming Cookbook

2018-06-17

Learning Image Processing with OpenCV.pdf

Learning Image Processing with OpenCV.pdfLearning Image Processing with OpenCV.pdf

2018-06-17

Practical Algorithms for 3D Computer Graphics, Second Edition.pdf

Practical Algorithms for 3D Computer Graphics, Second Edition.pdf

2018-06-17

svg 资源文件opengl

svg

2025-09-20

游戏学习资源intro-art.zip

游戏学习资源intro_art.zip

2025-04-12

Gaming Keyboard Splitter

Gaming Keyboard Splitter

2024-11-11

Game Programming Using QT.pdf

Game Programming Using QT.pdf Game Programming Using QT.pdf

2018-06-17

Linux Sound Programming.pdf

Linux Sound Programming.pdf Linux Sound Programming.pdf

2018-06-17

Multicore and GPU Programming An Integrated Approach.pdf

Multicore and GPU Programming An Integrated Approach.pdf

2019-03-21

C++ API设计.pdf

C++ API设计.pdf

2019-04-13

ZeroMQ 云时代极速消息通信库.pdf

ZeroMQ 云时代极速消息通信库.pdf

2019-04-20

Effective C++ 第三版(中文带书签PDF).pdf

Effective C++ 第三版(中文带书签PDF).pdf

2019-04-13

Effective C++ 第三版.pdf

Effective C++ 第三版(中文带书签PDF).pdf

2019-04-14

2016-09 C++11_14高级编程 Boost程序库探秘, 3rd.pdf

2016-09 C++11_14高级编程 Boost程序库探秘, 3rd.pdf

2019-04-20

OGLPG-9th-Edition.zip OpenGL编程指南代码(包括资源文件)

OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件OGLPG-9th-Edition.zip OpenGL编程指南(红皮书)包括资源文件

2019-10-23

OpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.core

OpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.coreOpenGL 4.5 Reference Pages API + GLSLangSpec.4.60 + glspec46.core

2019-10-22

C++数据结构与算法 第4版.pdf

C++数据结构与算法 第4版.pdfC++数据结构与算法 第4版.pdf

2019-04-14

Learning Windows 8 Game Development.pdf

Learning Windows 8 Game Development.pdf

2019-04-20

OGRE 3D 1.7 Application Development Cookbook.pdf

OGRE 3D 1.7 Application Development Cookbook.pdf

2019-04-20

网络多人游戏架构与编程.pdf

网络多人游戏架构与编程.pdf网络多人游戏架构与编程.pdf网络多人游戏架构与编程.pdf

2019-04-20

UNIX网络编程卷1:套接字联网API(第3版) (1).pdf

UNIX网络编程卷1:套接字联网API(第3版) (1).pdfUNIX网络编程卷1:套接字联网API(第3版) (1).pdf

2019-04-14

C++黑客编程揭秘与防范 第2版.pdf

C++黑客编程揭秘与防范 第2版.pdf

2019-04-20

More Effective C++中文版

More Effective C++中文版

2019-04-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除