グラフの電卓を作成し、グラフを「キャンバス」に正しく表示しようとしています。 HTMLファイルを読み込んでxと書くと、左上隅から開始し、右下隅に移動します。だから問題は、グラフを上下逆に表示し、負の値を含まないことです。 私は、キャンバスが左上隅のピクセル値で(0,0)から始まり、右下隅に(300,300)で終わることを知っています。あなたはおそらく、2Dでの作業に慣れているhttp://www.cse.chalmers.se/edu/course/TDA555/lab4.html私のキャンバスをグラフに正しく表示させる
points :: Expr -> Double -> (Int,Int) -> [Point]
points exp scale (x, y) = [(x, realToPix (eval exp (pixToReal x))) | x<-[0..(fromIntegral canWidth)] ]
where
pixToReal :: Double -> Double --converts a pixel x-coordinate to a real x-coordinate
pixToReal x = x * 0.02
realToPix :: Double -> Double --converts a real y-coordinate to a pixel y-coordinate
realToPix y = y/0.02
ありがとうございます。 y軸は正しく移動しましたが、x = x * 0.02 -150を適用すると、y軸は中心にずれることなく消えます。 –
ああ、私の間違い。それを指摘してくれてありがとう。私はポストから編集しました。 –
問題はありません、助けてくれてありがとう。 x =(x - ((fromIntegral y)/ 2))*スケールが正しく機能することが判明しました。 –