作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有两个给定的 CGPoints A 和 B 以及另一个从 touchesEnded 事件中获得的 CGPoint C。我想确定这三个点是否位于我使用以下给定公式的直线上:对于点 A(x1, y1)、B(x2, y2) 和 C(x3, y3)x1(y2 - y3) + x2 (y3-y1) + x3(y1-y2) = 0但是这个公式根本没有帮助。有没有其他方法可以确定iOS中三点的共线性谢谢阿尼特姆
最佳答案
这不是真正的 iOS 问题,甚至不是编程问题 -- 这是算法问题。
我不确定您得到的算法是否正确——请参阅评论中给出的叉积答案,了解我认为的正确答案。您觉得您的公式在哪些方面没有帮助?顺便说一句,这是在代码中。 (在浏览器中输入的代码,未检查):
CGPoint p1;
CGPoint p2;
CGPoint p3;
const float closeEnough = 0.00001; // because floats rarely == 0
float v1 = p1.x * (p2.y - p3.y);
float v2 = p2.x * (p3.y - p1.y);
float v3 = p3.x * (p1.y - p2.y);
if (ABS(v1 + v2 + v3) < closeEnough)
{
// your algorithm is true
}
关于algorithm - iOS : How to determine whether three CGPoints lie in a straight line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791447/
我是一名优秀的程序员,十分优秀!