javascript - 如何测试一条线是否相对于另一条线顺时针旋转?

标签 javascript math geometry 2d line

在下面的代码中,我想确保一条线相对于另一条线顺时针旋转。我想要顺时针走的线有 Angular targetAngle

var dX = line.start.x - someOtherPoint.x;
var dY = line.start.y - someOtherPoint.y;
var lastAngle = Math.atan2(dY, dX);

var dX = line.start.x - line.end.x;
var dY = line.start.y - line.end.y;
var targetAngle = Math.atan2(dY, dX);

if (targetAngle < lastAngle) {
    // is going counter clockwise
} else {
    // is going clockwise
}

此代码在大多数情况下都有效,但当 targetAngle 低于 0 时就会中断。

最佳答案

我只是粗略地浏览了一下,但如果它仅在 targetAngle 低于零时中断,请添加如下检查:

if (targetAngle < 0)
    targetAngle = targetAngle + 360

这样你就永远不必处理负 Angular 。或者无论如何都可以按照这些思路做一些事情。

关于javascript - 如何测试一条线是否相对于另一条线顺时针旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429674/

相关文章:

c# - 透视 3D 对象

javascript - 在 Javascript 中访问内部函数变量

php - "Mapping"指向字符的箭头

javascript - nuxt 使用外部组件的问题

java - 测试输入的数字是否为三角数

c++ - 使用 CGAL 对流形进行三角剖分

python - N 维直线网格每个单元的质心

android - 在android中动画位图图像

javascript - webpack 热模块替换不起作用

javascript - 从上一个和下一个父 sibling 获取属性并维护顺序