-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Брозовский Максим #11
base: master
Are you sure you want to change the base?
Conversation
private const double OptimalRadius = 1; | ||
private const double OptimalAngleOffset = 0.5; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно вынести в какой-нибудь класс конфигурации для настройки layouter'a и передавать в него как настройки
public static class EnumerableExtensions | ||
{ | ||
public static string Join(this IEnumerable<string> words, string separator = "") => string.Join(separator, words); | ||
|
||
public static IEnumerable<string> ToLower(this IEnumerable<string> words) => words.Select(w => w.ToLower()); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Как будто лишняя оболочка уже существующих методов
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Убрал
|
||
namespace TagCloud.Visualization; | ||
|
||
public class TagCloudImageGenerator(SKSizeI Size, SKTypeface fontFamily ,SKColor background, SKColor foreground) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тоже кажется прикольно было бы иметь конфигурацию
Пока всё норм, но давай постараемся сделать максимально настраиваемый генератор, то есть сделать программу такой, чтобы можно было довольно просто ей пользоваться, но при этом можно было создавать очень разные "облака". К примеру, на вход у меня есть файл с каким-то текстом и я хочу создать облако тегов. Я могу просто закинуть файл и получить результат, а могу точечно настроить: указать шрифт, размер текста, размер картинки, исключить местоимения из слов и т.п. штуки. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Действительно сильно получилось, молодец)
TagCloudClient/Program.cs
Outdated
builder | ||
.RegisterType<FileReader>().As<IWordsReader>() | ||
.OnlyIf(_ => Path.GetExtension(settings.FilePath) == ".txt"); | ||
|
||
builder | ||
.RegisterType<CsvFileReader>().As<IWordsReader>() | ||
.OnlyIf(_ => Path.GetExtension(settings.FilePath) == ".csv"); | ||
|
||
builder | ||
.RegisterType<WordFileReader>().As<IWordsReader>() | ||
.OnlyIf(_ => Path.GetExtension(settings.FilePath) == ".docx"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Точно не уверен, но кажется если взять файл другого расширения, то всё развалится так как не будет ни одного зарегистрированного IWordsReader
"../../../../TagCloud/WordsFilter/Dictionaries/EnUS.dic", | ||
"../../../../TagCloud/WordsFilter/Dictionaries/EnUS.aff"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай вынесем в пути относительно проекта
TagCloudClient/Options.cs
Outdated
Required = false, | ||
HelpText = "Words font")] | ||
public string FontFamilyName { get; set; } = "Arial"; | ||
public SKTypeface FontFamily => SKTypeface.FromFamilyName(FontFamilyName); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FromFamilyName насколько мне известно может вернуть null, давай как-то сделаем чтобы если шрифт оказался некорректным, чтобы это не ломало работу программы, а просто подставлялся дефолтный
TagCloudClient/Program.cs
Outdated
builder.RegisterType<TagCloudGenerator>().AsSelf(); | ||
builder.RegisterType<TagCloudBitmapGenerator>().AsSelf(); | ||
builder.RegisterType<TagCloudSaver>().AsSelf(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай завяжемся на интерфейсах, а не реализациях
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Как минимум для TagCloudSaver
@ksamnole