0

我对objective-c和可可开发比较陌生,我很好奇是否有一种相对简单的方法来检测顺时针或逆时针鼠标/光标拖动?

4

1 回答 1

3

不确定在可可中是否可行。你可以尝试自己解决这个问题,抓住起点、终点和一些中间点坐标,根据这些点创建两个向量,然后找到三角形的有符号区域。有关数学,请参阅本文档(搜索“实施 CCW”)。

这是一个简单的函数:

int ccw(CGPoint a, CGPoint b, CGPoint c)
{
    const int area2 = (b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x);
    if (area2 < 0) return -1; // clockwise
    if (area2 > 0) return +1; // counter-clockwise
    return 0; // collinear
}

编辑:请注意,您的 y 轴可能会从上到下指向,因此您可能需要在传递给函数之前切换结果的符号或转换点的 y 坐标。

于 2013-03-28T06:31:21.493 回答