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); }
public TagCloudElementsPreparer( ITagCloudLayouter tagCloudLayouter, IWordPainter wordPainter, PictureConfig config) { this.tagCloudLayouter = tagCloudLayouter; this.wordPainter = wordPainter; this.config = config; }
public TagCloudGenerator( PictureConfig pictureConfig, ITagCloudElementsPreparer tagCloudElementsPreparer, ITagCloudElementDrawer tagCloudElementDrawer) { this.pictureConfig = pictureConfig; this.tagCloudElementsPreparer = tagCloudElementsPreparer; this.tagCloudElementDrawer = tagCloudElementDrawer; }
public void SetUp() { rectangles = null; config = new PictureConfig { Size = new Size(0, 0) }; var spiral = new ArchimedeanSpiral(config); layouter = new CircularCloudLayouter(spiral, config); }
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)); } }
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; }
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); }
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); }
public IndexBasedWordPainter(PictureConfig pictureConfig) { this.pictureConfig = pictureConfig; }
public ConsoleSettingsProvider(Options options, PictureConfig pictureConfig) { this.options = options; this.pictureConfig = pictureConfig; }
public WordClassBasedWordPainter(PictureConfig pictureConfig) { this.pictureConfig = pictureConfig; }
public CircularCloudLayouter(ISpiral spiral, PictureConfig pictureConfig) { this.spiral = spiral; this.pictureConfig = pictureConfig; rectangles = new List <Rectangle>(); }
public ArchimedeanSpiral(PictureConfig pictureConfig) { this.pictureConfig = pictureConfig; }