그래프 계산기를 만들고 "캔버스"에 그래프를 올바르게 표시하려고합니다. 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)) * 눈금이 올바르게 작동하는 것으로 판명되었습니다. –