Я намагаюся скласти кілька діаграм разом у якусь таблицю. Я думаю, що це називається "покажчик друку" , люди фотографії роблять це, коли їм доводиться перевіряти багато фотографій одночасно. У всякому разі, це код:
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
Це не працює, як я очікував. Але давайте підходимо до цього поступово. По-перше, ось візуалізація однієї плитки:
Тепер давайте hcat
чотири плитки разом.
Додайте другий рядок: (Дивіться, як функції інваріантної шкали потовщуються.)
Ось як це виглядає з 4 рядів:
З рук!
Мені здається, що інваріантні риси масштабу, такі як голови стрілок, масштабуються пропорційно площі зображення. Але в цьому випадку мені потрібно виростити свою діаграму без повторного масштабування цих функцій. Як я можу цього досягти?