我想做三国志

努力学习做游戏的小白

生成三角网 铜牌收录

基于逐点插入法的生成三角网,满足空圆特性,可以选择可视化,但是可视化用回车推动,因此生成随机点较少(避免回车按烂),同时查过资料确定三角网生成最外围不一定是凸包。

凸包算法可视化 铜牌收录

这个程序是实现可视化凸包算法的,帮助理解凸包算法,能够解决求一堆点所能围出的最大面积的问题。同时这个算法里判断一个点在一个向量的左边还是右边的方法对我有所启发。

按钮 铜牌收录

微软极简风按钮,个人设计 UI,瑕疵很多,胜在简洁方便,同时用命名空间把类和函数都封装起来,降低命名空间污染,当按钮尺寸较小而文字较多时,若按钮的 0.8 倍区域无法装下省略号的三个点则按钮变为只包含省略号三个点的按钮,若按钮 0.8 倍区域装得下两个字左右的文字则多余的文字用省略号代替,无文字时按钮可任意调节大小。

网络联机中国象棋

能够网络联机的中国象棋,提供了单机和联机两个模式,联机模式时有大厅,可以在大厅里选择一个房间进入,如果房间里有人则会亮起红色或黑色,大厅里还能显示在线人数,如果就你一个在线也可以不用浪费时间。进入房间后得等对面有人后才能准备,双方都准备好才能开始游戏,第一个进入房间的默认执红,第二个进入房间的执黑,一个房间只能进两个人。一局游戏要结束得看一方的将被吃完才能结束。由于个人对自由度比较追求,所以不必应将,也可以主动送死,当然,认输也可以进入下一局游戏。

双边滤波 银牌收录

将高斯滤波和相似点滤波组合起来就是双边滤波,这些滤波都是为了去除噪点,因为一张图片保存的时候可能会被损坏,出现几个黑点,通过滤波可以让这些点与周围的颜色逐渐接近。

魔方 银牌收录

三维魔方,左键拖动能从不同角度观察一个魔方,右键拖动能拧动魔方。拧动的方式有三种,以 x 轴为旋转轴、以 y 轴为旋转轴、以 z 轴为旋转轴。

一个正方体 银牌收录

在二维平面上显示三维图形很有难度,要做一个 3d 游戏首先要实现每个三维的点在二维平面上的投影,这个程序实现了通过转变投影面来看到不同角度正方体的样子。

爱的心脏线 铜牌收录

大一的时候听说了 r = a(1 - cosθ) 这个方程,当时想试着自己推出它的直角坐标系方程,可惜数学不好解不出来,现在感觉编程能力变强了,就试着用程序画出这个方程的图像。这个方程本质上就是一个圆绕着另一个圆转一周时动圆上某个定点的轨迹,看起来像心脏线,而且有数学家笛卡尔与爱徒的故事做背景,这个方程还染上了一丝浪漫的气氛。现在成功用代码把这个爱心方程画出来了。

围棋

下围棋的程序,实现了界面切换,选择路数,和围棋规则,也实现了点目功能,不过只有当所有死子都被提走才能点目,不然不准确