我对 Objective-C 和 Cocoa 开发比较陌生,我很好奇是否有一种相对简单的方法来检测顺时针或逆时针鼠标/光标拖动?
最佳答案
不确定 cocoa 中是否可能。您可以尝试自己解决这个问题,获取起点、终点和一些中间点坐标,根据这些点创建两个向量并找到三角形的有符号面积。对于数学,请参阅 this document (搜索“实现特定常规武器公约”)。
这是一个简单的函数:
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 坐标。
关于objective-c - 如何在 cocoa (osx)中检测顺时针/逆时针鼠标/光标拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15668847/