Существует два основных вида компьютерной графики - векторная и растровая. растровый рисунок представляет из себя сетку пикселей, разность цветов этих пикселей образует графический образ, воспринимаемый человеческим глазом как единая картина. векторный же рисунок состоит из отдельных сущностей: линии, многоугольники, эллипсы и т.п. фигуры, отрисовкой этих фигур попиксельно занимается просмотрщик изображения (например браузер). основным преимуществом векторного рисунка является то, что такой рисунок может как угодно трансформироваться и масштабироваться без потери качества. каждая фигура перед выводом на экран рассчитывается по формулам и может быть перерисована (перерассчитана) за доли секунды, если это потребуется. естественно, это дает преимущество и в конечном размере файла, так как нет необходимости описывать каждый пиксель, все пиксели отрисовываются, исходя из инструкций. однако в векторном формате можно создавать лишь достаточно примитивные изображения. представьте себе красочную фотографию, где присутствует пляж, закат, пальмы, туристы, птицы. представили? а теперь подумайте, сколько нужно усилий, чтобы эту фотографию сделать из фигур, сколько формул применить, сколько маленьких участков залить цветом и каким образом реализовать плавный переход от синего моря до желтого пляжа. наверное, вам стало страшно, именно поэтому основным способом хранения для фотографий является растровый формат jpeg с большой степенью сжатия. вектор идеально подходит для создания схем, простых образов без сложного перехода цветов. векторное изображение: растровое изображение:растровое изображение пример сложной векторной графики: сложная векторная графика как видите, каждая из веток графики содержит свои плюсы и минусы. было бы глупо не найти способ объединить эти виды в единое целое, поэтому большинство форматов векторной графики сегодня позволяют смешивать себя с растровой графикой. растровая картинка в векторном формате является такой же единой сущностью, как и другие фигуры. например, в svg растровые картинки можно подключать из отдельного файла и выводить на любом участке холста.
type hk = record name: string[20]; shyiba: record gol_per: integer; gol: integer; straf_time: integer end end;
var hokiyArray, hokiyArray01: array[1..100] of hk; i, n: integer; f: text;
begin Assign(f, 'test.txt'); Rewrite(f); Writeln('ДИНАМО '); Write('Введите количество нападающих : '); Readln(n); for i := 1 to n do begin Writeln(''); Writeln(' Введите данные ', i, 'нападающего'); Write(' Введите имя : '); Readln(hokiyArray[i].name); Writeln(''); Writeln; Write(' Количество заброшеніх шайб : '); Readln(hokiyArray[i].shyiba.gol_per); Write('Количество голевіх передач '); Readln(hokiyArray[i].shyiba.gol); Write(' Количество штрафного времени '); Readln(hokiyArray[i].shyiba.straf_time); Writeln end; Writeln; for i := 1 to n do begin with hokiyArray[i] do Writeln(f, 'ДИНАМО', name, ' ', shyiba.gol_per, ' ', shyiba.gol, ' ', shyiba.straf_time); end; Close(f);
Assign(f, 'test01.txt'); Rewrite(f); Writeln('СПАРТАК '); Write('Введите количество нападающих : '); Readln(n); for i := 1 to n do begin Writeln(''); Writeln(' Введите данные ', i, 'нападающего'); Write(' Введите имя : '); Readln(hokiyArray01[i].name); Writeln(''); Writeln; Write(' Количество заброшеніх шайб : '); Readln(hokiyArray01[i].shyiba.gol_per); Write('Количество голевіх передач '); Readln(hokiyArray01[i].shyiba.gol); Write(' Количество штрафного времени '); Readln(hokiyArray01[i].shyiba.straf_time); Writeln end; Writeln; for i := 1 to n do begin with hokiyArray01[i] do Writeln(f, 'СПАРТАК', name, ' ', shyiba.gol_per, ' ', shyiba.gol, ' ', shyiba.straf_time); end; Close(f)