Tôi đang cố gắng đặt một vài sơ đồ lại với nhau trong một loại bảng. Tôi nghĩ rằng đây được gọi là "in chỉ mục" , những người chụp ảnh làm điều đó khi họ phải xem lại nhiều bức ảnh cùng một lúc. Dù sao, đây là mã:
main :: IO ()
main = mainWith @(Diagram B)
$ (tile . fmap renderOne) examples
renderOne :: AnyGraph -> Diagram B
renderOne (AnyGraph gr) = ...
tile :: [Diagram B] -> Diagram B
tile xs = let columns = (ceiling . sqrt . fromIntegral . length) xs
in (vcat . fmap hcat . List.chunksOf columns) xs
Nó không hoạt động như tôi mong đợi. Nhưng hãy để chúng tôi tiếp cận nó dần dần. Đầu tiên, đây là kết xuất của một ô duy nhất:
Bây giờ, chúng ta hãy hcat
bốn gạch với nhau.
Thêm một hàng thứ hai: (Xem cách tính năng bất biến tỷ lệ dày lên.)
Và đây là giao diện của nó với 4 hàng:
Ngoài tầm tay!
Dường như với tôi rằng các tính năng bất biến tỷ lệ, chẳng hạn như đầu mũi tên, được chia tỷ lệ theo diện tích của hình ảnh. Nhưng trong trường hợp này, tôi cần phát triển sơ đồ của mình mà không cần điều chỉnh lại các tính năng đó. Làm thế nào tôi có thể đạt được điều đó?