算法实现可视化 π,能调节精度,理论上可以计算到任意位数,精度越高计算越慢,越高的精度需要辅助判断的位数就越多,屏幕大小可以调节。动画结束后可以鼠标拖动移动地图,滚轮缩放地图。
有两种投影方法,一种是平行投影,一种是透视投影。如果是平行投影观察一条线,可以直接把线条的每一个端点的位置求出来,然后判断这条线有没有某一部分出现在屏幕上再画,但是透视投影不能这么轻松地求出端点位置,因为是根据顶点距离相机的 Z 轴上的距离作为除数的,除数不能为 0 但是顶点距离相机的距离可以为 0,还有一种情况是顶点在相机背后,这距离一除朝向直接相反。为了解决这个问题,不能单纯根据顶点投影到摄像机屏幕上的坐标来画线,应该对线进行裁剪得到线在屏幕内的部分
魔尺小游戏,鼠标左键拖动能观察各个角度下的魔尺,鼠标左键点击能拧动魔尺块。24块魔尺块,可以拧成一颗球。
三维魔方,左键拖动能从不同角度观察一个魔方,右键拖动能拧动魔方。拧动的方式有三种,以 x 轴为旋转轴、以 y 轴为旋转轴、以 z 轴为旋转轴。
李洵爱心代码是去年一个小热门,不少大佬都复现过这个代码。去年我也写了一个,但是效果不尽人意,这次总算实现了还过得去的效果。来年情人节发给爱的人,有什么能比 3D 爱心还浪漫的呢?
光栅化渲染的 hello world 级别的程序。简述了光栅化渲染的概念和管线渲染的步骤,介绍了球面三角网生成方法,实现了渲染一颗 3D 球的功能。
实现边走地图边扩大的效果,将绘画操作作用在 IMAGE 上,再用 winapi 的缩放算法来缩放图片贴到屏幕上,能操作远大于屏幕像素的像素值,方便增加清晰度。
数独小游戏,可以自己设置要显示的数字的数量,也可以自定义数独游玩,自定义数独时可以给出当前数独的其中一个答案。
在二维平面上显示三维图形很有难度,要做一个 3d 游戏首先要实现每个三维的点在二维平面上的投影,这个程序实现了通过转变投影面来看到不同角度正方体的样子。