몇 가지 다이어그램을 일종의 테이블에 모 으려고합니다. 나는 이것을 "인덱스 프린트" 라고 생각한다 . 사진 사람들은 한 번에 많은 사진을 검토해야 할 때 그렇게한다. 어쨌든, 이것은 코드입니다 :
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 행으로 보이는 방식입니다.
손에서!
화살표 헤드와 같은 스케일 불변 기능 은 그림 의 영역 에 비례하여 스케일링되는 것 같습니다 . 그러나이 경우 해당 기능의 크기를 조정하지 않고 다이어그램을 확장해야합니다. 어떻게하면 되나요?