2013-06-04 2 views
0

Я достаточно знаком с базовыми концепциями программирования, и большая часть моего опыта программирования лежит в MATLAB. У меня есть некоторый опыт работы с C/C++, но не очень. Я хочу научить себя C++ через самостоятельный проект, который я считаю здоровым (потому что это будет мотивировать меня). Вот моя идея:Моделирование объекта, ударяющего по поверхности жидкости в C++

Я хочу, чтобы изображение (определяемое пользователем форма, масса, плотность и т. Д.) Падало (заданная пользователем высота) в жидкость с первоначально неподвижной поверхностью (определяемые пользователем свойства, такие как плотность, вязкость и т. д.). Я хочу визуализировать созданный всплеск, используя соответствующую физику. Мне это не нужно, чтобы быть причудливым видео. Я ищу: когда объект попадает на поверхность, будут математические функции, которые определяют форму поверхности в любой момент времени после удара (я, конечно, должен сначала выяснить физику). Я хочу найти эти фигуры в заданные моменты времени после хита, скажем, каждые 0,1 с, а затем я могу быстро отобразить поверхности, поэтому в основном это видео, показывающее, как форма поверхности изменяется со временем.

Предполагая, что я знаком с физикой, вовлеченной, мои вопросы:

  1. ли это возможно, или я быть тупо амбициозен?
  2. Я предполагаю, что я не могу просто использовать CodeBlocks для этого, потому что для визуализации мне понадобится какая-то графическая находка. Есть ли у вас предложения? Визуальный базовый, может быть?
  3. Как вы думаете, по-вашему, я получаю приличное количество воздействия на C++ через этот проект, или вы думаете, что я должен сосредоточиться на чем-то меньшем физике (например, мой главный) и многое другое ... хорошо ... информатика-у?

Спасибо!

+1

Определенно посмотрите на Qt как общую структуру/библиотеку для ее построения. В нем есть все. –

+1

Возможно, вы тоже можете попробовать OpenGl. Поскольку вы являетесь физическим руководителем, вам не составит труда узнать больше о принципах opengl и математике. В основном матричные вычисления и некоторая геометрия в декартовом пространстве. И OpenGL на C++ - большая проблема. – darxsys

ответ

1

Поскольку никто не дал более подробного ответа, я сделаю снимок.

  1. Это возможно. Хотя, я не уверен в сложности такого проекта для вас, если у вас никогда не было опыта программирования или C++.

  2. Вы можете использовать кодовые блоки или любую другую IDE, которую используете. Вам просто нужно загрузить OpenGL или Qt или любые библиотеки, которые вы будете использовать, и правильно настроить кодовые блоки, чтобы они могли компилировать и связывать все. Визуализация является частью OpenGL. OpenGL (GLUT) создает окно, в котором он рисует все, что вы ему сказали. Лично я предпочитаю Linux для OpenGL (и каждого другого), но это только я. Хороший текстовый редактор и g ++ могут пройти долгий путь. Это не обязательно, просто скажи.

  3. Хорошо, создание симуляции такого рода, несомненно, заставит вас написать приличное количество кода (возможно, пара kLOC) и дать вам большое количество возможностей для C++ и его функций (вот почему я думаю, что это может быть немного сложно, если у вас не было предыдущего опыта работы с C++).

+0

Это было полезно, спасибо. – Shash