Ölçek değişmezliği nasıl kontrol edilir?


9

Birkaç şemayı bir tabloda bir araya getirmeye çalışıyorum. Bence buna "indeks baskısı" denir , fotoğrafçılık insanları aynı anda birçok fotoğrafı incelemek zorunda kaldıklarında bunu yaparlar. Her neyse, bu kod:

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

Beklediğim gibi çalışmıyor. Ama yavaş yavaş yaklaşalım. İlk olarak, burada tek bir döşemenin bir render:

bir

Şimdi hcatdört taşı birlikte verelim .

hcat

İkinci bir satır ekleyin: ( Ölçek değişmez özelliklerinin nasıl kalınlaştığını görün.)

tile2

Ve 4 sıra ile böyle görünüyor:

kiremit

Derhal!

Bana öyle geliyor ki, ok başları gibi ölçek değişmez özellikleri resmin alanı ile orantılı olarak ölçeklendiriliyor . Ancak bu durumda, bu özellikleri yeniden ölçeklendirmeden diyagramımı büyütmem gerekiyor. Bunu nasıl başarabilirim?

Yanıtlar:


5

Ölçüm birimleri üzerinde kullanım kılavuzu bölüm bakmak istediğiniz şeydir. Ok uçları gibi şeyler varsayılan olarak "normalleştirilmiş" birimlerde ölçülür ve bunlar her zaman tüm resmin boyutunun sabit bir oranı olur. Kullanım durumunuzu doğru anlarsam, bunun yerine muhtemelen yerel birimleri kullanmak istediğinizi düşünüyorum. Kullandığınız ok işlevinin astarlanmış varyantını kullanın ve ona benzer bir şey kaydetme seçenekleri verin

(with & headLength .~ local 0.1)

ancak hangi sayıda olursa olsun resimlerinizi istediğiniz gibi gösterir. Ok seçenekleri hakkında daha fazla bilgi için ok eğitimine bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.