График функции на C++ в GUI с анимацией
Предположим, что у вас вот такое задние: создать GUI C++ VS приложение графики и анимации. Например, конкретно, такое:
Требуется разработать приложение, которое:
- Обеспечивает возможность задания параметра p в каноническом уравнении параболы в прямоугольной системе координат (y2 = 2px, p>0).
- Выводит кривую на экран.
- Анимирует построение параболы.
Рисовать будем по точкам, используя два массива с их координатами.
int m_x[200]; int m_y[200];После нажатия кнопки «Рисовать!» инициализируем (очищаем) эти массивы координат в цикле:
for (int i1=0; i1<200; i1++){ m_x[i1]=0; m_y[i1]=0; }Получаем параметр p
double p = Convert::ToDouble(textBox1->Text);Заполняем массив координат по формуле:
for (i=0; i<150; i++){ x = x + 1; m_x[i] = x; y = Convert::ToInt32(sqrt((double)(2*p*x)));//вычисляем y m_y[i] = y; pictureBox1->Refresh(); }Рисуем параболу по точкам
for (int j=0; j<199; j++){ e->Graphics->FillRectangle(System::Drawing::Pens::Red->Brush, m_x[j]+200, m_y[j]+200, 1, 1);//одно значение y e->Graphics->FillRectangle(System::Drawing::Pens::Red->Brush, m_x[j]+200, 0-m_y[j]+200, 1, 1);// второе значение y }Точнее, рисуем не по точкам, а по закрашенным прямоугольникам. Здесь два значения y – следуя каноническому уравнению параболы. Результат:
Стоит отметить, что в программе еще нобходимо реализовать так называемую «защиту от дураков» (ввод букв вместо цифр, к примеру), а также обеспечить проверку на >0. Еще необходимо немного изменить анимацию: более правильно будет делать её или в отдельном потоке, или через таймер. Зачем? Дело в том, что когда у нас идет прорисовка графика функции, все приложение зависает и не откликается. Правда, анимация параболы идет не более двух секунд, но все равно это не совсем правильно. Расчеты и прорисовка реализуются в разных методах и потоках (backgroundWorker).
Это был пример создания GUI C++ VS приложение графики и анимации. На самом деле их немало, есть, к примеру, и такие:
Требуется разработать приложение, которое:
- Обеспечивает возможность задания длин сторон треугольника (с проверкой возможности построения).
- Выводит треугольник на экран.
- Анимирует построение описанной окружности (рассмотреть остроугольный, тупоугольный и прямоугольный треугольник).
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.