Jiahonzheng's Blog

Jiahonzheng's Blog

BWU.

CloudGo-IO
项目地址:github.com/Jiahonzheng/Service-Computing 如何运行12345# 编译项目go build# 运行项目./CloudGo-IO.exe 项目目录本项目使用 Go Modules 构建,其结构目录及其说明如下。 1234567891011├── controller // 业务逻辑控制器├── db // 数据存储层├── dto // 定义业务数据传递对象├── errors // 定义业务逻辑错误├── model // 数据操作层├── public // 静态文件目录...
Golang GZIP 源码分析
GZIPGZIP 是 GNU Zip 的缩写,最早应用于 UNIX 系统的文件压缩,现常应用于改进 Web 应用程序性能,其压缩比率在 3 到 10 倍左右,可大大节省服务器的网络带宽,具体说明可参照 RFC 1952 文档。 Golang 在 compress/gzip 包中对 GZIP 进行了实现,下面我们对实现代码进行剖析。 压缩Golang 官方在 gzip.go 文件中实现了 GZIP 压缩算法。 核心原理GZIP 使用 DEFLATE 算法进行压缩,流程如下:对于要压缩的文件,首先使用 LZ77 算法的一个变种进行压缩,随后对得到的结果进行 Huffman 编码。 LZ77 ...
粒子系统
粒子系统本质粒子系统是模拟一些不确定、流动现象的技术,它采用许多形状简单且赋予生命的微小粒子作为基本元素来表示物体(一般由点或很小的多边形通过纹理贴图表示),表达物体的总体形态和特征的动态变化。人们经常使用粒子系统模拟的现象有火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉效果等等。 作为粒子系统,每个粒子运动一般具有简单的数学模型和它们之间具有自形似的运动过程。通过引入特定的随机分布作用于粒子,使得系统整体呈现复杂的现象,这是粒子系统的本质。 汽车尾气模拟设置粒子效果首先,我们导入 Standard Assets 素材包,实例化其中的 Car 预制,...
Node 绑定全局 TraceID
问题描述由于 Node.js 的单线程模型的限制,我们无法设置全局 traceid 来聚合请求,即实现输出日志与请求的绑定。如果不实现日志和请求的绑定,我们难以判断日志输出与对应用户请求的对应关系,这对线上问题排查带来了困难。 例如,在用户访问 retrieveOne API 时,其会调用 retrieveOneSub 函数,如果我们想在 retrieveOneSub 函数中输出当前请求对应的学生信息,是繁琐的。在 course-se 现有实现下,我们针对此问题的解决方法是: 方案 1:在调用 retrieveOneSub 函数的父函数,即 retrieveOne 内,对 paramD...
模型与动画
智能巡逻兵项目地址:github.com/Jiahonzheng/Unity-3D-Learning 在线演示:demo.jiahonzheng.cn/Patrol 演示视频:www.bilibili.com/video/av74087162/ 模型动画Player我们使用 FreeVoxelGirl 素材包来构建 Player 玩家人物模型,效果如下图所示。 我们为其添加了 Collider 和 Animator 组件,实现与其它游戏对象的碰撞检测、动画效果。以下是 Player 游戏对象的 Inspector 栏设置。 我们期待 Player 能够不同的游戏状态展现不同的游戏动画...
Go Agenda
GoOnline 项目地址:http://www.go-online.org.cn:8080/share/bmnqg0e76kvs669u23q0?secret=false GitHub 项目地址:github.com/Jiahonzheng/Service-Computing 业务需求 用户注册 注册新用户时,用户需设置一个唯一的用户名和一个密码。另外,还需登记邮箱及电话信息。 如果注册时提供的用户名已由其他用户使用,应反馈一个适当的出错信息;成功注册后,亦应反馈一个成功注册的信息。 用户登录 用户使用用户名和密码登录 Agenda 系统。 用户名和密码同时正确则登录成功并反...
物理系统与碰撞
游戏世界运动分为两大类:运动学、动力学。 运动学运用几何学的方法研究物体的运动: 不考虑外部力作用 将一个物体作为几何部件,抽象为质点运动模型 仅考虑物体位置、速度、角度等 具体实现方法:线性代数的矩阵变换 动力学以牛顿运动定律为基础,研究运动速度远小于光速的宏观物体。在游戏物理引擎中,主要是刚体动力学,主要包括质点系动力学的基本定理,由动量定理、动量矩定理、动能定理以及由这三个基本定理推导出来的一些定理。动量、动量矩和动能是描述质点、质点系和刚体运动的基本物理量。 考虑外部力对物体运动的影响 将一个物体当作刚体 考虑物体的重力、阻力、摩擦力、重量、形状以及弹性等 具体实现方式:物...
与游戏世界交互
游戏交互是玩家体验的基础,典型的游戏交互模式包括:角色扮演模型、多视角交互模型、团队交互模型、竞技交互模式、桌面与移动交互模式。 游戏创新方法,有很多层次: 交互装备创新:Nintendo 的《精灵宝可梦GO》将现实地图与GPS位置引入游戏,预示 AR 游戏时代的到来。 机制创新:探索游戏在新领域(医疗、公益、电商、社交)的应用,探索游戏与智能技术的结合,探索游戏玩法的创新(Flappy Bird、Temple Run),探索游戏题材的创新(如挑战各种极限和史上最难)。 以客户为中心的创新:“吃鸡”类游戏很流行,大家都在忙着开发和推广这类游戏,同类游戏,各游戏厂商 PK 什么:更为细腻...
游戏对象与图形基础
课程讲义地址:3D 游戏编程与设计 。 基本操作演练Fantasy Skybox FREE代码地址:github.com/Jiahonzheng/Unity-3D-Learning 。 在 Assets 栏目中,添加 Fantasy Skybox FREE package,设置 Skybox 。同时我们自定义 Terrain ,并为其添加不同的 Texture ,即可得到以下效果。 在下面的《牧师与魔鬼》游戏开发中,我们的 Skybox 、Terrain 预览图如下。 关于游戏对象的总结在 Unity 中,游戏对象大致可分为: 摄像头、光源等辅助对象 Cube、Sphere等游戏实...
理解矩阵的正定性与半正定性
定义若矩阵 $M$ 满足 x^TMx \geq 0其中 $x$ 是向量,则 $M$ 是半正定的。 几何意义在矩阵变换中,$Mx$ 代表对向量 $x$ 进行变换,我们假设变换后的向量为 $y$ ,记做 $y=Mx$ ,则根据上述定义,有 x^Ty \geq 0由两个向量的内积计算公式可推导出 \cos\angle(\overrightarrow{x},\overrightarrow{y})=\frac{x^Ty}{\|x\|\times\|y\|}若矩阵为半正定,则可推导出 \cos\angle(\overrightarrow{x},\overrightarrow{y})\geq0...
avatar
Jiahonzheng
Mr.Tseng