如何找到距离斜率为m的给定点d距离的x y坐标?

时间:2016-10-02 04:16:35

标签: haskell

我们正在尝试定义一个Haskell函数,该函数给出坐标x,y给定起点(x0,y0),距起始坐标的距离,以及通过两个点的直线的斜率。有什么想法吗?

它可能会有

的签名

endPoint :: (Double, Double) -> double -> double -> (Double, Double)

如何在纸上执行此操作是使用距离公式(第二个点作为变量/未知数),然后为此新点提供x和y的某个比率,将该比率用作替换为点斜率公式,应该给出y和x中的一个,然后再将该值插入公式中,得到我们还没有的x和y。

this question,我们可以做距离公式,但我们如何处理替换?在Haskell有可能吗?

1 个答案:

答案 0 :(得分:2)

根据slope的定义,这个问题可以这样解决:

endPoint :: (Double, Double) -> Double -> Double -> (Double, Double)
endPoint (x0, y0) m d = (x0 + dx, y0 + dy)
  where theta = atan m
        dx = d * cos theta
        dy = d * sin theta

这是一个关于点(2,8)和(3,20)的例子:

*Main> endPoint (2,8) 12 (sqrt $ 12 * 12 + 1)
(3.000000000000001,20.0)