从一个点获得斜率,以度为单位获取角度

时间:2009-11-30 17:55:48

标签: javascript math line trigonometry angle

在javascript中,我试图绘制一条与用户定义角度相符的线。

基本上,我有一个点(x,y)和一个角度来创建下一个点。线的长度需要为10px。

让我们说开始的点是(180,200)...如果我给它角度“A”并且(我猜)斜边是10,我的等式是什么来得到X和Y是斜坡?

感谢您的帮助!

4 个答案:

答案 0 :(得分:7)

好吧,从基本的三角学......

sin A°= Y / 10

cos A°= X / 10

10 ^ 2 = Y ^ 2 + X ^ 2

答案 1 :(得分:3)

正如多伊尔先生所暗示的那样,数学并不那么难,但是:

1)确保你清楚角度的参考内容以及坐标的方向;大多数简单的触发器假设你正在处理传统的笛卡尔坐标,x向右增加,y增加页面,而大多数绘图api的页面向下增加,x增加到右边。

2)确保你理解数学函数是否需要度数或弧度,并为它们提供适当的参数。

答案 2 :(得分:2)

假设H =斜边(在你的例子中是10),这是你斜率的公式:

Y2 = H(Sin(A)) + Y1
   = 10(Sin(A)) + 200

X2 = Sqrt((H^2)-(Y2^2)) + X1
   = Sqrt(100 - (Y2^2)) + 180

所以现在你已经

(180, 200) -> (X2, Y2)

其中X2,Y2将根据A和H的值而变化

要检查我们的计算 - 可以使用斜率方程计算A(由用户输入),将X1,X2,Y1和Y2值替换为原始输入和结果输出。

A = InvTan((Y2 - Y1) / (X2 - X1))
  = InvTan((Y2 - 200) / (X2 - 180))

答案 3 :(得分:1)

查看问题的更好方法是使用向量:

alt text
(来源:equationsheet.com

你也可以这样写矢量:

alt text
(来源:equationsheet.com

其中

alt text
(来源:equationsheet.com

将第一个设置为等于第二个让我们在给定起点,角度和距离的情况下求解终点:

alt text
(来源:equationsheet.com

alt text
(来源:equationsheet.com