Sorting points clockwise requires a basepoint around which to sort - in Tim's code the origin is used, perhaps this offers an alternative:
(
(lambda ( ref )
(vl-sort ptlist
(function
(lambda ( a b ) (> (angle ref a) (angle ref b)))
)
)
)
(
(lambda ( n )
(mapcar '/ (apply 'mapcar (cons '+ ptlist)) (list n n n))
)
(float (length ptlist))
)
)
Or, to be certain of the angle, perhaps:
(
(lambda ( ref 2pi )
(vl-sort ptlist
(function
(lambda ( a b ) (> (2pi (angle ref a)) (2pi (angle ref b))))
)
)
)
(
(lambda ( n )
(mapcar '/ (apply 'mapcar (cons '+ ptlist)) (list n n n))
)
(float (length ptlist))
)
(lambda ( a ) (rem (+ pi pi a) (+ pi pi)))
)