三角形 Project 简介

项目参考 ingress 的玩法,通过占领地图上的点位生成三角形区域,然后比较三角形区域的大小。

不同的是,项目多了一条底层规则——双方的区域不可相交

项目具体可以分为两个板块:

  1. 三角形绘制;
  2. 面积计算。

三角形绘制

  1. Swift 无序排列组合
  2. SwiftUI 设置 macOS 窗口默认尺寸
  3. 判断一个平面内的两个三角形是否相交

面积计算

  1. Xcode 创建 C++ 工程
  2. 面积并

整体思路

  1. 我方每占领一个点位,判断我方总占领点位是否大于等于 3;
  2. 若是大于等于 3——以 4 个点位为例,将 4 个点位进行无序排列组合,共 4 个三角形:
    1. (1, 2, 3)
    2. (1, 2, 4)
    3. (1, 3, 4)
    4. (2, 3, 4)
  3. 遍历这 4 个三角形与敌方三角形的关系,以 (1, 2, 3) 为例:
    1. 首先判断 123 三个顶点是否在敌方三角形中。这里计算量小,如果顶点在敌方三角形中,说明该三角形区域一定会与敌方三角形相交;
    2. 若三个顶点均不在敌方任意的三角形中,再判断边 12、23、31 是否与敌方任意三角形的边相交。如果相交,说明该三角形区域一定会与敌方三角形相交;
  4. 绘制出我方不与敌方三角形区域相交的三角形,并计算面积并。

三角形 Project 简介
https://wonderhoi.com/2024/11/18/三角形-Project-简介/
作者
wonderhoi
发布于
2024年11月18日
许可协议