检测最短距离的圆中2个点之间的移动方向(顺时针或逆时针)

时间:2014-02-15 17:33:09

标签: direction

我遇到问题:n数组int中存储的圈子中有(0..n-1)个里程碑。鉴于两个里程碑xy,我需要确定它们之间的最短距离;顺时针或逆时针。

下面是一个包含图片的链接,该图片说明了n = 20的问题示例(很抱歉,我无法直接上传图片,因为我没有足够的声誉)。

http://upanh.biz/images/2014/02/16/circle.png

假设:从18岁开始 - > 1:最短距离= 3,方向:顺时针。

提前感谢您,非常欢迎您的评论。

1 个答案:

答案 0 :(得分:0)

应该非常简单:

counterDistance = x < y ? (N - y + x) : (x - y); 
direction = counterDistance < N / 2 ? "counter" : "clock";