Форум программистов, компьютерный форум, киберфорум
Простой векторный графический редактор
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
"Орешек знаний тверд, Но все же мы не привыкли отступать..." (с)
Простой векторный графический редактор Простой векторный графический редактор с нуля и шаг за шагом
Старый
Шаг 8 (Рефакторинг ГВР) Версия 0.2
Запись от ashsvis размещена 15.11.2018 в 14:12 / От простого к сложному
Показов 7740 Комментарии 2

Приветствую вас, уважаемые читатели!

Вчера пропустил день публикации, думал, сделаю перерывчег... Но доводить до ума программу надо, тем более что на вопиющие недостатки кода указали мне. Спасибо!

Первым делом убрал это страшное по всему коду:
C#
1
2
3
4
if (kind == DrawingKind.Polygon)
    graphics.DrawPolygon(pen, points); // рисование контура
else
    graphics.DrawLines(pen, points);
[отступ]Действительно,...
Аватар для ashsvis
Старый
Рейтинг: 4.50. Голосов: 2.
Шаг 7 (графический векторный редактор) Версия 0.1
Запись от ashsvis размещена 13.11.2018 в 12:18 / От простого к сложному
Показов 8022 Комментарии 4

Сегодня хороший день, господа программисты, ибо я выпускаю в первое плавание мою лодку,
под названием "Простой векторный графический редактор".

Пока это только корпус, никаких мачт, рей и такелажа, но корпус, я надеюсь, достаточно прочный, чтобы
сразу не...
Аватар для ashsvis
Старый
Шаг 6 (графический векторный редактор). Изменение формы фигуры путём перетаскивания узловых маркеров
Запись от ashsvis размещена 12.11.2018 в 19:42 / От простого к сложному
Показов 4710 Комментарии 8

Приветствую вас, уважаемые изучатели моих способов строительства простого графического векторного редактора.

В этой статье рассмотрим работу с маркерами изменения узлов фигуры (точек, по которым рисуется фигура) и об алгоритме
выбора узлов, добавления новых узлов и удалении существующих...
Аватар для ashsvis
Старый
Шаг 5 (графический векторный редактор). Изменение размеров фигур
Запись от ashsvis размещена 11.11.2018 в 19:41 / От простого к сложному
Показов 3556 Комментарии 0

Продолжаем, мои верные читатели, строительство простого векторного графического редактора.
Сегодня у нас на очереди рассмотрение темы:

3. Изменение размеров фигур.

Размеры фигур будем изменять при помощи маркеров размеров, которые появляются вокруг фигуры, когда мы выбираем её
мышкой. Всего размерных маркеров восемь. Четыре
...
Аватар для ashsvis
Старый
Шаг четвёртый (графический векторный редактор). Перемещение фигур
Запись от ashsvis размещена 10.11.2018 в 17:14 / От простого к сложному
Показов 3932 Комментарии 0

Итак, мои уважаемые читатели, я продолжаю рассматривать животрепещущую тему строительства самолепного,
простого векторного графического редактора.

2. Перемещение фигур

Для перемещения фигур у нас пока задействована только мышка и мы будем рассматривать взаимодействие пользователя
с фигурами через события _container.MouseDown, _container.MouseMove...
Аватар для ashsvis
Старый
Шаг третий (графический векторный редактор). Тестовая расстановка фигур
Запись от ashsvis размещена 09.11.2018 в 18:45 / От простого к сложному
Показов 3974 Комментарии 2

Некоторые изменения я внёс в названия свойств классов Stroke и Fill (чисто косметические, благо это не продакшен).
В классе Figure удалил этот ужасно некрасивый метод OneBuff(), а метод PointInFigure, где он использовался, теперь выглядит
следующим образом (спасибо Storm23 за подсказку):
C#
1
2
3
4
/// <summary>
/// Метод проверяет принадлежность точки фигуре
/// </summary>
/// <param name="point">проверяемая
...
Аватар для ashsvis
Старый
Шаг второй (работа над ошибками)
Запись от ashsvis размещена 08.11.2018 в 10:37 / От простого к сложному
Показов 2700 Комментарии 2

Благодаря замечаниям в комментариях к статье от Storm23, я внёс необходимые исправления в код классов Stroke и Fill,
а также немного переработал код класса Drawing, который переименован в Figure.

Изменения в классе Stroke:

Оставлен один конструктор, без параметров, в котором создаётся закрытое поле Pen _pen, которое используется
в геттерах/сеттерах свойств.
C#
1
2
3
4
private readonly Pen _pen;
 
/// <summary>
/// Конструктор
...
Аватар для ashsvis
Старый
Шаг второй (продолжение). Спутники базового класса.
Запись от ashsvis размещена 07.11.2018 в 14:07 / От простого к сложному
Показов 3168 Комментарии 3

Продолжаем разрабатывать простой векторный графический редактор.
Я обещал подробно разобрать классы для хранения настроек рисования Stroke и Fill, так теперь приступим:

Начнём с класса попроще.
Класс Stroke предназначен для хранения и предоставления базовому классу Drawing информации о том, как
рисовать линию контура замкнутой фигуры или саму линию фигуры не замкнутой.
Конструкторы класса Stroke выглядят так:
C#
1
2
/// <summary>
///
...
Аватар для ashsvis
Старый
Рейтинг: 5.00. Голосов: 1.
Шаг второй. Базовый класс и его спутники.
Запись от ashsvis размещена 06.11.2018 в 19:31 / От простого к сложному
Показов 4031 Комментарии 2

Наверняка, многие из вас, други мои юные программисты, читая про создание векторного редактора с нуля,
ждут, ну когда же будем наконец что-то рисовать... Терпение, други мои... Всё по порядку и я продолжаю.

Выбор функционала для базового класса, на котором будут основаны все другие фигуры, уже придуманные и те,
которые ещё будут придуманы,...
Аватар для ashsvis
Старый
Рейтинг: 5.00. Голосов: 1.
Шаг первый. Создаём рамку выбора для графического редактора.
Запись от ashsvis размещена 05.11.2018 в 10:41 / От простого к сложному
Показов 7414 Комментарии 2

Когда речь заходит о всяческих полезняшках, например, о простом, встроенном в моё приложение,
графическом редакторе, у меня это вызывает некоторый трепет... Сколько возможностей открывается!
Игровой движок с редактором уровней, редактор пользовательских форм и так...
Аватар для ashsvis
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru