按顺时针顺序对点排序?
给定一个x,y点数组,如何按顺时针顺序(在它们的整体平均中心点附近)对该数组的点排序?我的目标是将这些点传递给线创建函数,以得到看起来很“实心”的东西,尽可能凸,没有线相交。 对于它的价值,我正在使用Lua,但任何伪代码都将不胜感激。 更新:作为参考,这是基于Ciamej出色答案的Lua代码(忽略我的“ app”前缀): function appSortPointsClockwise(points) local centerPoint = appGetCenterPointOfPoints(points) app.pointsCenterPoint = centerPoint table.sort(points, appGetIsLess) return points end function appGetIsLess(a, b) local center = app.pointsCenterPoint if a.x >= 0 and b.x < 0 then return true elseif a.x == 0 and b.x == 0 then return a.y > b.y end …