Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графика Lab1.doc
Скачиваний:
2
Добавлен:
09.07.2019
Размер:
136.19 Кб
Скачать

Лабораторная работа №1

Целью данной работы является ознакомление с основами компьютерной графики и получение навыков работы с графическим API.

Задание требуется выполнить с использованием функций OpenGL (или DirectX).

Координаты всех объектов заданы в Декартовой системе координат. На экране, кроме самих объектов, следует отображать оси Декартовой системы. В процессе отображения мировые (декартовы) координаты преобразуются в экранные, т.е. следует пересчитать декартовы координаты в экранные (пикселы) таким образом, чтобы сцена полностью отображалась в окне и была соразмерна ему по масштабу.

Преобразования объекта (масштабирование, перенос, поворот) требуется осуществить следующим образом:

вначале с помощью стандартных функций API последовательно выполняются и по очереди отображаются на экране заданные преобразования, при этом старое изображение объекта с экрана стирается, отображается лишь объект после преобразования;

затем объект закрашивается предложенным способом;

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

После выполнения задания требуется сдать отчет, содержащий:

- текст задания;

- пересчет мировых координат первоначально заданного объекта в экранные с учетом масштаба окна вывода;

- расчет единой матрицы всех последовательных преобразований в однородных координатах (для одного из объектов).

Задание 1.

  1. Изобразить треугольник АВС с координатами А (20,50), В(50,50), С (50,100).

  2. Выполнить поворот вокруг точки А(20,50) на угол =90 и сдвиг на dx= -50; dy= -10.

  3. Вписать меньший треугольник в заданный треугольник.

  4. Выполнить закрашивание треугольников разными цветами .

Задание 2.

  1. Изобразить прямоугольник АВСD с координатами А (0,10), В(0,60), С (60,60), D(6,10) и прямоугольник с вершинами в серединах сторон прямоугольника ABCD.

  2. Выполнить растяжение примитивов относительно точки пересечения диагоналей прямоугольника ABCD с коэффициентом k=2 и поворот относительно этой же точки на угол =90.

3. Выполнить закрашивание объектов разными цветами

Задание 3.

  1. Изобразить квадрат АВСD с координатами А (30,30), В(30,50), С (50,50), D(50,30).

  2. Выполнить растяжение относительно точки N(40,40) с коэффициентом k=2 и сдвиг на dx= -70; dy= 20.

  3. Провести диагонали в полученном квадрате.

  4. Выполнить закрашивание секторов квадрата разными цветами.

Задание 4.

  1. Изобразить квадрат АВСD с координатами А (20,20), В(20,60), С (60,60), D(60,20).

  2. Выполнить сжатие относительно точки К(40,40) с коэффициентом 2 (1/k=0,5) и поворот вокруг точки А на угол =45.

  3. Изобразить окружность с центром в точке С и радиусом 20.

  4. Выполнить закрашивание квадрата и окружности разными цветами .

Задание 5.

  1. Изобразить квадрат АВСD с координатами А (10,30), В(10,50), С (30,50), D(30,30) и окружность радиусом 20 и центром в точке пересечения диагоналей квадрата.

  2. Выполнить сдвиг двух примитивов на dx=15; dy= -5 и растяжение относительно точки С с коэффициентом k=2 .

  3. Выполнить поворот примитивов относительно начала координат на угол =-60.

  4. Выполнить закрашивание примитивов разными цветами .

Задание 6.

  1. Изобразить окружность радиусом 30 и центром в точке K (30,30) и треугольник АВС с координатами А (20,50), В(50,50), С (50,100).

  2. Выполнить для треугольника поворот вокруг точки А(20,50) на угол =45и сдвиг на dx=45; dy= -15.

  3. Выполнить закрашивание треугольника и окружности разными цветами.

Задание 7.

  1. Изобразить трапецию АВСD с координатами А (30,30), В(40,50), С (60,50), D(70,30).

  2. Выполнить поворот относительно начала координат на угол =-90; затем выполнить перемещение полученной трапеции на dx=dy= 2.

  3. Выполнить растяжение относительно точки N(40,40) с коэффициентом k=2.

  4. Выполнить закрашивание полученной трапеции.

Задание 8.

  1. Изобразить квадрат АВСD с координатами А (20,30), В(20,90), С (80,90), D(80,30) и вписанный в него равносторонний треугольник.

  2. Выполнить сдвиг примитивов на dx= -50; dy= -10.

  3. Выполнить сжатие примитивов относительно точки пересечения диагоналей квадрата c коэффициентом 3 (1/k=1/3).

  4. Выполнить закрашивание двух примитивов .

Задание 9.

  1. Изобразить ромб АВСD с координатами А(30;70), В(60,110), С(90;70), D(60,30) и трапецию АВСD с координатами А (20,30), В(40,50), С (60,50), D(70,30).

  2. Выполнить сдвиг ромба и трапеции на dx= -20; dy= -10 .

  3. Выполнить поворот трапеции относительно начала координат на угол =20.

  4. Выполнить закрашивание полученных примитивов разными цветами.

Задание 10.

  1. Изобразить ромб АВСD с координатами А (20,30), В(30,50), С (40;30), D(30,10) и квадрат с координатами А (10,15), В(10,45), С (40,45), D(40,15).

  2. Выполнить сдвиг примитивов на dx= 10; dy= -10.

  3. Выполнить поворот примитивов вокруг начала координат на угол =180.

  4. Выполнить закрашивание двух примитивов .

Задание 11.

  1. Изобразить ромб АВСD с координатами А (10,30), В(30,60), С (50,30), D(30,0) и окружность радиусом 20 и центром в точке пересечения диагоналей ромба.

  2. Выполнить растяжение двух объектов относительно точки N(30,30) с коэффициентом k=2; выполнить сдвиг полученного ромба на dy= 20 .

  3. Выполнить закрашивание примитивов разными цветами.

Задание 12.

  1. Изобразить прямоугольник АВСD с координатами А (0,20), В(0,60), С (60,60), D(60,20).

  2. Выполнить сдвиг прямоугольника на dх= 30.

  3. Выполнить поворот вокруг начала координат на угол =30.

  4. Провести две диагонали в прямоугольнике.

  5. Выполнить закрашивание полученных 4-х треугольников разными цветами.

Задание 13.

  1. Изобразить прямоугольник авсd с координатами а (0,10), в(0,60), с (60,60), d(6,10) и прямоугольник с вершинами в серединах сторон прямоугольника abcd.

  2. Выполнить растяжение примитивов относительно точки пересечения диагоналей прямоугольника ABCD с коэффициентом k=2.

  3. Выполнить закрашивание объектов разными цветами.

Задание 14.

  1. Изобразить треугольник АВС с координатами А (20,30), В(30,50), С (40;30) и квадрат с координатами А (10,15), В(10,45), С (40,45), D(40,15).

  2. Выполнить сдвиг примитивов на dy= 6 см.

  3. Выполнить поворот примитивов вокруг начала координат на угол =270.

  4. Выполнить закрашивание двух примитивов.

Задание 15.

  1. Изобразить квадрат АВСD с координатами А (20,40), В(20,80), С (60,80), D(60,40) и описанную вокруг него окружность.

  2. Выполнить поворот квадрата вокруг точки пересечения диагоналей на угол =45.

  3. Выполнить закрашивание объектов разными цветами.

Задание 16.

  1. Изобразить окружность радиусом 30 и центром в точке K (30,30) и треугольник АВС с координатами А (10,25), В(25,25), С (25,50).

  2. Выполнить сжатие объектов относительно начала координат с коэффициентом k=2 (1/k=1/2).

  3. Выполнить закрашивание треугольника и окружности разными цветами.

Задание 17.

  1. Изобразить малый равносторонний треугольник АВС и большой треугольник, описанный вокруг него.

  2. Выполнить масштабирование большого треугольника вокруг точки пересечения биссектрис таким образом, чтобы он стал вписанным в малый треугольник.

  3. Выполнить закрашивание полученных объектов разными цветами.

Задание 18.

  1. Изобразить квадрат АВСD с координатами А (20,40), В(20,80), С (60,80), D(60,40) и ромб KLMN с координатами K (20,30), L(30,50), M(40;30), N(30,10).

  2. Выполнить сдвиг примитивов на dx= dy= 3см.

  3. Выполнить поворот примитивов вокруг начала координат на угол =30.

  4. Выполнить закрашивание двух примитивов.

Задание 19.

  1. Изобразить прямоугольный треугольник АВС с координатами А (20,20), В(50,20), С(50,50).

2. Выполнить поворот вокруг точки С(50,50) на угол =180.

3. Вписать окружность в заданный треугольник.

  1. Выполнить закрашивание треугольника и окружности разными цветами.

Задание 20.

1. Изобразить прямоугольник АВСD с координатами А (20,50), В(70,50), С (70,10), D(20,10).

  1. Выполнить поворот вокруг начала координат на угол =180.

  2. Изобразить окружность с центром в точке А и радиусом 25.

  3. Выполнить закрашивание прямоугольника и окружности разными цветами.

Задание 21.

  1. Изобразить квадрат АВСD с координатами А (30,30), В(30,50), С (50,50), D(50,30).

  2. Выполнить растяжение относительно точки N(40,40) с коэффициентом k=2 по оси Х.

  3. Разместить 2 окружности внутри полученного прямоугольника.

  4. Выполнить закрашивание прямоугольника и окружности разными цветами.

Задание 22.

  1. Изобразить ромб АВСD произвольных размеров.

  2. Выполнить сжатие относительно вершины В с коэффициентом 2 (1/k=0,5).

  3. Изобразить окружность с центром в точке С и радиусом 20.

  4. Выполнить закрашивание квадрата и окружности разными цветами.

Задание 23.

  1. Изобразить треугольник АВС с координатами А (20,50), В(50,50), С (50,100).

  2. Выполнить поворот вокруг точки А(20,50) на угол =90.

  3. Вписать окружность в заданный треугольник.

  4. Выполнить закрашивание треугольника и окружности разными цветами.

Задание 24.

1. Изобразить прямоугольник АВСD с координатами А (20,50), В(70,50), С (70,10), D(20,10).

  1. Выполнить поворот вокруг точки А(20,50) на угол =90.

  2. Изобразить окружность с центром в точке В и радиусом 15.

  3. Выполнить закрашивание прямоугольника и окружности разными цветами.

Задание 25.

  1. Изобразить квадрат АВСD с координатами А (20,30), В(20,90), С (80,90), D(80,30) и вписанный в него равносторонний треугольник.

  2. Выполнить сдвиг примитивов на dx= -5см; dy= -1 см.

  3. Выполнить сжатие примитивов относительно точки пересечения диагоналей квадрата c коэффициентом 3 (1/k=1/3).

  4. Выполнить закрашивание двух примитивов.

Задание 26.

  1. Изобразить ромб АВСD и окружность с центром в точке пересечения диагоналей ромба.

  2. Выполнить растяжение двух объектов относительно центра окружности с коэффициентом k=2; выполнить сдвиг полученного ромба на dy= 10 см.

  3. Выполнить закрашивание примитивов разными цветами.

Задание 27.

  1. Изобразить квадрат АВСD с координатами А (10,30), В(10,50), С (30,50), D(30,30) и окружность радиусом 30 и центром в точке В.

  2. Выполнить сдвиг двух примитивов на dx=2см.

  3. Выполнить поворот примитивов относительно начала координат на угол =-90.

  4. Выполнить закрашивание примитивов разными цветами.

Задание 28.

  1. Изобразить квадрат АВСD с координатами А (20,40), В(20,80), С (60,80), D(60,40) и описанную вокруг него окружность.

  2. Выполнить поворот квадрата вокруг точки пересечения диагоналей на угол =45.

  3. Выполнить закрашивание объектов разными цветами.

Задание 29.

  1. Изобразить малый равносторонний треугольник АВС и большой треугольник, описанный вокруг него.

  2. Выполнить масштабирование большого треугольника вокруг точки пересечения биссектрис таким образом, чтобы он стал вписанным в малый треугольник.

  3. Выполнить закрашивание полученных объектов разными цветами.

Задание 30.

  1. Изобразить квадрат АВСD с координатами А (30,30), В(30,50), С (50,50), D(50,30).

  2. Выполнить растяжение относительно точки N(40,40) с коэффициентом k=2.

  3. Вписать окружность в заданный квадрат.

  4. Выполнить закрашивание квадрата и окружности разными цветами.

Задание 31.

  1. Изобразить ромб АВСD с координатами А (30;55), В(50,80), С (70;55), D(50,30) и трапецию АВСD с координатами А (20,30), В(40,50), С (60,50), D(70,30).

  2. Выполнить сдвиг примитивов на dx= -20; dy= -50.

  3. Выполнить поворот трапеции относительно точки В на угол =20.

  4. Выполнить закрашивание полученных примитивов разными цветами.

Задание 32.

  1. Изобразить треугольник АВС с координатами А (20,20), В(50,20), С(50,50).

  2. Выполнить поворот вокруг точки С(50,50) на угол =90и растяжение относительно точки А с коэффициентом k=2.

  3. Вписать окружность в заданный треугольник.

  4. Выполнить закрашивание треугольника и окружности разными цветами .

Задание 33.

  1. Изобразить квадрат АВСD с координатами А (20,20), В(20,60), С (60,60), D(60,20).

  2. Выполнить сжатие относительно точки К(40,40) с коэффициентом 2 (1/k=0,5) и поворот относительно начала координат на угол =-30;

  3. Изобразить окружность с центром в точке С и радиусом 20.

  4. Выполнить закрашивание квадрата и окружности разными цветами .

Задание 34.

  1. Изобразить трапецию АВСD с координатами А (30,30), В(40,50), С (60,50), D(70,30).

  2. Выполнить поворот относительно начала координат на угол =-90; выполнить перемещение полученной трапеции на dx=dy= 20.

  3. Выполнить растяжение относительно точки N(4,4) с коэффициентом k=2.

  4. Выполнить закрашивание полученной трапеции.

Задание 35.

  1. Изобразить прямоугольник АВСD с координатами А (0,10), В(0,60), С (60,60), D(6,10) и прямоугольник с вершинами в серединах сторон прямоугольника ABCD.

  2. Выполнить растяжение примитивов относительно точки пересечения диагоналей прямоугольника ABCD с коэффициентом k=2 и поворот относительно начала координат на угол =-90.

  3. Выполнить закрашивание объектов разными цветами.

Задание 36.

  1. Изобразить треугольник АВС с координатами А (20,30), В(30,50), С (40;30) и квадрат с координатами А (10,15), В(10,45), С (40,45), D(40,15).

  2. Выполнить сдвиг примитивов на dy= 30.

  3. Выполнить поворот примитивов вокруг начала координат на угол =135.

  4. Выполнить закрашивание двух примитивов.

Задание 37.

  1. Изобразить окружность радиусом 30 и центром в точке K (30,30) и треугольник АВС с координатами А (20,50), В(50,50), С (50,100).

  2. Выполнить поворот треугольника вокруг точки А(20,50) на угол =45 и сдвиг примитивов на dy= -50.

  3. Выполнить закрашивание треугольника и окружности разными цветами.

Задание 38.

  1. Изобразить окружность радиусом 30 и центром в точке K (30,30) и треугольник АВС с координатами А(10,25), В(25,25), С(25,50).

  2. Выполнить сжатие объектов относительно начала координат с коэффициентом k=2 (1/k=1/2) и поворот треугольника вокруг точки А на угол =-45 .

  3. Выполнить закрашивание треугольника и окружности разными цветами.

Задание 39.

  1. Изобразить ромб АВСD с координатами А (20,45), В(40,70), С (60,45), D(40,20)и вписанный в него прямоугольник KLMN.

  2. Выполнить сдвиг примитивов на dx= dy= 30.

  3. Выполнить поворот примитивов вокруг начала координат на угол =30.

  4. Выполнить закрашивание двух примитивов .

Задание 40.

  1. Изобразить прямоугольник АВСD с координатами А (0,20), В(0,60), С (60,60), D(60,20).

  2. Выполнить сдвиг прямоугольника на dх= 30 .

  3. Выполнить поворот вокруг начала координат на угол =30.

  4. Провести диагональ в прямоугольнике.

  5. Выполнить закрашивание полученных 2-х треугольников разными цветами.

Задание 41.