我对Objective-c和cocoa开发相对较新,我很好奇是否有一种相对简单的方法来检测顺时针或逆时针鼠标/光标拖动?
答案 0 :(得分:3)
不确定可可是否有可能。您可以尝试自己解决这个问题,抓住起点,终点和一些中点坐标,根据这些点创建两个向量并找到三角形的有符号区域。有关数学的信息,请参阅this document(搜索“实施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坐标。