Esempio n. 1
0
 public PdfController(string pdfFileName, PictureConfig config)
 {
     this.pdfFileName  = pdfFileName;
     this.picureConfig = config;
     tempPath          = Application.streamingAssetsPath + "/ImageCache/" + Path.GetFileNameWithoutExtension(this.pdfFileName);
     Directory.CreateDirectory(tempPath);
     pdfFile = PDFFile.Open(this.pdfFileName);
 }
Esempio n. 2
0
 public TagCloudElementsPreparer(
     ITagCloudLayouter tagCloudLayouter,
     IWordPainter wordPainter,
     PictureConfig config)
 {
     this.tagCloudLayouter = tagCloudLayouter;
     this.wordPainter      = wordPainter;
     this.config           = config;
 }
Esempio n. 3
0
 public TagCloudGenerator(
     PictureConfig pictureConfig,
     ITagCloudElementsPreparer tagCloudElementsPreparer,
     ITagCloudElementDrawer tagCloudElementDrawer)
 {
     this.pictureConfig            = pictureConfig;
     this.tagCloudElementsPreparer = tagCloudElementsPreparer;
     this.tagCloudElementDrawer    = tagCloudElementDrawer;
 }
Esempio n. 4
0
        public void SetUp()
        {
            rectangles = null;
            config     = new PictureConfig {
                Size = new Size(0, 0)
            };
            var spiral = new ArchimedeanSpiral(config);

            layouter = new CircularCloudLayouter(spiral, config);
        }
Esempio n. 5
0
        public IEnumerable <Word> GetSizedWords(IEnumerable <Word> words, PictureConfig pictureConfig)
        {
            var wordsList           = words.ToList();
            var maxWord             = wordsList.OrderByDescending(w => w.Count).First();
            var maxWordFontSize     = GetMaxWordFontSize(maxWord, wordsList.Count, pictureConfig);
            var fontSizeCoefficient = Math.Max(wordsList.Count / wordsCountCorrectionCoefficient, 1) * maxWordFontSize / maxWord.Count;

            foreach (var word in wordsList)
            {
                var fontSize = word.Count * fontSizeCoefficient;
                var size     = SizeUtils.GetWordBasedSize(word.Value, pictureConfig.FontFamily, fontSize);
                yield return(word.SetSize(size).SetFontSize(fontSize));
            }
        }
Esempio n. 6
0
 public void SetUp()
 {
     wordSizeSetter = new WordSizeSetter();
     word1          = new Word("кот").SetCount(1);
     word2          = new Word("пёс").SetCount(3);
     word3          = new Word("мышь").SetCount(5);
     words          = new List <Word> {
         word1, word2, word3
     };
     pictureConfig    = new PictureConfig();
     word1MinFontSize = 1f / 5;
     word2MinFontSize = 3f / 5;
     word3MinFontSize = 5f / 5;
 }
Esempio n. 7
0
        private float GetMaxWordFontSize(Word mostFrequentWord, int wordsCount, PictureConfig pictureConfig)
        {
            var currentSize = SizeUtils.GetWordBasedSize(
                mostFrequentWord.Value, pictureConfig.FontFamily, minFontSize);

            if (!SizeUtils.CanFillSizeWithSizes(
                    pictureConfig.Size, currentSize, wordsCount))
            {
                throw new ArgumentException(
                          $"Picture size {pictureConfig.Size.Width}x{pictureConfig.Size.Height} is too small for this word set");
            }

            var currentFontSize = minFontSize;

            while (SizeUtils.CanFillSizeWithSizes(pictureConfig.Size, currentSize, wordsCount) &&
                   2 * currentSize.Width < pictureConfig.Size.Width)
            {
                currentFontSize++;
                currentSize =
                    SizeUtils.GetWordBasedSize(mostFrequentWord.Value, pictureConfig.FontFamily, currentFontSize);
            }

            return(currentFontSize - 1);
        }
Esempio n. 8
0
        public void GetNextPoint_ShouldContainPointsFromSpiral_OnCorrespondingInput(int expectedPointShift)
        {
            const int   parameter     = 2;
            const float stepInRadians = (float)(Math.PI / 6);
            var         expectedPoint = GeometryUtils.ConvertPolarToIntegerCartesian(
                parameter * stepInRadians * expectedPointShift,
                stepInRadians * expectedPointShift);
            var config = new PictureConfig
            {
                Parameters = new LayouterParameters {
                    Parameter = parameter, StepInDegrees = 30
                }
            };

            var spiral = new ArchimedeanSpiral(config);

            for (var i = 0; i < expectedPointShift; i++)
            {
                spiral.GetNextPoint();
            }
            var pointFromSpiral = spiral.GetNextPoint();

            pointFromSpiral.Should().Be(expectedPoint);
        }
Esempio n. 9
0
 public IndexBasedWordPainter(PictureConfig pictureConfig)
 {
     this.pictureConfig = pictureConfig;
 }
Esempio n. 10
0
 public ConsoleSettingsProvider(Options options, PictureConfig pictureConfig)
 {
     this.options       = options;
     this.pictureConfig = pictureConfig;
 }
Esempio n. 11
0
 public WordClassBasedWordPainter(PictureConfig pictureConfig)
 {
     this.pictureConfig = pictureConfig;
 }
Esempio n. 12
0
 public CircularCloudLayouter(ISpiral spiral, PictureConfig pictureConfig)
 {
     this.spiral        = spiral;
     this.pictureConfig = pictureConfig;
     rectangles         = new List <Rectangle>();
 }
Esempio n. 13
0
 public ArchimedeanSpiral(PictureConfig pictureConfig)
 {
     this.pictureConfig = pictureConfig;
 }