Qt中按逆时针对坐标进行排序
发布时间
阅读量:
阅读量
具体描述该问题如下:
通过切片操作后,获得了一组无序的交点数据,这些数据表现为一组离散且无序的坐标点。目标是将这些点连接起来形成轮廓线,并在qwtplot控件中进行展示;
网络上存在大量相关的算法实现,但几乎所有的内容都集中于凸多边形坐标点的排序方法。其中一个重要前提条件是这些点不能出现三点共线的情况,否则最终输出的结果将无法满足逆时针排序的要求。
http://www.cnblogs.com/dwdxdy/p/3230156.html 即为针对凸多边形排序的实现案例;
然而,在我所处理的坐标点中,必然存在三点共线的情形,因此上述排序方式显然无法适用。那么是否可以考虑利用斜率这一参数来进行处理呢?
关键在于,不应自行编写复杂的排序函数,而应充分利用现有的排序工具qSort;
以多边形的重心作为参考基准,计算各坐标点相对于重心的角度值,并依据角度大小对坐标进行排序。
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <cmath>
#include <QtAlgorithms> //数据排序
n
全部评论 (0)
还没有任何评论哟~
