Написание очень простого приложения CAD

Я хочу создать очень простое 2D-интерактивное CAD-приложение с очень небольшим количеством функций, таких как:

  1. Возможность создавать линии, точки, простые выпуклые многоугольники и простые формы, такие как эллипсы.
  2. Возможность разбивать полигоны.

По этой причине я выбираю модель клиент-сервер, где клиент состоит из компонентов графического интерфейса и рендеринга. Для этого я думаю об использовании фреймворка Kivy, поскольку он имеет графический интерфейс и OpenGL в одном фреймворке. Другой альтернативой является использование фреймворка QT.

Для серверной части, которая содержит код для манипулирования геометрией, я думаю использовать OpenCASCADE напрямую, или gmsh. Основная идея здесь такова: после того, как геометрия смоделирована, она создается на сервере и отправляется обратно клиенту для рендеринга.

Мой вопрос по этому поводу заключается в том, работает ли этот подход в интерактивном приложении?Насколько я понимаю, создание сетки занимает много времени, поэтому создание сетки для каждого небольшого изменения геометрии может быть не идеальным вариантом для интерактивного приложения. Но тогда OpenGL может отображать только очень небольшое количество геометрических примитивов (таких как точка, линия, треугольник и квадраты), и использование OpenGL имеет смысл только тогда, когда мы создаем сетку геометрии (насколько я знаю, OpenCASCADE использует представление границ для представления моделей).

Пожалуйста, поймите, что я новичок в геометрическом моделировании и компьютерной графике в целом, поэтому любая помощь приветствуется.

1 ответ

«работает ли этот подход в интерактивном приложении?». Не совсем, если только ваши клиенты не очень терпеливы. Рендеринг будет дергаться, даже если у вас почти мгновенная передача. Вот почему было изобретено аппаратное ускорение. А это значит, что он должен быть локальным на машине.

Если вы не очень опытны, я рекомендую оставить клиент-серверную архитектуру на потом. Сначала начните работать с отдельным приложением.

Я думаю, меширование не нужно, если вам нужно только 2D. Сначала начните с рендеринга только кривых. Если вам нужны заполненные фигуры, алгоритмы заливки цветом могут быть намного проще.

Open Cascade учится годами

Наша альтернатива за 20 долларов в месяц (пока вы разрабатываете): https://dynoinsight.com/ProDown.htm

Лучший

Другие вопросы по тегам