【发布时间】:2012-05-02 06:00:20
【问题描述】:
我需要有关 haskell 中的旋转矩阵的帮助
我有 2 种数据类型:
data RGBdata= RGB Int Int Int
data PBMfile= PBM Int Int [[RGBdata]]
我的函数接收:
spin :: PBMfile -> PBMfile
spin (PBM x y l) = (PBM x y ((transpose . reverse) l))
其中 'x' 和 'y' 分别是列数和行数(也许可以帮助完成该功能)。
例如:
(PBM 2 2 [[(RGB 0 255 255),(RGB 255 0 0)],[(RGB 255 255 255),(RGB 255 0 0)]])
我尝试使用反向和转置的组合向左旋转 90°,但图像结果错误。
我试试
spin :: PBMfile -> PBMfile
spin (PBM x y l) = (PBM x y ((reverse . transpose) l))
和
spin :: PBMfile -> PBMfile
spin (PBM x y l) = (PBM x y ((transpose . reverse) l))
和
spin :: PBMfile -> PBMfile
spin (PBM x y l) = (PBM x y (((map reverse) . transpose) l))
旋转矩阵但不起作用。
结果是这样的
【问题讨论】:
-
"图像结果错误"...但是错误在哪?尝试将您的问题表述为“我做了 X,期待 Y,但 Z 发生了。”。
-
我添加说明,帮助我们理解
-
不仅供我们了解,也供您测试您的功能。将kunwoo32的方案应用到自己的例子中,结果如何?
标签: haskell matrix rotation ppm