Задание 2 (индивидуальное): использование графики

Указания:

  • Входные данные должны считываться из текстового файла.
  • В программе должно быть реализовано меню: Файл (Перерисовать, Выход), Справка (О программе).
  1. Нарисовать график любой выбранной непрерывной функции на заданном отрезке. Нарисовать каждую из осей координат: либо проходящую через точку 0 другой оси, если она находится в пределах изображения, либо в нижней/левой части рисунка. Возле пересечения осей написать координаты точки пересечения, также отметить и подписать границы аргумента на оси x, для которого был построен график.

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

  3. Нарисовать траекторию смоделированного броуновского движения частицы: в моменты времени 0, Δt, 2 Δt, ... n Δt (при заданных n и Δt) частица получает направление движения под случайным углом и величину скорости от 0 до заданного vmaxВозле начального положения частицы (в~центре окна) вывести надпись "начало", возле конечной - последние направление и скорость, с которыми частица пришла в данную точку.

  4. Гипотрохоида - кривая, которую можно получить при помощи спирографа (игрушка, состоящая из пластмассовой пластины с вырезанными зубчатыми кругами разного диаметра и зубчатых колёс меньших диаметров с отверстиями для шариковой ручки), определяемая параметрическим уравнением:

    x(θ) = (R - r) cos θ + d cos ((r - 1) θ)
    y(θ) = (R - r) sin θ - d sin ((Rr - 1) θ)
    где R - радиус вырезанного круга,
    r < R - радиус внутреннего круга
    d - расстояние от центра внутреннего круга до отверстия для ручки (для целей моделирования условие d < r не обязательно
    θ ∈ [0, θmax] - параметр уравнения, меняется от 0 с шагом Δθ
    Рядом с графиком необходимо вывести подписи с различными значениями параметров.
  5. Нарисовать заданное количество точек, расположенных на окружности некоторого радиуса на равном расстоянии друг от друга. Каждая точка должна быть соединена с каждой другой отрезком. С внешней стороны окружности возле каждой точки необходимо напечатать её порядковый номер.

  6. Для заданного массива целых неотрицательных чисел нарисовать две столбиковых диаграммы, расположенных одна под другой, с длинами столбиков, пропорциональными значениям соответствующих элементов. Длина максимального столбика должна быть равна некоторому значению, например, 1 / 3 высоты окна (кроме случая всех нулевых значений). Под столбиками необходимо вывести подписи со значениями элементов. Верхняя столбиковая диаграмма строится по исходному массиву, нижняя - по отсортированному в порядке возрастания элементов.

  7. Заданы размеры прямоугольной области, а также координаты точки на плоскости внутри неё. Из точки под заданным углом на плоскости выходит луч лазера, отражаясь от границ прямоугольной области с заданным коэффициентом отражения k. Нарисовать заданное количество n отражений луча от границ области. До первого отражения нарисовать отрезок луча красным цветом, после каждого последующего - цветом с красной компонентой, равной красной компоненте предыдущего отрезка, умноженной на k (в вещественной арифметике). Каждое первое отражение от каждой стороны прямоугольной области отметить номером этой стороны, расположенным возле точки отражения с наружной стороны области.

  8. Нарисовать в окне имитацию звёздного неба следующим способом: на чёрном фоне нарисовать заданное количество кругов с центрами в точках со случайными координатами малого случайного радиуса (от 0 до rmax). В качестве базового цвета окружности выбрать случайным образом цвет, соответствующий её классу:

    • голубой
    • бело-голубой
    • белый
    • жёлто-белый
    • жёлтый
    • оранжевый
    • красный.

    Для выбора цвета окружности использовать её базовый цвет, умноженный на случайное значение k ∈ [kmin, 1]. Возле первых нескольких окружностей вывести названия существующих звёзд.

  9. Пусть задана последовательность экспериментальных наблюдений некоторой функции в виде пар вещественных чисел: "аргумент - значение". Нарисовать каждую из пар чисел на плоскости в декартовой системе координат в виде малого круга с центром в точке с соответствующими координатами. Вокруг каждого круга дополнительно нарисовать окружность немного большего радиуса. Возле окружности вывести надпись со значениями координат. Масштаб выбрать автоматически в зависимости от размеров окна и разброса значений данных по каждой из осей. Также изобразить координатную сетку с заданным шагом по каждой из осей в виде горизонтальных и вертикальных пунктирных отрезков. Слева и внизу графика сделать надписи с границами отображаемых значений вдоль соответствующих осей.

  10. Нарисовать циферблат часов в виде окружности с делениями, соответствующими часам (более длинные) и минутам (более короткие). Возле каждого часового деления вывести значение соответствующего часа (арабскими числами от 1 до 12). Нарисовать часовую и минутную стрелки в виде закрашенных треугольников разной длины а также секундную стрелку в виде отрезка некоторой толщины. Нарисовать в центре циферблата небольшой круг. Положения стрелок должны соответствовать некоторому времени (текущему или заданному) с точностью до секунды. Например, моменту "16:30:00" должно соответствовать положение часовой стрелки между делениями "4" и "5".

  11. Нарисовать календарь за заданный месяц заданного года. День недели первого числа месяца можно считать из входного файла либо воспользоваться известным алгоритмом для его вычисления. Номера дней должны располагаться по строкам (одна строка соответствует одной неделе), выходные дни должны быть изображены красным цветом. Между колонками должны быть проведены вертикальные прямые серого цвета, над колонками должны располагаться их заголовки в виде первых букв соответствующих дней недели. Над календарём должен быть выведен заголовок с названием месяца и номером года. Расстояния между строками и столбцами надписей должны выбираться в зависимости от максимальных размеров каждой из надписей, выполненной текущим шрифтом.

  12. Нарисовать шахматную доску с шашками в начальной позиции игры. Шашки изображать в виде нескольких концентрических окружностей соответствующего цвета, заполненных внутри. С каждой стороны доски вывести номера строк/столбцов доски (столбцы обозначаются буквами "a" ... "g").

  13. Задан массив целых чисел от 0 до 255, определяющий спектр звукового сигнала. Также задан массив вещественных чисел той же длины, определяющий частоты, которым соответствуют значения спектра (в кГц). Нарисовать представление спектра сигнала в виде набора столбиков, каждый из которых состоит из нескольких расположенных вертикально не соприкасающихся прямоугольников. Количество окрашенных прямоугольников, начиная снизу, определяют величину мощности на данной частоте. Закрашенные прямоугольники должны заполняться зелёным цветом, кроме трёх самых верхних, которые заполняются красным. Незакрашенные прямоугольники заполняются тёмно-зелёным и тёмно-красным цветом соответственно. Под столбиками должны быть выведены надписи с соответствующими частотами.