1. Назовите основные виды графических изображений, выделяемые по их создания.
2. Назовите основные параметры, определяющие качество растровых изображений.
3. Проведите сравнительный анализ растровой и векторной графики с точки зрения технологии создания изображений, возможности их редактирования (включая масштабирование), объёма занимаемой памяти, применения и других характеристик.
4. Сколько памяти требуется для хранения изображения размером 1280 х 1024 пикселей при использовании палитры из 16 777 216 цветовых оттенков?
5. Какие преимущества при формировании изображения обеспечивает механизм слоёв?
6. Подготовьте небольшое сообщение об истории разработки кривых Безье.
7. В зависимости от области применения выделяют научную, деловую, конструкторскую, иллюстративную, художественную и рекламную графику. Подберите печатные или электронные образцы изображений каждого вида.
8. Что такое формат графического файла? Предложите классификацию известных вам форматов графических файлов.
9. В связи с чем в графических форматах применяются алгоритмы сжатия?
10. Какая из следующих картинок будет иметь самый короткий код при сжатии алгоритмом RLE1?
1 По материалам международного конкурса по информатике «Бобёр».
11. Сообщение, сжатое с алгоритма RLE, имеет вид:
Восстановите первоначальный вид сообщения, если известно, что оно состоит из 10 строк, в каждой из которых содержится по 16 символов.
12. Сравните цифровую и плёночную фотографии с точки зрения технологии создания изображений, их качества, возможности обработки и рас и т.д
var x: integer; { введенное число } n: byte := 0; { количество цифр в числе } i, j: byte; { счетчики } xi: array[1..5] of integer;{массив цифр, из которых состоит число}
begin { Ввод исходного числа } readln(x); writeln; x := abs(x); // рассматриваем модуль числа { Разбиение числа на цифры } while (x > 0) do begin n := n + 1; // увеличиваем количество цифр xi[n] := x mod 10; // вычисляем цифру (остаток от деления на 10) if xi[n] = 8 then // если встретилась 8, begin writeln('да'); // то число "бесконечное" readln; exit; // выход из программы end; x := x div 10; // изменяем число (целое от деления на 10) end; { Поиск цифр, встречающихся больше одного раза} for i := 1 to n - 1 do for j := i + 1 to n do if xi[i] = xi[j] then // если числа begin writeln('да'); // то число "бесконечное" readln; exit; // выход из программы end; { Число не явлется "бесконечным" } writeln('нет');end.
#include <iostream>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
using namespace std;
double distance(double x1, double y1, double x2, double y2)
{
return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
int main() {
double ax, ay, bx, by, cx, cy;
double ab, ac, bc;
cout << "A: ";
cin >> ax >> ay;
cout << "B: ";
cin >> bx >> by;
cout << "C: ";
cin >> cx >> cy;
ab = distance(ax, ay, bx, by);
bc = distance(bx, by, cx, cy);
ac = distance(ax, ay, cx, cy);
// Используем свойство тупоугольности треугольника: a^2+b^2<c^2
if ((ab * ab + bc * bc < ac * ac) || (ab * ab + ac * ac < bc * bc) || (bc * bc + ac * ac < ab * ab))
{
// Площадь по формуле Герона
double hp = (ab + ac + bc) / 2; // Полупериметр
cout << "Square: " << sqrt(hp * (hp - ab) * (hp - ac) * (hp - bc)) << endl;
cout << max(max(ab, ac), bc) << ", "
<< (ab + ac + bc - min(min(ab, ac), bc) - max(max(ab, ac), bc)) << ", "
<< min(min(ab, ac), bc);
}
else cout << "Entered points cannot be vertices of an obtuse triangle";
return 0;
}