Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MetVB.doc
Скачиваний:
15
Добавлен:
17.02.2016
Размер:
420.86 Кб
Скачать
      1. Рисование звёздного неба

Задание

Вывести случайным образом разбросанные по чёрному полю белые точки (звёздное небо).

Вопросы к заданию

1. Координаты звёзд принять целыми числами. Разработать и описать в отчёте алгоритм вывода заданного количества точек по случайным координатам внутри поля рисунка.

2. Координаты звёзд принять дробными числами. Изменить программу так, чтобы заданное число точек размещалось в круге определённого радиуса (изображение шарового скопления звёзд). Случайными должны быть два числа — расстояние от точки до центра круга и угол между нулевым направлением из центра круга и направлением на данную точку. В отчёте привести формулы расчёта координат очередной звезды (переход из исходной полярной системы координат в прямоугольную).

3. Изменить приложение так, чтобы шаровые скопления звёзд (галактики) выводилось в случайных местах рисунка. Количество галактик и звёзд в них должно задаваться пользователем. Использовать вложенные циклы. В отчёте описать смысл необходимых изменений.

      1. Моделирование движения спутника по орбите

Задание

Моделировать движение спутника вокруг планеты (перемещение маленького кружка по линии окружности, нарисованной вокруг большого круга). Число оборотов задаётся пользователем.

Вопросы к заданию

  1. Разработать интерфейс пользователя. Привести в отчёте список объектов интерфейса и их назначение.

  2. Добавить в проект стандартный модуль и размещать код всех процедур в нём. В модуле формы разместить только вызовы соответствующих процедур.

  3. В отчёте привести алгоритм движения спутника. Для создания иллюзии непрерывного движения следует сначала стирать кружок в текущем положении (рисовать его цветом фона), а затем рисовать его в новом положении (рисовать цветом переднего плана). Координаты центра движущегося кружка изменять следующим образом:

х = R * sin(α);

y = R * cos(α),

где R – это радиус орбиты;

α – угол поворота от исходного направления в радианах.

За один проход цикла угол должен меняться на 1 (для глаза человека такое движение кажется непрерывным).

  1. Добавить в программу возможность реализации визуального интерфейса «часы с секундной стрелкой». Часы должны отмерять период времени, задаваемый пользователем, и останавливаться (без соответствия реальному времени).

Новые возможности организовать в виде самостоятельных процедур или функций в стандартном модуле, по возможности не изменяя имеющийся код.

В отчёте привести иллюстрации нового интерфейса и описать смысл добавленных процедур.

      1. Изменение цвета текстового поля

Задание

Создать программу, изменяющую цвета фона и символов в текстовом поле через постепенный переход цветов. Начальный цвет фона — синий, конечный — красный, начальный цвет символов — белый, конечный — зелёный.

Создать на форме две кнопки. Нажатие одной запускает плавное изменение цвета фона текстового поля, нажатие другой — цвета символов. Для задания цвета фона и цвета символа использовать функцию RGB().

Для систематических сигналов на изменение цвета использовать объект Timer.

Вопросы к заданию

  1. Разработать интерфейс пользователя. Привести в отчёте список объектов интерфейса и их назначение.

  2. Для перехода цвета аргументы функции RGB() изменять в цикле с определённым шагом. В отчёте привести алгоритм перехода цвета.

  3. Изменить программу так, чтобы цвет при первом щелчке на кнопке менялся в одном направлении, а при следующем щелчке — в обратном. В отчёте описать сущность требуемых изменений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]