Lost person

蒟蒻一枚,只能写写小程序,有BUG欢迎指出!

益智小游戏:交叉线

这是用 C++ 写的益智小游戏“交叉线”(源码在底部)。

本程序的核心在于判断线段是否交叉,需要两种算法:快速排斥实验和跨立实验

包含十三个文件

  • Head.h : 初始化头文件
  • Cross Line.cpp : 程序开端文件
  • Game_Class.h : 游戏类头文件
  • Game.cpp : 游戏类文件
  • Begin.cpp : 初始界面类实现文件
  • Level.cpp : 关卡界面类实现文件
  • Play.cpp : 游戏界面类实现文件
  • Win.cpp : 过关界面类实现文件
  • About.cpp : 关于项目类实现文件
  • Point.cpp : 点的结构类实现文件
  • Line.cpp :  线的结构类实现文件
  • Button.cpp : 游戏按钮类实现文件
  • Button_Image.cpp : 游戏按钮类实现文件

包含算法

  • 快速排斥实验
  • 跨立实验

算法说明

以下是这些算法的简单说明:

1.快速排斥实验

即判断以线段两端点构成的矩形是否相交,相交则通过快速排斥实验,否则不通过,用于简单判断线段是否交叉,若通过,则进行跨立实验,否则则线段不交叉。

2.跨立实验

原理为矢量叉乘,在快速排斥实验通过的条件下排除了共线情况。

其他说明

  • 编译环境:VS2017 + EasyX_20200520(beta)。
  • 其他详见 github 中的 README.md。

执行效果

源码和 Release