小林最近打算标一组车道线地图,他认真阅读了地图可视化工具的对应接口,发现只要自己提供一组有序的点(Node)的坐标,工具就会依次连线画出一条车道线。 每一组点的首尾两点也被称作连接点(Connector),相邻车道的连接点的连线被称为连接线,输入有一组有序的连接点,工具就会依次连线画出一条连接线。 其中,连接线总是与车道线在该处的切线方向垂直。 他还发现,车道线的方向(汽车行驶的方向)也和这组点的排序方式以及对应连接点的排序方式有关: 设Pt是车道线最后一个点的坐标,Ph是车道线第一个点的坐标,Qt是连接线最后一个点的坐标,Qh是连接线第一个点的坐标, 则需满足对应连线形成的两个向量的叉积大于0 小林现在手头有的是一系列无序的坐标点的世界坐标(x,y)以及世界坐标下的朝向角(alpha),他想写一个函数,能将这些数据重新排序,使其满足上述的条件, 能够被地图可视化工具接受,请你帮帮他吧。
输入描述:
每个测试用例的第一行包含一个正整数N和正整数M,N代表车道线的数量,M代表每一条车道线上Node的数量。接下来的N行,包含M个无序的坐标点(id, x, y, alpha),分别代表点的id,x坐标,y坐标,朝向角
输出描述:
对于每组测试用例,输出N+2行结果,前N行表示对应的车道线Node排序后的结果,后两行分别表示该组车道线首尾的连接线上Node排序后的结果,使其能被地图可视化工具成功绘制,只需输出id即可
示例1
输入
2 3
1 0 0 0 2 10 0 0 3 5 0 0
4 0 3.75 0 5 2 3.75 0 6 10 3.75 0
加载中...