Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

не могу разобраться с графической заставкой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой http://www.cyberforum.ru/cpp-beginners/thread1080769.html
дана квадратная матрица получаемых через rand() найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой вывести на печать начальный и конечный вариант...
C++ Дано натуральное число n, вычислить Помогите пожалуйста решить задачи 1. Дано натуральное число n, вычислить а) \frac{1}{sin1}+\frac{1}{sin1+sin2}+...+\frac{1}{sin1+sinn} б) \sqrt{2+\sqrt{2+...+\sqrt{2}}} в)... http://www.cyberforum.ru/cpp-beginners/thread1080768.html
C++ Работа с файлами (дозапись в файл)
вообщем вот код не работает добавление в файл #include <iostream> //IO #include <string> //strings #include <fstream> // for work with files #include <iomanip> // for setw #include <conio.h>...
В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение. Массив в памяти разм C++
Помогите решить задания: На простом языке программирования чтобы было просто и понятно. 4. Найти минимальный элемент и поменять его с первым элементом. 5. Найти максимальный элемент и поменять...
C++ Определить находится ли данная точка в середине многоугольника, или нет? http://www.cyberforum.ru/cpp-beginners/thread1080718.html
Какая функция будет считывать координаты вершин неправильного многоугольника, и некую точку которую будем проверять. Выводить находится ли данная точка в середине многоугольника, или нет? или...
C++ shared_ptr с потомками Добрый вечер, сейчас столкнулся с задачей хранить большие объемы динамически-выделенной памяти. Обычный массив Base* list не подходит, т.к. ограничен размер. Структура в виде дерева тоже... подробнее

Показать сообщение отдельно
truhin_evgeniy
3 / 3 / 0
Регистрация: 23.01.2014
Сообщений: 47

не могу разобраться с графической заставкой - C++

24.01.2014, 22:11. Просмотров 297. Ответов 2
Метки (Все метки)

помогите с графической заставкой плиз:
задание:
Необходимо выполнить следующие этапы:
1)по графическому окну случайным образом перемещаются точки и прямоугольники
2)Теперь к имеющимся точкам и прямоугольникам надо добавить окружности.
3)Реализовать перемещение графических объектов по прямым траекториям с разными случайными векторами скоростей
4)Обеспечить возможность добавления очередного объекта и удаления последнего добавленного объекта в ходе выполнения программы.Проверьте правильность выполнения программы. В частности, с помо-щью Delete можно удалить все объекты, а потом с помощью Insert заново создать необходимое количество объектов
5)Выполнить реализацию перемещения графических объектов согласно варианту задания

Вариант:
Для реализации вращательного движения относительно центра экрана удобно использовать полярную систему координат. Для этого в объект TPoint надо добавить переменные a, s типа float, которые соответственно задают угол (в радианах) и расстояние от центра экрана. Пусть эти переменные в конструкторе устанавливаются в 0 (то есть все объекты появляются в центре экрана).
Кроме того, переменные vx, vy надо заменить на переменные va, vs типа float, которые задаются приращения угла и расстояния соответственно. Значение va рекомендуется случайно выбирать в диапазоне от 0.01 до 0.1, а значение vs рекомендуется случайно выбирать в диапазоне от 0.1 до 1.
Затем функцию obj[i]->MoveXY можно изменить так, чтобы у нее не было аргументов. Также содержимое этой функции надо изменить следующим образом. После вызова Hide надо изменить значения a, s на соответствующие приращения va, vs. После этого надо перейти от полярной системы координат к декартовой, то есть изменить значения целочисленных переменных x, y, а именно x:=floor(GrMaxX()/2+s*cos(a)); y:=floor(GrMaxY()/2-s*sin(a)); (это необходимо, так как отображение объектов выполняется на основе x, y). После этого осуществить вызов Show и закончить функцию obj[i]->MoveXY. Объекты будут совершать «вращательные» перемещения, но при этом они будут постепенно уходить за пределы экрана, а в окончательном варианте программы объекты должны перемещаться только в пределах экрана.
Чтобы объекты оставались в пределах экрана надо после вызова Hide внутри функции obj[i]->MoveXY добавить изменение значений va, vs на противоположные в том случае, если на следующем шаге расстояние от центра экрана будет больше половины высоты экрана.
Кроме того, надо добавить некоторую «распределенность» при перемещении объектов. Для этого при перемещении каждого объекта можно иногда изменять случайным образом значения va, vs.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru