如果我有斜边的长度及其角度,我如何找到相邻的和相反的?
我用JavaScript编写这个,我只是想找到斜边使用长度和角度结束的屏幕坐标(x / y)。 所以,另外,我需要知道如何从笛卡尔坐标转换为屏幕坐标。
对不起,这可能是一个非常愚蠢的问题。
如果我不清楚,这是草图:
这样的事情:
function getLineEndCoords(originX, originY, hypotenuse, angle){
// Probably something to do with tangents and cosines.
return [x,y]
}
此外,如果有人知道任何好的JS库,这些东西(等轴测图,显示相关的数学)会很方便。
答案 0 :(得分:4)
使用soh cah toa:
sin(A) = o/h
cos(A) = a/h
因此:
x = hypotenuse*sin(angle) + origionX
y = hypotenuse*cos(angle) + origionY
通常更容易记住,一个轴是角度的正弦乘以长度,另一个是角度的余弦乘以长度。
编辑:
抱歉,我忘了添加原点。
答案 1 :(得分:3)
你走了:
function getLineEndCoords(originX, originY, hypotenuse, angle){
return [originX+Math.cos(angle)*hypotenuse,originY-Math.sin(angle)*hypotenuse];
}
上面的代码具有相对于右x轴的角度(如草图中所示)。例如,角度0将是时钟上的数字3。以弧度(90度)为单位的角度PI / 2将是12点钟。该函数还将坐标作为屏幕坐标返回,其中Y在您下降时增加,而不是在笛卡尔平面上增加。
请注意,javascript三角函数只接受弧度,而不接受度数。你的角度参数必须是弧度。以下是从度数转换为弧度的代码:
function deg2rad(deg){
return deg*Math.PI/180;
}