软件工程结对项目作业
4.计算模块接口的设计与实现过程 我的独到之处在于针对线段与射线的 新功能的实现基本都是对原有的直线相关函数的调用 ,计算交点时先将线段或射线转化为它们所在的直线,直线计算出交点后再判断该点是否在线段或射线上,极大地简化了代码逻辑。 因为考虑到封装的几何对象仅保存数据,不涉及方法,因此用struct封装几何对象 struct Point {//点 double x; double y; double length; bool operator ==(const Point& b) const noexcept { if (compareDouble(x - b.x) == 0 && compareDouble(y - b.y) == 0) return true; return false; } bool operator <(const Point& b) const noexcept { if (compareDouble(x - b.x) == 0 && compareDouble(y - b.y) < 0) return true; if (compareDouble(x - b.x) < 0) return true; return false; } }; typedef Point Vector; //向量 struct Line { //直线 Point p1, p2