2016-10-02 3 views
0

開始点(x0、y0)、開始座標からの距離、および両方の点を通る線の傾きを与えられた座標x、yを与えるハスケル関数を定義しようとしています。何か案は?斜面m上の任意の点から距離d離れたx y座標を見つける方法は?

これはおそらく、あなたが紙の上でこれを行うだろうか

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

の署名はその後、あなたにいくつかの比率を与える、(変数/未知数のように第二の点での)距離の公式を使用することである必要がありますこの新しい点のxとyの値を、yとxのいずれかを与える点勾配式への代入としてその比を使用し、その値を再び式に差し込んで、xとyを得るまだありません。

this questionから、私たちは距離計算式を行うことができますが、どのように代入を扱いますか?それはハスケルで可能ですか?

+5

これは数学の問題のように聞こえる。紙と鉛筆でそれを解決し、プログラムに結果を差し込み、適切な変数でパラメータ化します。 – dfeuer

+1

この問題には独自の解決策がありません。それには常に2つの解決策があります。あなたはどのようなものを使いたいのですか? – Cirdec

答えて

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) 
+0

これはまさに私が必要なものです、ありがとう! –

関連する問題