一个能求解简单几何形状之间交点的控制台程序。
使用命令行参数intersect.exe -i input.txt -o output.txt
- 第 1 行:一个自然数 N >= 1,表示输入的几何图形的数目。
- 第 2 行至第 N + 1 行:每行描述一个几何图形。具体格式如下:
- 直线:
L <x1> <y1> <x2> <y2>
,表示通过点 (x1, y1) 和 (x2, y2) 的直线。输入保证给定两点不重合。 - 射线(新增需求):
R <x1> <y1> <x2> <y2>
,表示起点为 (x1, y1),且通过点 (x2, y2) 的射线。输入保证给定两点不重合。 - 线段(新增需求):
S <x1> <y1> <x2> <y2>
,表示以 (x1, y1) 和 (x2, y2) 为端点的线段。输入保证给定两点不重合。 - 圆(附加题):
C <x> <y> <r>
,表示以点 (x, y) 为中心,半径为 r 的圆。输入保证半径 r > 0。
- 直线:
所有直线参数均为整数,范围为 (-100000, 100000)。
保证交点个数有限个。
在bin/input.txt里输入;
共 1 行,输出平面中满足需求的点的数目。在bin/output.txt
1
L 0 0 1 1
0
4
C 1 0 2
C 2 2 1
C 3 -2 6
L -1 4 4 -1
6
PS:是使用VS2019编写的,拷贝出来上传的文件更改了文件夹名称以及应用程序的名称,直接使用除intersect.exe外的文件可能会发生错误(尤其指test中的文件,是在VS编写本机单元测试用的,拷贝出来时路径已经发生了变化),使用release模式,采用多线程M/T生成。
给定集合对象集合返回交点集合
新增集合对象返回交点集合
判断集合对象是否重复
操作符错误
有多余字符
缺少字符
数字格式错误
越界
直线重复
圆重复
直线、射线、线段非法
圆非法
直接运行intersect.exe即可进入ui界面。
同时该exe还支持之前作业的命令行操作,使用intersect.exe -i input.txt -o output.txt 即可求解交点并在文件中输出交点个数以及错误信息(也会弹出UI界面)。
若想像之前一样不使用ui,请使用文件intersect_noui.exe
图形化界面实现了绘制直线以及展示交点的功能,支持文件导入以及单独输入
UI的坐标系展示的是600*600,数值稍微大一写效果比较明显