如何检测顺时针/逆时针鼠标/光标拖动在可可(osx)



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

不确定在可可中是否可行。你可以试着自己解决这个问题,取起点,终点和某个中点坐标,根据这些点创建两个向量,然后求出三角形的带符号面积。有关计算,请参阅本文档(搜索"实施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
}

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

最新更新