常见图像处理的演示 银牌收录

这个程序包括了一些常见图像处理的演示,并提供了一些按钮来改变参数。有旋转,均衡化,分割,填充,锐化,模糊,滤波,变换和一个分裂图小游戏。

万有引力运动 银牌收录

这次是模拟二维物体运动的物理作业。原本是用 matlib 模拟三维星体运动的。用 C++只好降成二维了(二向箔出击),因为它只有 X,Y 轴,转三维好像要用旋转函数和一些矩阵转换,我想想就算啦。

宝石迷阵 银牌收录

宝石迷阵,三消类游戏是十分经典的游戏。也是除了矩形,我设计了一个六边形格子。这个程序没用图片素材,换成系统自带的字符映射表中的图案,省去了大量绘制棋子样式的时间。

四消水果 银牌收录

四消水果,四个(以上)连一起的一样的图案会消除。这个游戏讲究移动和布局,属于是在运动中消灭图案,时刻要保持道路的通畅,还要合理的运用新出现的图案。

阿基米德螺旋线 银牌收录

最初是想用阿基米德螺旋线实现可视化 π,于是学习了泰勒展开计算 π 的过程,同理举一反三实现了计算 e 的过程,学习了画阿基米德螺旋线。后来又实现了一种“走路的直线”,来可视化有理数。本程序糅合了所有功能,实现用螺旋线和行走线,来可视化无理数 π,无理数 e 和有理数。

嵌套井字棋 银牌收录

嵌套井字棋,我也叫他大井字棋。小九宫格的胜利条件同井字棋规则一致,一旦达成,这个小九宫格归达成者。大九宫格的胜利条件就是三个同色小九宫相连,一旦达成,即为胜利。平局后手赢。

施泰纳球极平面射影 银牌收录

同心圆套内切圆的实现,也是施泰纳球极平面射影原理的可视化实践。参考视频用了立体投影一词。我在视频中理解了原理,于是自己推公式才能还原出来。

三维旋转球 源码+注释+简单讲解 银牌收录

前言

关于三维的东西远不止这么点内容,也不是我几句话可以讲完的,需要大家扎扎实实的看图形学。不能好高骛远,要扎实、系统的学习。还要注意相关数学知识的学习。

图形学一般是借助矩阵实现的各种转换。我在这篇文章里尽量不用图形学的术语,也不做优化、不加额外功能,只用最简单的三角函数实现,希望大家能从道理上看的清楚明白。

简单讲解

关于一个点,一定要有一个三维坐标,程序中的结构体 POINT3D 就是。

点的初始化由函数 InitPoint() 实现,该函数产生了 n 个半径为 1 的点。

点的运动,是在三维坐标内运动的,包括平移、缩放、旋转等。这个程序只涉及到了旋转,定义了三个方法:RotateX()、RotateY()、RotateZ(),分别实现绕三个轴旋转;可以使用矩阵运算来实现,也可以直接这样算出来。

最后需要将三维世界呈现出来,这里用到一个术语:投影,就是将三维的画面投影到二维上。投影有多种方法,这个球体用的单点透视,因此还需要一个“观察点”,程序中用 viewZ 定义,观

...

四叉树碰撞优化 银牌收录

得闲花点时间写了一下四叉树碰撞优化的 Demo,设置一些参数时候又想着自己写一下 GUI 的东西,于是就动手写了一下,结合以前学习的一些设计模式,自己也算实践了一下吧;可以给一些新手提供一个参考的样例吧。但是目前我刚开发好,写的过程中没有形成很好的文档,注释也不是特别多,要是后面有人感兴趣的话我会在我的 gitee 仓库放入一些实现想法。