コード例 #1
0
ファイル: TagCreator.cs プロジェクト: GangBoss/di
        public Result <Bitmap> DrawTag(ReaderSettings readerSettings, DrawerSettings drawerSettings,
                                       LayouterSettings layouterSettings)
        {
            var words = wordsProvider.GetObjectSource(readerSettings);

            if (!words.IsSuccess)
            {
                return(Result.Fail <Bitmap>(words.Error));
            }

            var frequency     = frequencyProvider.GetFrequencyDictionary(words.Value);
            var orderedSource = frequency.OrderByDescending(kv => kv.Value)
                                .Take(readerSettings.MaxObjectsCount).ToList();
            var sizableSource      = sizableProvider.GetSizableSource(orderedSource, drawerSettings);
            var drawableWordSource = drawableProvider.GetDrawableSource(sizableSource, layouterSettings);

            if (!drawableWordSource.IsSuccess)
            {
                return(Result.Fail <Bitmap>(drawableWordSource.Error));
            }

            var cloudInfo = new CloudInfo(drawableWordSource.Value);
            var bitmap    = drawer.GetBitmap(cloudInfo, drawerSettings);

            return(bitmap);
        }
コード例 #2
0
        public Result <Bitmap> GetBitmap(CloudInfo cloudInfo, DrawerSettings drawerSettings)
        {
            var heightCoefficient  = (float)cloudInfo.SizeOfCloud.Height / (drawerSettings.Height - Border);
            var widthCoefficient   = (float)cloudInfo.SizeOfCloud.Width / (drawerSettings.Width - Border);
            var biggestCoefficient = Math.Max(heightCoefficient, widthCoefficient);

            var bitmap = PrepareBitmap(drawerSettings);

            if (!bitmap.IsSuccess)
            {
                return(bitmap);
            }

            var graphics = PrepareGraphics(bitmap.Value, cloudInfo, drawerSettings.BackgroundColor, biggestCoefficient);

            foreach (var drawable in cloudInfo.DrawableSource)
            {
                using var currentFont = new Font(drawerSettings.TextFont.FontFamily,
                                                 (int)Math.Round(drawable.Place.Height / (biggestCoefficient * 2)));
                var currentPlace = new PointF(drawable.Place.X / biggestCoefficient,
                                              drawable.Place.Y / biggestCoefficient);
                graphics.DrawString(drawable.Value, currentFont, drawerSettings.TextBrush,
                                    currentPlace);
            }

            return(bitmap);
        }
コード例 #3
0
 public List <SizableWord> GetSizableSource(List <KeyValuePair <string, int> > wordFrequency,
                                            DrawerSettings settings)
 {
     return(wordFrequency.Select(kv =>
                                 new SizableWord(kv.Key,
                                                 sizableSelector.GeSelector(settings.SizeSelector).GetSize(kv.Key, kv.Value, settings)))
            .Where(sizable => sizable.DrawSize.Width > 0 && sizable.DrawSize.Height > 0).ToList());
 }
コード例 #4
0
ファイル: DirectXFormDrawer.cs プロジェクト: DmitryZyr/CVARC
		/// <summary>
		/// Создает новый Drawer c использованием переданных сцены, настроек
		/// и функции-инициализатора для окна, в которое следует отрисовывать
		/// </summary>
		/// <param name="scene">Сцена, которую следует отрисовывать</param>
		/// <param name="settings">Настройки</param>
		public DirectXFormDrawer(DirectXScene scene, DrawerSettings settings)
		{
			_settings = settings;
			_scene = scene;
			_effect = scene.Effect;
			_deviceWorker = scene.DeviceWorker;
			//TODO! Return camera controls.
			/*if(Settings.ShowControls)
				Control.Controls.Add(new CameraSwitchControl(_camera));*/
		}
コード例 #5
0
 public ApplicationSettings(ImageExt imageExt, ReaderSettings readerSettings,
                            LayouterSettings layouterSettings,
                            DrawerSettings drawerSettings, string savePath)
 {
     ImageExt         = imageExt;
     ReaderSettings   = readerSettings;
     LayouterSettings = layouterSettings;
     DrawerSettings   = drawerSettings;
     SavePath         = savePath;
 }
コード例 #6
0
ファイル: DrawerTests.cs プロジェクト: CaptainBelyash/fp
 public void SetUp()
 {
     settings     = new DrawerSettings();
     fakeLayouter = A.Fake <IRectangleLayouter>();
     A.CallTo(fakeLayouter)
     .Where(call => call.Method.Name == "PutNextRectangle")
     .WithReturnType <Result <Rectangle> >()
     .Returns(new Rectangle(0, 0, 50, 50));
     tags = new[] { new TagInfo("string", 0.5), new TagInfo("otherString", 0.2) };
 }
コード例 #7
0
        /// <summary>
        /// Создает новый Drawer c использованием переданных сцены, настроек
        /// и функции-инициализатора для окна, в которое следует отрисовывать
        /// </summary>
        /// <param name="scene">Сцена, которую следует отрисовывать</param>
        /// <param name="settings">Настройки</param>
        public DirectXFormDrawer(DirectXScene scene, DrawerSettings settings)
        {
            _settings     = settings;
            _scene        = scene;
            _effect       = scene.Effect;
            _deviceWorker = scene.DeviceWorker;
            //TODO! Return camera controls.

            /*if(Settings.ShowControls)
             *      Control.Controls.Add(new CameraSwitchControl(_camera));*/
        }
コード例 #8
0
        public CommandLineInterface(string[] args)
        {
            var arguments = Parser.Default.ParseArguments <CLIArguments>(args).Value;

            LayouterSettings = new CircularLayouterSettings(
                new Point(arguments.CenterX, arguments.CenterY),
                arguments.SpiralPitch,
                arguments.SpiralStep);

            FileReaderSettings = new FileReaderSettings(arguments.FilePath);

            DrawerSettings = new DrawerSettings();
            MakeDrawerSettings(arguments);

            SaverSettings = new SaverSettings(arguments.OutputPath, arguments.OutputFileName, arguments.Extension);

            GramParts   = arguments.GramParts.ToArray();
            BoringWords = arguments.BoringWords.ToArray();
        }
コード例 #9
0
ファイル: TagDrawer.cs プロジェクト: CaptainBelyash/fp
 public TagDrawer(DrawerSettings settings, IRectangleLayouter layouter)
 {
     this.layouter = layouter;
     this.settings = settings;
 }
コード例 #10
0
ファイル: LogSizeSelector.cs プロジェクト: GangBoss/di
 public Size GetSize(string word, int count, DrawerSettings settings)
 {
     return((Graphics.MeasureString(word, settings.TextFont) * (MathF.Log(count) + 1)).ToSize());
 }
コード例 #11
0
ファイル: WinformsDrawer.cs プロジェクト: DmitryZyr/CVARC
		/// <summary>
		/// Создает Drawer с использованием заданных настроек и корневого тела
		/// </summary>
		/// <param name="root">Корень дерева тел</param>
		/// <param name="settings">Настройки</param>
		public WinformsDrawer(Body root, DrawerSettings settings)
		{
			_settings = settings;
			_root = root;
		}
コード例 #12
0
ファイル: WinformsDrawer.cs プロジェクト: air-labs/CVARC
 /// <summary>
 /// Создает Drawer с использованием заданных настроек и корневого тела
 /// </summary>
 /// <param name="root">Корень дерева тел</param>
 /// <param name="settings">Настройки</param>
 public WinformsDrawer(Body root, DrawerSettings settings)
 {
     _settings = settings;
     _root     = root;
 }
コード例 #13
0
 private Result <Bitmap> PrepareBitmap(DrawerSettings settings)
 {
     width  = settings.Width;
     height = settings.Height;
     return(Result.Of(() => new Bitmap(width, height)));
 }