Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2017, 06:53   #1
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию Интерактивная геометрия как раздел Информатики

Интерактивная геометрия как раздел Информатики - это пробное название темы.

Так сложилось, что я больше 20 лет занимаюсь написанием различных визуальных интерактивных компонентов. Будь то редакторы, карты, схемы или текст.

Есть желание - аккумулировать свой опыт в методической форме. Чтобы последователям было легче его использовать.
Это интересно потому что здесь смыкается фундаментальная наука и практика.

Если кто не в теме или я плохо сформулировал - посмотрите эти видео:
https://youtu.be/P4XAFtKOZdI
https://youtu.be/B4EwEM_lme8

Я так думаю, что это может быть учебник для студента.
Полно книг по машинной графике. От Аммерала до Фень Юаня.
Однако я заметил, что про интерактив знают далеко не многие.
Например.

Я даю такое понятие, как Контекст управления.
Что в него входит?
Большинство программистов, которые думают что разбираются в этой теме, могут назвать только предыдущую координату курсора.
Однако на практике в него входит несколько десятков членов.
Среди них - список выбора (Selection), стеки Undo/Redo, список действий, состояние клавиатуры и много чего ещё.
Кроме контекста управления есть иерархии компонентов, свойств, трансформаций, способностей, команд и действий.
Всё это взаимодействует друг со другом.

Это немного похоже на патерны проектирования. Только патерны - слишком абстрактное понятие. А в интерактивной геометрии всё можно проверить, покрутить и посмотреть.

В тему интерактивной геометрии можно включить анимацию и игры.

Ну пока примерно так.
В идеале - хочется написать библиотеку с примерами и учебник.
Но не хочется это делать в холостую.
Поэтому я опубликовал это объявление, чтобы найти поддержку - заказчиков и энтузиастов.

Что бы Вы могли добавить по этой теме?

Последний раз редактировалось LV1974; 24.11.2017 в 08:17.
LV1974 вне форума Ответить с цитированием
Старый 24.11.2017, 08:08   #2
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию

Вот уже больше 10 лет меня беспокоит вопрос об API рисовалки.
Дело в том, что когда рисовалка предоставляет возможности отображения графических примитивов - то она создаёт собственные экземпляры соответствующих классов, будь то прямоугольник, безье или эллипс.
Таким образом данные дублируются.

Корень проблемы - это функциональный интерфейс рисовалок.
Если бы мы имели объектный интерфейс, то могли бы управлять свойствами объектов напрямую, без дублирования и перенести математику HitTest и Update в графическую подсистему.

Я переписывался с Максом Шеманарёвым (земля ему пухом) - автором легендарной AGG. Я изучал и оптимизировал его код. Однако мы так и не пришли к согласию по этим вопросам.

Когда я делал LikeView, то просто формировал GraphicPath, потому что он позволяет рисовать и проверять попадание.

Кстати, в GDI DotNet я обнаружил пару багов.
Прямое рисование кривых сильно отличается от рисования через GraphicPath.
Некоторые курсоры не загружаются. Приходится для загрузки импортировать функцию из Win32 API.
О чём это говорит?
О том что Стив Балмер перестарался с набором сотрудников.
Поэтому они решают одну задачу разными способами.

Последний раз редактировалось LV1974; 24.11.2017 в 08:38.
LV1974 вне форума Ответить с цитированием
Старый 24.11.2017, 14:07   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Вот уже больше 10 лет меня беспокоит вопрос об API рисовалки.
А предыдущие 10 лет он вас не беспокоил?

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Дело в том, что когда рисовалка предоставляет возможности отображения графических примитивов - то она создаёт собственные экземпляры соответствующих классов, будь то прямоугольник, безье или эллипс.
Таким образом данные дублируются.
Мешает дублирование? Не дублируйте.

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Корень проблемы - это функциональный интерфейс рисовалок.
Причем тут функциональность? Функциональность это не корень проблемы,
это решения проблемы дублирования данных.

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Если бы мы имели объектный интерфейс, то могли бы управлять свойствами объектов напрямую, без дублирования и перенести математику HitTest и Update в графическую подсистему.
Как функции связаны со свойствами?
А то что у вас код дублирован это ваши архитектурные проблемы. HitTest в графической системе не место.

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Это немного похоже на патерны проектирования. Только патерны - слишком абстрактное понятие. А в интерактивной геометрии всё можно проверить, покрутить и посмотреть.
Ну тут вы мягкое с тёплым сравниваете.

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Я даю такое понятие, как Контекст управления.
Что в него входит?
Большинство программистов, которые думают что разбираются в этой теме, могут назвать только предыдущую координату курсора.
Однако на практике в него входит несколько десятков членов.
В том то и дело что вы ничего не даёте.
Могли бы дать определение и состав. Вот патерны проектирования, чем хороши они наглядны. Вот где ваша схема классов?

Цитата:
Сообщение от LV1974 Посмотреть сообщение
Если кто не в теме или я плохо сформулировал - посмотрите эти видео:
Ваше видео ничего не поясняет. Да и вы ничего по существу не сказали. Где определения?

Цитата:
Сообщение от LV1974 Посмотреть сообщение
В тему интерактивной геометрии можно включить анимацию и игры.
Думаю что нет. Это темы одного уровня.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 24.11.2017, 15:13   #4
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию

Pavia
Не надо злоупотреблять моим хорошим отношением к Вам.

Я зуб даю, что Вы - женщина. Поэтому слишком категоричны и спорить с Вами бесполезно.

Второй зуб даю, что Вы нетрезвы поэтому читаете невнимательно и перевираете мои слова. Зачем Вы попутали функциональный интерфейс с функциональностью? Про дублирование данных - Вы вообще ничего не поняли и зачем-то приплели дублирование кода.
Странно выглядит Ваше высказывание про анимацию и интерактив. Например, если вызывать отрисовку окна при его ресайзе не по MouseMove, а по таймеру в 40 мс, то это существенно снижает вычислительную нагрузку. Это большой просчёт авторов оконной подсистемы GUI.

Третий зуб даю, что Вы плохо разбираетесь в теме.
Хорошо что Вы знаете что такое HitTest. Однако Ваше высказывание выглядит странно. Дело в том, что графическая подсистема базируется на математическом ядре. По правилам ООП она должна его инкапсулировать.
Для этого есть все предпосылки. А реализация Update() внутри GDI объектов позволяет оптимизировать множество расчётов.

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

+
Я прошу прощения, что был вынужден перейти на Вашу личность.
Поэтому прошу впредь не кидаться категоричными заявлениями, а подтверждать их некоторым обоснованием.

Последний раз редактировалось LV1974; 24.11.2017 в 15:27. Причина: +
LV1974 вне форума Ответить с цитированием
Старый 24.11.2017, 15:52   #5
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию

Я пришёл к выводу, что самым простым способом оптимизации отрисовки и реализации проверки попадания - будет использование GraphicPath.
Очень жаль что это вызовет трудность для реализации квадратичных, конформных и прочих трансформаций.

Сейчас я размышляю над форматом публикации.
Здесь есть признаки учебника, монографии, документации и ФАК.
Сложность в том, что способности объектов нельзя реализовать в изолированном виде как класс, член или функцию. Например:
Отображаемость, Селективность, Перемещаемость, Масштабируемость, Буфферезируемость и т.п.
Здесь всё очень тесно взаимосвязано.
LV1974 вне форума Ответить с цитированием
Старый 24.11.2017, 17:35   #6
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию

Сложность написания работы по интерактивной графике упирается в недоработанность графических подсистем.
В идеале - все геометрические расчёты и формирование сканлайнов и заливок - должны выполняться на графической видеокарте.
Туда же надо отправить функции HitTest и Update.
Это последовательное логическое рассуждение.

Однако мы не имеем пока такой возможности.
Развитие 2Д графики остановилось на уровне Matrox Millenium в 2001 году. Потом началась эпоха Voodoo и Radeon-ов.
А то что на видюхах стали делать нейросети и майнить простые числа - так это вообще варварство.

Для 2Д графики все продолжают использовать ЦП. И никого это не смущает и не напрягает. Это не решение задачи, это силовое форсирование.

Так получается, что надо сначала делать чисто графическую подсистему и только потом можно говорить про интерактив.
LV1974 вне форума Ответить с цитированием
Старый 24.11.2017, 17:56   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Не очень понимаю тему.
С одной стороны многолетний опыт, которым хочется поделиться, с другой стороны хочется на этом заработать, т.е. продать. Продать только нечего, т.к. при наличии опыта осталось куча неразрешенных проблем. При этом проблемы выглядят как: плохому танцору ноги мешают.
MS в былые годы активно пользовали ActiveX и в документ Word легко и непринуждённо внедрялись документы Excel. Никаких проблем по разделению и объектной моделью у них не было.
На 2Д графику забили, т.к. она легко ложится частным случаем на 3Д графику и нет смысла лепить две отдельные подсистемы. Делается 3Д и автоматом получается 2Д. WPF вон рисует что угодно, использует видяху и живут с этим как-то люди.
pu4koff вне форума Ответить с цитированием
Старый 24.11.2017, 19:06   #8
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Не очень понимаю тему.
С одной стороны многолетний опыт, которым хочется поделиться, с другой стороны хочется на этом заработать, т.е. продать. Продать только нечего, т.к. при наличии опыта осталось куча неразрешенных проблем. При этом проблемы выглядят как: плохому танцору ноги мешают.
MS в былые годы активно пользовали ActiveX и в документ Word легко и непринуждённо внедрялись документы Excel. Никаких проблем по разделению и объектной моделью у них не было.
На 2Д графику забили, т.к. она легко ложится частным случаем на 3Д графику и нет смысла лепить две отдельные подсистемы. Делается 3Д и автоматом получается 2Д. WPF вон рисует что угодно, использует видяху и живут с этим как-то люди.
Да Вы крутой чел!
Берётесь судить - "не очень понимая тему".
Особенно радует Ваша принципиальность в отношении продажи моего опыта.
Наверное учитель и создатель должны быть голодными.
И никаких пожеланий я предъявлять тоже не должен.
Иначе Вы скажите - "ноги мешают".

Короче. Я хочу чтобы Вас здесь не было.
Прощайте.
LV1974 вне форума Ответить с цитированием
Старый 24.11.2017, 19:10   #9
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от LV1974 Посмотреть сообщение

Короче. Я хочу чтобы Вас здесь не было.
Прощайте.
Что-то много агрессии. влепил штраф. прекращайте, спасибо надо говорить, что люди еще отвечают, а не игнорируют вас.
Alar вне форума Ответить с цитированием
Старый 24.11.2017, 19:26   #10
LV1974
Заблокирован
 
Регистрация: 09.08.2017
Сообщений: 1,136
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Что-то много агрессии. влепил штраф. прекращайте, спасибо надо говорить, что люди еще отвечают, а не игнорируют вас.
Мне хочется разговаривать с компетентными людьми, которым есть что показать, у которых есть опыт в написании разного рода редакторов (текстовых, векторных, растровых, табличных, редакторов схем и диаграмм).

А тут влезают некомпетентные товарищи озабоченные тщеславием и с раздутым самомнением и хамят именно мне. Типа мне "ноги мешают" и что я должен работать бесплатно.
- Разве это не оскорбление?

Alar, если Вы обратили своё внимание на тему, то разберитесь справедливо, чтобы мне не приходилось Вас отвлекать и ябедничать.
LV1974 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Геометрия, как найти скалярное произведение? Алексей_2012 Помощь студентам 8 10.11.2014 23:29
Как откосить от информатики? Max1548 Свободное общение 5 25.10.2011 17:18
Как Программно создать раздел E:\ KWN, lnc Общие вопросы Delphi 18 27.08.2009 13:37
как добавить модули в раздел uses kate158 Общие вопросы Delphi 1 25.08.2009 09:52