我需要有关 haskell 中的旋转或自旋矩阵的帮助
我有一个数据类型 RGB 的列表列表:
data RGBdata= RGB Int Int Int
m = [[(RGB 0 255 255),(RGB 255 0 0)],[(RGB 255 255 255),(RGB 255 0 0)]]
为了更好看,我有一个 2x2 矩阵:
m = [[(RGB 1 2 3),(RGB 4 5 6)],
[(RGB 7 8 9),(RGB 1 5 9)]]
我需要 90° 旋转,我的意思是:
m = [[(RGB 7 8 9),(RGB 1 2 3)]
[(RGB 1 5 9),(RGB 4 5 6)]]
扩展我的解释,我有 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”分别是列数和行数(也许可以帮助执行该功能)。
我试着用你的答案向左旋转 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))
旋转图像但不起作用。
结果类似于