【发布时间】:2014-07-29 11:30:51
【问题描述】:
问题标题可能有点混乱,想象一下:
在这张图中,我知道点 a 和 b 的位置(它们的 x 和 y 值)——虽然原点在左上角,所以 yb 例如在 137 和 ya 81 处。另外,我知道角度 <) a 的度数值,它定义了较亮的矩形旋转了多少(如果有用的话,我也知道另一个旋转了多少)。
所以,我想检查点 a 是在点 b 的假想线(轴,粉色线)的左侧还是右侧。你会怎么做?我知道这可能只是数学,但我迷路了。
var isleft = function(xb,yb, xa, ya, degree) {
if the point at xa, ya is left from the line starting at point xb, yb using d degrees return true;
};
我想我必须使用一个简单的线性函数来执行此操作,但我不知道如何处理度数,计算给定 y 值在该线上的相应坐标,因此不胜感激。
【问题讨论】:
-
我没有说任何向量,这就是我提供的所有值
-
问题不清楚...你的图片上的
degree在哪里? -
度数是指浅灰色矩形旋转的度数,我会更新图像
-
图表已更新。角度 a 表示矩形 2 旋转了多少,我不知道这是否感兴趣。我也知道矩形 1 旋转的角度,但我认为知道这些点就足够了
-
你需要找到原点
(yb, xb)的两个向量之间的角度,一个在矩形的边上,另一个通过(ya, xa)。您现在提供的信息就足够了。毫无疑问,有很多解决方案,但有些会比其他的更有效。顺便说一句,为什么坐标是y, x?笛卡尔坐标通常是按x, y排序的。
标签: javascript coordinate-systems