自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

astralcon的博客

不会热门技术的A君

  • 博客(89)
  • 收藏
  • 关注

原创 随着阅读量更新的书单

前言这篇置顶博客主要是记录2021年6月15日后自己通读过但是没有写过博客的书籍…计算机网络图解 HTTP阅读时间:(2021.06.15 - 2021.06.18)数学数学之美阅读时间:2021.06.19 - 未完C++C++标准库阅读时间:2021.06.22 - 未完...

2021-06-22 14:55:34 165 1

原创 算法第四版习题解答(1.3 Bags, Queues, adn Stacks)

算法第四版练习1.3

2022-11-14 18:20:25 881

原创 算法第四版习题解答(1.2 Data Abstraction)

算法第四版1.2习题解答

2022-10-22 18:45:11 399

原创 Docker到底是什么

Docker的由来

2022-10-21 21:01:32 429

原创 算法第四版习题解答(1.1 Basic Programming Model)

《算法》第四版英文版习题解答

2022-10-14 14:51:58 526

原创 《TCP/IP详解》卷一:The-internet-protocol-IP

引言​ IP是TCP/IP协议簇中最核心的协议之一。IP提供不可靠、无连接的数据报传输服务。​ **不可靠(unreliable)**的意思是IP不能保证数据报能成功地到达目的地,它仅仅尽最大努力提供最好的传输服务。当其发生某种错误时,例如路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报(通常是最后达到的数据报),然后发送ICMP消息报给主机。任何可靠性的要求都由上层的TCP来提供。​ **无连接(connectionless)**的意思是IP并不维护任何已经发送出去的数据报的相关信

2022-05-18 13:25:07 1260

原创 二年级寒假总结

2021年12月26日为了寒假督促自己多下些苦功。B站点赞投币收藏了up主莫使金樽空对月__提供的由李慧芹老师主讲的《LINUX系统编程》。2022年1月11日和伯伯、奶奶去武汉协和医院奶奶需要做白内障手术2022年1月27日给爷爷奶奶家安装了WIFI2022年1月31日打麻将,被三位妇女杀了我300元2022年2月1日------2022年2月3日寒假需要过年走亲戚,还要和伯母、妈妈、婶婶、舅妈出去逛街买东西(小镇安踏青年)2022年2月9日《赛博朋克2077》通关《天

2022-02-13 15:33:01 322 2

原创 备份、恢复与性能调优

备份与恢复概述根据备份的方法将备份分为:Hot Backup(热备)(在线备份)Cold Backup(冷备)(离线备份)Warm Backup(温备)热备是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响;冷备是指备份操作是在数据库停止的情况下,一般只需要复制相关的数据库物理文件即可;温备同样是在数据库运行中备份,但是会对当前数据库的操作有所影响。按照备份后的内容,备份又可以分为:逻辑备份裸文件备份在MySQL数据库中,逻辑备份是指备份出的文件内容是可读的,一般

2021-11-16 09:18:39 1157

原创 InnoDB存储引擎:事务

认识事务概述事务:访问并更新数据库中各种数据项的一个程序执行单元。数据库引入事务的主要目的:事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。InnoDB存储引擎中的事务完全符合ACID的特性:原子性(atomicity)(整个数据库事务是不可分割的工作单位)一致性(consistency)(事务将数据库从一种状态转变为下一种一致的状态)隔离性(isolation)(要求每个读写事务的对象对其他事务的操作对象能相互分

2021-11-15 16:56:37 1245

原创 InnoDB存储引擎:锁

什么是锁锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。数据库使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。InnoDB 存储引擎锁的实现和 Oracle 数据库非常类似,提供一致性的非锁定读、行级锁支持。行级锁没有相关额外的开销,并可以同时得到并发性和一致性。lock 与 latch在数据库中,lock 与 latch 斗可以被称为“锁”,但是两者有着截然不同的意义。latch 一般称为闩锁,因为其要求锁定的时间必须非常短,若持续的时间长,则

2021-11-10 19:30:50 1119

原创 InnoDB存储引擎:索引与算法

InnoDB存储引擎索引概述InnoDB支持以下几种常见的索引:B+ 树索引 (传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引;B+ 树索引并不能找到一个给定键值的具体行,能找到的只能是被查找数据行所在的页)全文索引 (将存储于数据库中的整本书或整篇文章中的任意内容信息查找出来的技术)哈希索引 (自适应,InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引,不能人为干预是否在一张表中生成哈希索引;哈希索引只能用于搜索等值查询 )B+ 树索引B+ 树索引的本质就

2021-11-09 09:55:25 1148

原创 InnoDB存储引擎:文件和表

文件构成MySQL数据库和InnoDB存储引擎表的各种类型文件:参数文件(告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数)日志文件(用来记录MySQL实例对某种条件做出响应时写入的文件)socket文件(当用UNIX域套接字方式进行连接时需要的文件)pid文件(MySQL实例的进程ID文件)MySQL表结构文件(用来存放MySQL表结构定义文件)存储引擎文件(存储了记录和索引等数据)表索引组织表根据主键顺序组织存放的表称为索引组织表。如果在创建表时没有显式

2021-11-02 16:33:50 281

原创 InnoDB存储引擎

1. InnoDB体系架构1.1 后台线程后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据;此外将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常的情况下InnoDB能够恢复到正常状态。后台线程有三种:Master Thread(核心线程;主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性)IO Thread(负责IO请求的回调处理)Purge Thread(回收已经使用并分配的 undo 页)1.2 内存1.2.1 缓冲池InnoDB存

2021-10-26 19:51:10 140

原创 MySQL体系结构和存储引擎

1. 数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。实例:MySQL数据库由后台线程以及一个共享内存区组成。(数据库实例才是真正用于操作数据库文件的)实例与数据库的关系通常是一一对应的,但是在集群情况下可能存在一个数据库被多个数据实例使用的情况。MySQL被设计为一个单进程多线程架构的数据库,也就是说MySQL数据库实例在系统上的表现就是一个进程。从概念上说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合;数据库实例是程序,是位于用户与操作系统之间的一

2021-10-25 16:50:58 132

原创 作业2:Triangles and Z-buffering

作业描述函数修改(1)寻找三角形的 bounding box:根据三角形的三个顶点坐标,找出最大 x 坐标、最小 x 坐标、最大 y 坐标、最小 y 坐标。需要注意的就是最小 x、y坐标需要比原数小;最大 x、y坐标需要比原数大。(2)点是否在三角形内:连接该点与三角形三个点形成一系列向量,然后判断叉乘的结果的正负是否一致。(3)MSAA 4X 深度:把一个点看成一个格子,判断里面4个小点是否落在三角形内,然后找到其中的最小 z 值,和帧缓冲中的 z 值进行比较替换。(4)MSAA 4X 颜色

2021-07-06 14:13:41 263

原创 Chapter 10: Surface Shading

为了使物体看起来有更大的体积,使用着色(shading)是非常有用的。Diffuse Shading一个物体随着视点的改变而不发生颜色的改变,这样的物体就叫做 Lambertian objects。对此物体进行着色的公式应该在世界坐标系下使用而不是在经过矩阵变换后的坐标系下使用。Lambertian Shading ModelLambertian objects 遵守 Lambertian 余弦定理:一个表面的颜色与表面法向量和光源方向向量成正比。一个表面能够更明亮或者更暗淡通过改变光源

2021-07-05 10:36:44 286

原创 Chapter 9: Signal Processing

在图形学中,需要经常处理连续函数,但是计算机不能够直接表示连续函数。一个最有用的表示连续函数的方法就是使用函数的样本(samples of the function):存储函数在许多不同的点的值然后在需要的时候重构这些值。Digital Audio: Sampling in 1D为了避免欠采样伪影,数字录音机对 ADC (analog-to-digital converter)的输入进行过滤,以去除可能导致问题的高频;为了消除重建伪影,数字音频播放器对来自 DAC (digital-to-analog

2021-06-23 09:56:01 410

原创 C++实现太阳系行星系统

基础知识做这个项目需要知道一些基础知识:OpenGLGLUTLinux 环境中安装 GLUT:sudo apt-get update && sudo apt-get install freeglut3 freeglut3-dev一个标准的 GLUT 程序结构如下所示:#include<>

2021-06-19 14:11:10 1678

原创 Chapter 16: Templates And Generic Programming

Exercises Section 16.1.1Ex16.1编译器用推断出的模板参数生成一个特定版本的函数,这个过程就叫做实例化。Ex16.2#include<iostream>#include<functional>using namespace std;template <typename T> int compare(const T &v1, const T &v2){ if (less<T>() (v1, v

2021-06-17 20:05:01 128

原创 Chapter 15:Object-Oriented Programming

Exercises Section 15.2.1Ex15.1一个类的 virtual 成员可以被其派生类重载Ex15.2被 protected 修饰的类成员可以被该类的继承类访问,而被 private 修饰的类成员则不行。Ex15.3class Quote{public: Quote() = default; Quote(const std::string &book, double sales_price): bookNo(book), price(sales_price) {

2021-06-15 20:09:08 152 4

原创 Chapter 8: The Graphics Pipeline

Rasterization光栅化:查找图像中被几何图元占据的所有像素的过程.故而以对象顺序渲染(object-order rendering)也叫做通过光栅化渲染,所需的操作序列,从对象开始到更新图像中的像素结束被称为图像管道(graphics pipeline)。基于不同的目标有两种不同的图像管道的例子:硬件管道:通过API(如 OpenGL 和 Direct3D)被用于支持交互渲染。软件管道:被用于电影制作,支持 API 如RenderMan。硬件管道必须运行的足够快才能对游戏、可视化和

2021-06-14 15:45:22 240

原创 Chapter 14: Overloaded Operations And Conversions

Exercises Section 14.1Ex14.1不同点:重载操作符必须至少有一个类类型或枚举类型的操作数;重载操作符不保证操作数的求值顺序。相同点:有相同的优先级和结合性,操作数的数目不变。Ex14.2class Sales_data{ friend ostream &operator<<(ostream &, const Sales_data &); friend istream &operator>>(istream &am

2021-06-11 16:39:09 135

原创 作业1:旋转与投影

作业描述本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点 v0(2.0, 0.0, −2.0),v1(0.0, 2.0, −2.0),v2(−2.0,0.0,−2.0),你需要将这三个点的坐标变换为屏幕坐标并在屏幕上绘制出对应的线框三角形 (在代码框架中,我们已经提供了 draw_triangle 函数,所以你只需要去构建变换矩阵即可)。简而言之,我们需要进行模型、视图、投影、视口等变换来将三角形显示在屏幕上。在提供的代码框架中,我们留下了模型变换和投影变换的部分给你去完成。VS2

2021-06-08 20:28:34 575 3

原创 作业0:虚拟机的使用

前言想学习计算机图形学,无意间知道了闫令琪教授。闫大神,高考状元,siggraph2019最佳博士论文,phd毕业直接拿到了ap,英伟达rtx的那个r和他有很大关系…加州大学圣芭芭拉分校助理教授,博士生导师,于2013年获清华大学学士学位,2018年获加州大学伯克利分校博士学位。他的主要研究方向是基于物理的真实感图形渲染及其相关的数学和物理理论,包括真实感材质观测和建模、离线和实时的光线追踪、信号的采样和重建、高效的光线传播和散射等等。闫令琪博士在高度细致的真实感渲染方面的研究开创了下一代计算机图形学的

2021-06-08 15:08:57 2119 4

原创 Chapter 13: Copy Control

Exercises Section 13.1.1Ex13.1copy constructor:第一个参数为类类型的引用,任何其他参数都有默认值。在如下情况下使用拷贝构造函数:用 = 定义变量传递一个对象作为参数给非引用类型函数的返回对象的类型为非引用返回类型用括号初始化数组元素或聚合类的成员Ex13.2如下传入的参数类型为非引用,调用此拷贝构造函数时则要求拷贝实参,而拷贝实参又要求调用拷贝构造函数,会陷入无限死循环Sales_data::Sales_data(Sales_data r

2021-06-07 12:29:54 152 1

原创 Chapter 7: Viewing

Viewing Transformations线框渲染(wireframe rendering):仅绘制对象边缘且较近的表面不会遮挡较远的表面的渲染。视图变换(viewing transformation):简单来说,就是将一个 3D 物体变成 2D 图像(将 3D 位置 (x, y, z)为坐标的物体变换到以一个个像素位置(x, y)来表示的屏幕坐标系之中。整个视图变换的过程可以分为如下几个过程:模型变换(modeling transformation):将物体调整到所需的位置。相机变换(ca

2021-06-03 10:49:50 239

原创 Chapter12: Dynamic Memory

Exercises Section 12.1.1Ex12.1// b1 和 b2 共享数据,故而 b1 和 b2 都有 4 个元素StrBlob b1;{ Strblob b2 = {"a", "an", "the"}; b1 = b2; b2.push_back("about");}Ex12.2class StrBlob {public: typedef std::vector<std::string>::size_type size_type; St

2021-05-31 19:14:07 189

原创 Chapter 6: Transformation Matricies

2D Linear Transformations可以使用一个 2 ✖ 2 矩阵对一个2维向量进行坐标变换:ScalingShearingRotationReflectionDecomposition of TransformationsSymmetric Eigenvalue Decomposition:A = RSRT如下为一个例子:Singular Value Decomposition:A = USVT奇异值分解博客可以看这篇:奇异值分解如下为一个例子:H

2021-05-28 14:48:21 170

原创 Chapter 4: Ray Tracing

计算机图形学最基本的一个任务就是对一个三维对象进行渲染(rendering):在二维平面上呈现三维图像。渲染分为两类:object-order rendering:依次考虑每个对象,并为每个对象找到并更新它影响的所有像素。image-order rendering:依次考虑每个像素,并为每个像素找到影响该像素的所有对象,然后计算像素值。光线追踪(ray tracing)是一种对3D场景进行渲染的 image-order rendering 类算法。The Basic Ray-Tracing A

2021-05-28 14:48:08 326

原创 Chapter 3: Raster Images

Raster DevicesOutput DevicesDisplayTransmissive: LCD (liquid crystal display)(液晶显示器)Emissive: LED (light-emitting diode) display (发光二极管显示器)Hardcopy DevicesBinary: ink-jet printer(喷墨打印机)2.Continuous tone:dye sublimation printer(热升华打印机)与显示器不

2021-05-28 14:47:53 123

原创 Chapter 2: Miscellaneous Math

Exercises1IEEE标准下 float 类型浮点数 32 位,1位符号位,8位指数位(总共28个数),23位尾数位(总共223个数)在图形学中正负无穷是有效数,而 NaN 是无效数正负无穷:指数阶码全为1,尾数部分为0NaN:指数阶码全为1,尾数部分不为0故而 the cardinality of the floats = 2 ✖ (28 ✖ 223 - (223 - 1))2在64位整数中都能找到32位整数的映射匹配值,但是在32位整数中不一定能找到64位整数的映射匹配值。3

2021-05-28 14:47:32 252

原创 Chapter 11: Associative Containers

Exercises Section 11.1Ex11.1map:关联容器,元素为键值对;map没有push_back;map的元素按照关键字来保存和访问vector:顺序容器,元素为内置类型或者自定义类型;可以对vector调用排序算法;vector是按照元素在容器的位置保存和访问Ex11.2list:在任何位置添加和删除元素vector:随机访问,只能在尾部添加元素deque:随机访问,只能在首尾添加元素map:键值对的集合set:关键字即为值Ex11.3#include<

2021-05-28 14:46:53 95

原创 Chapter 10: Generic Algorithms

Exercises Section 10.1Ex10.1#include<iostream>#include<algorithm>#include<vector>using namespace std;int main(){ int value; int number = 15; vector<int> vec; while (cin >> value) vec.push_back(

2021-05-27 17:02:32 139

原创 Chapter 9: Sequential Containers

Exercises Section 9.1Ex9.1a) list 可能涉及中间插入操作b) deque 涉及头部删除,尾部插入 c) vector 没有更好的选择Exercises Section 9.2Ex9.2list<deque<int>> lqint;Exercises Section 9.2.1Ex9.31. begin and end refer to elements of or one past the end of

2021-05-27 17:00:47 117

原创 Chapter 8: The I/O Library

Exercises Section 8.1.2Ex8.1 8.2#include<iostream>#include<string>std::istream &read_Write(std::istream &is){ std::string s; while (is >> s) std::cout << s << std::endl; is.clear(); return

2021-05-27 16:58:54 100

原创 Chapter 7: Classes

Exercises Section 7.1.1Ex7.1#include<iostream>#include<string>struct Sales_data { std::string bookNo; unsigned units_sold = 0; double revenue = 0.0;};int main(){ Sales_data total; if (std::cin >> total.bookNo

2021-05-27 16:57:38 97

原创 Chapter 6: Functions

Exercises Section 6.1Ex6.11. 参数是用来传递的,变量是通过定义得到的2. 在调用过程中,有时候需要输入参数,此时参数会有值,可以直接传入;变量只有在赋值后才能使用Ex6.2a)// origin code 返回类型不匹配int f() { string s; // ... return s;}// correctstring f() { string s; // ... return s;}b)// ori

2021-05-27 16:55:18 125

原创 Chapter 5: Statements

Exercises Section 5.1Ex5.1; // null statementEx5.2// block{}Exercises Section 5.2Ex5.4a) while (string::iterator iter != s.end()) { /*... */ } // 未初始化 iter 的值// 修改如下string::iterator iter = s.begin();while (iter != s.end()) { /*... */ }b)

2021-05-27 16:53:13 101

原创 Chapter 4: Expressions

Exercises Section 4.1.2Ex4.15 + 10 * 20 / 2 = 105Ex4.2a) *(vec.begin())b) (*(vec.begin())) + 1Exercises Section 4.2Ex4.4((12 / 3) * 4) + (5 * 15) + ((24 % 4) / 2) = 91Ex4.5a) -30 * 3 + 21 / 5 = -86b) -30 + 3 * 21 / 5 = -18c) 30 / 3 * 21 % 5

2021-05-27 16:51:37 167

原创 Chapter 3: Strings、Vectors And Arrays

Exercises Section 3.2.2Ex3.2// 一次读取一行#include<iostream>#include<string>using namespace std;int main(){ string line; while (getline(cin, line)) { cout << line << endl; } system("pause"); retu

2021-05-27 16:49:45 129

空空如也

空空如也

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

TA关注的人

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