# Sorting according to clockwise point coordinates

• A+
Category：Languages

Given a list in Python containing 8 x, y coordinate values (all positive) of 4 points as `[x1, x2, x3, x4, y1, y2, y3, y4]` (`(xi, yi)` are x and y coordinates of ith point ),

How can I sort it such that new list `[a1, a2, a3, a4, b1, b2, b3, b4]` is such that coordinates `(ai, bi)` of 1 2 3 4 are clockwise in order with 1 closest to origin of xy plane, i.e. something like

``          2--------3           |        |           |        |           |        |           1--------4 ``

Points will roughly form a parallelogram.

Currently, I am thinking of finding point with least value of (x+y) as 1, then 2 by the point with least x in remaining coordinates, 3 by largest value of (x + y) and 4 as the remaining point

``# P4=8,10 P1=3,5   P2=8,5   P3=3,10 points=[8,3,8,3,10,5,5,10] k=0 #we know these numbers are extreme and data won't be bigger than these xmin=1000 xmax=-1000 ymin=1000 ymax=-1000 #finding min and max values of x and y for i in points:     if  k<4:         if (xmin>i): xmin=i         if (xmax<i): xmax=i             else:         if (ymin>i): ymin=i         if (ymax<i): ymax=i             k +=1  sortedlist=[xmin,xmin,xmax,xmax,ymin,ymax,ymax,ymin] print(sortedlist) ``

output:[3, 3, 8, 8, 5, 10, 10, 5] for other regions you need to change sortedlist line. if center is inside the box then it will require more condition controlling