请帮助计算斜率的算法所以我们有一个笛卡尔坐标系。X 就在 Y 的顶部。有一条线穿过坐标中心。需要确定相对于轴 OX 的角度。
所以这就是我正在做的
- 某些功能转移到原点(顶行)和行尾
- 确定 dx, dy
- Hildren在atan2中放出两个参数(dy, dx)
- 以弧度返回结果。
但!我 atan2 只能在 180 度范围内工作。180 后又往另一个方向走。
所以问题是:找到角度的正确算法是什么?我需要采用 dy、dx 的大小吗?如何计算所有 360 度及更多的反正切?我很高兴听到特定的算法或代码注释。谢谢!
static inline CGFloat angleBetweenLinesInRadians2 (CGPoint line1Start, CGPoint line1End)
{
CGFloat dx = 0, dy = 0;
dx = line1End.x - line1Start.x; / / whether to do fabs (line1End.x - line1Start.x);
dy = line1End.y - line1Start.y;
CGFloat rads = atan2 (dy, dx); / / whether to do fabs (rads)
return rads;
}