На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

График функции на C++ в GUI с анимацией


Предположим, что у вас вот такое задние: создать GUI C++ VS приложение графики и анимации. Например, конкретно, такое:

Требуется разработать приложение, которое:
  1. Обеспечивает возможность задания параметра p в каноническом уравнении параболы в прямоугольной системе координат (y2 = 2px, p>0).
  2. Выводит кривую на экран.
  3. Анимирует построение параболы.
Итак, так как у нас в задаче есть слово GUI, то проект в визуал студио будем делать типа «приложение Windows Forms» (есть и другие способы, но этот простейший и для студенческого задания подходит прекрасно). На форму накидаем pictureBox (для графика функции), textBox (для ввода параметра p для параболы) и кнопку, после нажатия на которую будет рисоваться наш анимированный график.



Рисовать будем по точкам, используя два массива с их координатами.

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 – следуя каноническому уравнению параболы. Результат:



Стоит отметить, что мы, в нашем приложении, не учли проверку параметра p – не поставили так называемую «защиту от дураков» (ввод букв вместо цифр, к примеру), а также не обеспечили проверку на >0. Еще можно немного изменить анимацию: более правильно будет делать её или в отдельном потоке, или через таймер. Зачем? Дело в том, что когда у нас идет прорисовка графика функции, все приложение зависает и не откликается. Правда, анимация параболы идет не более двух секунд, но все равно это не совсем правильно. Однако, даже в таком виде ваш преподаватель примет работу.

Это был пример создания GUI C++ VS приложение графики и анимации. На самом деле их немало, есть, к примеру, и такие:

Требуется разработать приложение, которое:
  1. Обеспечивает возможность задания длин сторон треугольника (с проверкой возможности построения).
  2. Выводит треугольник на экран.
  3. Анимирует построение описанной окружности (рассмотреть остроугольный, тупоугольный и прямоугольный треугольник).
Алгоритм решения данной задачи аналогичен. Но здесь мы будем рисовать уже не точками, а линиями треугольник. А вот для описанной окружности – дуга, у которой меняется конечный угол. Основная сложность в этой задаче – запрограммировать формулу описанной окружности и не ошибиться – она громоздкая. У меня большой опыт создания таких несложных приложений на C++ в визуал студио – обращайтесь.





тегистатьи IT, си плюс плюс, графики, график функции, gui





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




Воскресенье
Как узнать, включен ли телефон. Не звоня и не отправляя смс.


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.