Я пытаюсь создать калькулятор графа и сделать его правильно отображенным на «холсте». Когда я загружаю файл HTML и записываю x, например, он начинается с верхнего левого угла и переходит в правый нижний угол. Поэтому проблема заключается в том, что он отображает график вверх дном, и он не включает отрицательные значения. Я знаю, что холст начинается с (0,0) в пиксельном значении в верхнем левом углу и заканчивается на (300,300) в нижнем правом углу. Я хочу, чтобы показать что-то вроде зеленого холста из этой ссылке: 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)) * шкала оказалась работоспособной. –