|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.11.2017, 06:53 | #1 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Интерактивная геометрия как раздел Информатики
Интерактивная геометрия как раздел Информатики - это пробное название темы.
Так сложилось, что я больше 20 лет занимаюсь написанием различных визуальных интерактивных компонентов. Будь то редакторы, карты, схемы или текст. Есть желание - аккумулировать свой опыт в методической форме. Чтобы последователям было легче его использовать. Это интересно потому что здесь смыкается фундаментальная наука и практика. Если кто не в теме или я плохо сформулировал - посмотрите эти видео: https://youtu.be/P4XAFtKOZdI https://youtu.be/B4EwEM_lme8 Я так думаю, что это может быть учебник для студента. Полно книг по машинной графике. От Аммерала до Фень Юаня. Однако я заметил, что про интерактив знают далеко не многие. Например. Я даю такое понятие, как Контекст управления. Что в него входит? Большинство программистов, которые думают что разбираются в этой теме, могут назвать только предыдущую координату курсора. Однако на практике в него входит несколько десятков членов. Среди них - список выбора (Selection), стеки Undo/Redo, список действий, состояние клавиатуры и много чего ещё. Кроме контекста управления есть иерархии компонентов, свойств, трансформаций, способностей, команд и действий. Всё это взаимодействует друг со другом. Это немного похоже на патерны проектирования. Только патерны - слишком абстрактное понятие. А в интерактивной геометрии всё можно проверить, покрутить и посмотреть. В тему интерактивной геометрии можно включить анимацию и игры. Ну пока примерно так. В идеале - хочется написать библиотеку с примерами и учебник. Но не хочется это делать в холостую. Поэтому я опубликовал это объявление, чтобы найти поддержку - заказчиков и энтузиастов. Что бы Вы могли добавить по этой теме? Последний раз редактировалось LV1974; 24.11.2017 в 08:17. |
24.11.2017, 08:08 | #2 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Вот уже больше 10 лет меня беспокоит вопрос об API рисовалки.
Дело в том, что когда рисовалка предоставляет возможности отображения графических примитивов - то она создаёт собственные экземпляры соответствующих классов, будь то прямоугольник, безье или эллипс. Таким образом данные дублируются. Корень проблемы - это функциональный интерфейс рисовалок. Если бы мы имели объектный интерфейс, то могли бы управлять свойствами объектов напрямую, без дублирования и перенести математику HitTest и Update в графическую подсистему. Я переписывался с Максом Шеманарёвым (земля ему пухом) - автором легендарной AGG. Я изучал и оптимизировал его код. Однако мы так и не пришли к согласию по этим вопросам. Когда я делал LikeView, то просто формировал GraphicPath, потому что он позволяет рисовать и проверять попадание. Кстати, в GDI DotNet я обнаружил пару багов. Прямое рисование кривых сильно отличается от рисования через GraphicPath. Некоторые курсоры не загружаются. Приходится для загрузки импортировать функцию из Win32 API. О чём это говорит? О том что Стив Балмер перестарался с набором сотрудников. Поэтому они решают одну задачу разными способами. Последний раз редактировалось LV1974; 24.11.2017 в 08:38. |
24.11.2017, 14:07 | #3 | ||||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
А предыдущие 10 лет он вас не беспокоил?
Цитата:
Причем тут функциональность? Функциональность это не корень проблемы, это решения проблемы дублирования данных. Цитата:
А то что у вас код дублирован это ваши архитектурные проблемы. HitTest в графической системе не место. Цитата:
Цитата:
Могли бы дать определение и состав. Вот патерны проектирования, чем хороши они наглядны. Вот где ваша схема классов? Ваше видео ничего не поясняет. Да и вы ничего по существу не сказали. Где определения? Думаю что нет. Это темы одного уровня.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
||||
24.11.2017, 15:13 | #4 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Pavia
Не надо злоупотреблять моим хорошим отношением к Вам. Я зуб даю, что Вы - женщина. Поэтому слишком категоричны и спорить с Вами бесполезно. Второй зуб даю, что Вы нетрезвы поэтому читаете невнимательно и перевираете мои слова. Зачем Вы попутали функциональный интерфейс с функциональностью? Про дублирование данных - Вы вообще ничего не поняли и зачем-то приплели дублирование кода. Странно выглядит Ваше высказывание про анимацию и интерактив. Например, если вызывать отрисовку окна при его ресайзе не по MouseMove, а по таймеру в 40 мс, то это существенно снижает вычислительную нагрузку. Это большой просчёт авторов оконной подсистемы GUI. Третий зуб даю, что Вы плохо разбираетесь в теме. Хорошо что Вы знаете что такое HitTest. Однако Ваше высказывание выглядит странно. Дело в том, что графическая подсистема базируется на математическом ядре. По правилам ООП она должна его инкапсулировать. Для этого есть все предпосылки. А реализация Update() внутри GDI объектов позволяет оптимизировать множество расчётов. Прежде чем так категорично высказываться, я рекомендую скачать исходник какой-нибудь открытой рисовалки, например AGG, и поковыряться в её устройстве. + Я прошу прощения, что был вынужден перейти на Вашу личность. Поэтому прошу впредь не кидаться категоричными заявлениями, а подтверждать их некоторым обоснованием. Последний раз редактировалось LV1974; 24.11.2017 в 15:27. Причина: + |
24.11.2017, 15:52 | #5 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Я пришёл к выводу, что самым простым способом оптимизации отрисовки и реализации проверки попадания - будет использование GraphicPath.
Очень жаль что это вызовет трудность для реализации квадратичных, конформных и прочих трансформаций. Сейчас я размышляю над форматом публикации. Здесь есть признаки учебника, монографии, документации и ФАК. Сложность в том, что способности объектов нельзя реализовать в изолированном виде как класс, член или функцию. Например: Отображаемость, Селективность, Перемещаемость, Масштабируемость, Буфферезируемость и т.п. Здесь всё очень тесно взаимосвязано. |
24.11.2017, 17:35 | #6 |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Сложность написания работы по интерактивной графике упирается в недоработанность графических подсистем.
В идеале - все геометрические расчёты и формирование сканлайнов и заливок - должны выполняться на графической видеокарте. Туда же надо отправить функции HitTest и Update. Это последовательное логическое рассуждение. Однако мы не имеем пока такой возможности. Развитие 2Д графики остановилось на уровне Matrox Millenium в 2001 году. Потом началась эпоха Voodoo и Radeon-ов. А то что на видюхах стали делать нейросети и майнить простые числа - так это вообще варварство. Для 2Д графики все продолжают использовать ЦП. И никого это не смущает и не напрягает. Это не решение задачи, это силовое форсирование. Так получается, что надо сначала делать чисто графическую подсистему и только потом можно говорить про интерактив. |
24.11.2017, 17:56 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Не очень понимаю тему.
С одной стороны многолетний опыт, которым хочется поделиться, с другой стороны хочется на этом заработать, т.е. продать. Продать только нечего, т.к. при наличии опыта осталось куча неразрешенных проблем. При этом проблемы выглядят как: плохому танцору ноги мешают. MS в былые годы активно пользовали ActiveX и в документ Word легко и непринуждённо внедрялись документы Excel. Никаких проблем по разделению и объектной моделью у них не было. На 2Д графику забили, т.к. она легко ложится частным случаем на 3Д графику и нет смысла лепить две отдельные подсистемы. Делается 3Д и автоматом получается 2Д. WPF вон рисует что угодно, использует видяху и живут с этим как-то люди. |
24.11.2017, 19:06 | #8 | |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Цитата:
Берётесь судить - "не очень понимая тему". Особенно радует Ваша принципиальность в отношении продажи моего опыта. Наверное учитель и создатель должны быть голодными. И никаких пожеланий я предъявлять тоже не должен. Иначе Вы скажите - "ноги мешают". Короче. Я хочу чтобы Вас здесь не было. Прощайте. |
|
24.11.2017, 19:10 | #9 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
Что-то много агрессии. влепил штраф. прекращайте, спасибо надо говорить, что люди еще отвечают, а не игнорируют вас.
|
24.11.2017, 19:26 | #10 | |
Заблокирован
Регистрация: 09.08.2017
Сообщений: 1,136
|
Цитата:
А тут влезают некомпетентные товарищи озабоченные тщеславием и с раздутым самомнением и хамят именно мне. Типа мне "ноги мешают" и что я должен работать бесплатно. - Разве это не оскорбление? Alar, если Вы обратили своё внимание на тему, то разберитесь справедливо, чтобы мне не приходилось Вас отвлекать и ябедничать. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Геометрия, как найти скалярное произведение? | Алексей_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 |