Компьютерная графика утверждено на заседании кафедры №304




Скачать 0.74 Mb.
Название Компьютерная графика утверждено на заседании кафедры №304
страница 7/9
Дата публикации 23.05.2014
Размер 0.74 Mb.
Тип Задача
literature-edu.ru > Информатика > Задача
1   2   3   4   5   6   7   8   9

ПРОЕЦИРОВАНИЕ ГЛАДКИХ ПОВЕРХНОСТЕЙ

НА КАРТИННУЮ ПЛОСКОСТЬ



Рассмотрим проблемы проецирования поверхностей любого вида на картинную плоскость на примере параллельного проецирования.


Пусть картинная плоскость совпадает с плоскостью Оxy, т.е. описывается уравнением X = 0, а проецирующие прямые перпендикулярны картинной плоскости. Интересны три принципиально важных вида поверхностей.

  1. Плоскость или обыкновенная поверхность описывается уравнением

(см. рис. 43)

Z = X или X – Z = 0




Вычислим координаты нормального вектора

N = (1,0,-1),

вектор, вдоль которого осуществляется проецирование

L = (1,0,0),

очевидно, что скалярное произведение

( N, L ) = 1 > 0,

т.е. вектор проецирования и нормальный вектор поверхности не перпендикулярны ни в одной точке поверхности и все точки плоскости однократно отображаются на картинной плоскости.


  1. Параболический цилиндр с уравнением

Z = X2 или X2 - Z = 0 (см. рис. 44)

Нормальный вектор

N = (2x, 0, -1),

скалярное произведение

( N, L ) = 2x,

т.е. в точках оси Oy ( N, L ) = 0, и вектора ортогональны.

Т
огда точки плоскости X = 0 разбиваются на три класса:

  • точки Z > 0, которые имеют 2 прообраза на поверхности,

  • точки на оси Oy, которые имеют 1 прообраз на поверхности,

  • точки, у которых нет прообразов на поверхности.

Такая особенность проецирования (или вид поверхности) называется складкой.
3. Поверхность, заданная уравнением

Z = X3 + XY или X3 + XY- Z = 0 (см. рис. 45)





Нормальный вектор

N = ( 3 X2 + Y, X, -1 )

скалярное произведение

( N, L ) = 3X2 + Y.

Исходя из уравнения

3 X2 + Y = 0

находим на поверхности кривую, вдоль которой вектора N и L ортогональны. Это полукубическая парабола

27 Z2 = - 4Y3,

которая на плоскости X = 0 делит точки на три класса:

  • точки, имеющие 1 прообраз на поверхности,

  • точки на параболе, которые имеют 2 прообраза на поверхности,

  • точки внутри острия, имеющие 3 прообраза на поверхности.

Эта особенность проецирования называется сборкой.

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

Это значит, что более сложные особенности оказываются неустойчивыми и при малых изменениях направления проецирования либо взаимного расположения поверхности и картинной плоскости эти особенности переходят в более простые.

Алгоритмы компьютерной графики

РАСТРОВЫЕ АЛГОРИТМЫ



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

Рассмотрим графическую библиотеку компилятора Borland C++, которая содержит все необходимые файлы для работы с графикой.

Для инициализации библиотеки служит функция

v
oid far initgraph(int_far*driver, int_far*mode, char_far*path)

где *driver – задает тип адаптера,

*mode – определяет режим, например,





*path – имя каталога, где находится драйвер адаптера (файл типа BGI – Borland Graphics Interface).

Функция graphresult возвращает код завершения предыдущей графической операции

int far graphresult (void)

Любая графическая библиотека (в том числе и рассматриваемая) содержит модули для реализации основных графических объектов:

  • линейные изображения (отрезки прямых, дуги окружностей, дуги эллипсов),

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

  • шрифты,

  • изображения, т.е. прямоугольные матрицы пикселей, независимо от содержания.

Эти объекты называются также графическими примитивами.

Библиотека Borland C++ содержится в файле graphics.h. Примеры функций графики из этой библиотеки приведены в табл.6.

Общий вид вызова функции:
{имя} ( {параметры} )

Таблица 6


Вызов

Выполняемая функция

Примечания

Для рисования линейных изображений

clearviewport(void)

очистка экрана




putpixel(x,y)

ставит точку заданного цвета

x,y – координаты точки,

Col – номер цвета

getpixel(x,y)

возвращает цвет точки




setcolor(Col)

устанавливает цвет пера




line(x1,y1,x2,y2)

линия

x1,y1 – координаты начала, x2,y2 – координаты конца

circle(x,y,r)

окружность

x,y – координаты центра,

r – радиус

arc(x,y,N,K,r)

дуга окружности

N,K –начало и конец дуги в градусах против часовой стрелки

ellipse(x,y,N,K,rx,ry)

дуга эллипса

rx, ry –радиусы по Ox и Oy

Для двумерных областей (закраска)

setfillstyle(Pat,Col)

задание кисти



 используются совместно



setfillpattern(Pat,Col)

пользователь-ский шаблон кисти

bar(x1,y1,x2,y2)

закраска прямоугольни-ка

x1,y1 – коорд. верхнего лево-го угла, x2,y2 – коорд. право-го нижнего угла

Работа со шрифтами

settextstyle(Font,Dir,Size)

выбор шрифта




outtextxy(x,y,Text)

вывод текста

x,y – коорд. верхнего левого угла первого символа


Рассмотрим функцию выбора шрифта

void far settextstyle (int Font, int Direction, int Size);

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





Direction – определяет ориертацию текста (горизонтальная или вертикальная):





Size – указывает, во сколько раз нужно увеличить шрифт перед выводом на экран. Например, для шрифта DEFAULT_FONT возможны значения:

1 - матрица 8х8 пикселей,

2 - матрица 16х16 пикселей,

. . .

10 – матрица 80х80 пикселей.

Приведем типовую форму файла с использованием графики и вывода текста на экран.

# include

# include

# include

# include

int main (void)

{

int driver = DETECT, gmode, errorcode;

int x,y;

initgraph(&gdriver,&gmode);

errorcode = graphresult();

if (errorcode != OK)

{

printf(“Graph. error:%s\n”,grapherrormsg(errorcode));

printf(“Press any key to halt:”);

getch();

exit(1);

}

printf(“Graph.error:%S\n”,grapherrormsg(errorcode));

x=getmaxx()/2;

y=getmaxy()/2;

settextstyle(GOTHIC_FONT, GORIZ_DIR,8);

outtextxy(x,y, ”Press any key to close a gr.sys:”);

getch();

closegraph();

printf(“We are now back in text mode.\n”);

printf(“Press any key to halt:”);

getch();

return0;

}

АЛГОРИТМЫ ВЫЧЕРЧИВАНИЯ ЛИНИЙ



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

Важным понятием растровой графики является связность, т.е. возможность соединения двух пикселей растровой линией (последовательным набором пикселей). Линия состоит из соседних одинаково закрашенных пикселей.

И
спользуется два понятия связности для точек a1(x1,y1) и a2(x2,y2) (см. рис.46).
Понятие 4-хсвязности более строгое, чем 8-связность (т.е. является частным случаем).

В качестве линии на растровой сетке выступает набор пикселей p1,p2,…,pn , где два пикселя pi, pi+1 являются соседними; линия может быть определена в смысле 4-хсвязной или 8-связной.

Одним из подходов к вычерчиванию линии является использование соотношения между смещением по координатам х и у.

Для простоты считаем, что

0  y2-y1  x2-x1

о
трезок описывается уравнением

или y = k x + b.

П
усть требуется провести линию от a1(0,0) и a2(10,5). Тогда смещения

y = 5 и y = 10, а соотношение

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

Этот метод используется довольно редко.

Наиболее популярный метод изображения линий основан на алгоритме Брезенхейма (Bresenhame), предложенный в 1965 г. для растрового построения отрезка.

Алгоритм Брезенхейма отличается тем, что не требуется выполнять деление или умножение чисел с плавающей точкой. Вместо этого отношение между значениями координат x и y представляется косвенно через серии сложений и вычитаний. Основная идея алгоритма Брезенхейма – это регистрация средних значений погрешностей между идеальным положением каждой точки и той позицией на экране дисплея, в которой она реально отображается.

В принципе, алгоритм применим для любой формы линии. Его суть – итерационный процесс поиска соседних точек, начиная с точки a1(x1,y1).

Алгоритм Брезенхейма:

а) в каждой итерации цикла вычерчивания линии вычисляются 2 погрешности по осям x и y, которые увеличиваются с изменением координат x и y соответственно;

б) если значение погрешности достигает определенной величины, оно вновь устанавливается в 0, а соответствующая координата увеличивается на 1;

в) этот процесс продолжается, пока вся линия не будет построена полностью и мы не попадем в точку конца.

При построении отрезка прямой всегда выбирается ближайший по вертикали пиксель (см. рис.47).

При этом из двух точек А и В A

выбирается та, которая ближе к a{

исходной прямой, т.е. точка А, т.к. }b

a < b . B

Для этого вводится число, равное

d = (x2-x1)(b-a) Рис. 47.

Если d>0, то значение y от предыдущей точки увеличивается на 1, а d – на 2(y -x), в противном случае значение y не изменяется, а d = 2 y.

Тогда простейший алгоритм для того же примера

0  y2-y1  x2-x1

имеет вид:

void line ( int x1, int y1, int x2, int y2, int Color )

{

int dx = x2-x1;

int dy = y2-y1;

int d = (dy<<1)- dx;

int d1 = dy<<1;

int d2 = (dy-dx)<<1;

putpixel(x1,y1,Color);

for (int x = x1+1; y = y1; x<=x2; x++)

{

if (d>0) { d+ = d2; y+ = 1;

}

else d+ = d1;

putpixel(x,y,Color);

}

}

Для дуг окружностей и эллипсов приращения и погрешности вычисляются по более сложным выражениям.


ВЫЧЕРЧИВАНИЕ ОТРЕЗКОВ



Необходимость отсечь видимое изображение по границам некоторой области встречается довольно часто.

Алгоритм Сазерленда-Кохена


Пусть область отсечения ограничена прямоугольником (см. рис. 48а). Четыре линии, образующие прямоугольник, делят плоскость на 9 областей, которые могут быть закодированы тетрадой Code (см. рис. 48б).





Каждый бит тетрады имеет смысл:

0 – точка левее прямоугольника,

1 – точка выше прямоугольника,

2 – точка правее прямоугольника,

3 – точка ниже прямоугольника.

Тогда для произвольной точки M(x,y) на прямой L можно определить тетраду (полубайт) принадлежности внутренности прямоугольника, исходя из условия, что если Code = 0000B, точка находится внутри прямоугольника, иначе – точка вне прямоугольника.

ОПРЕДЕЛЕНИЕ ПРИНАДЛЕЖНОСТИ ТОЧКИ

ВНУТРЕННОСТИ МНОГОУГОЛЬНИКА



В общем случае многоугольник ограничивается ломанной p1, p2,…, pn (см. рис. 49). Для некоторой точки M(x,y) задача принадлежности может быть решена путем построения произвольного луча из точки М и определения числа пересечений этого луча с границей многоугольника.





Удобно использовать горизонтальные или вертикальные лучи, тогда:

  1. если луч не проходит через вершину (рис.49а), то условие принадлежности точки внутренности многоугольника – нечетное число пересечений луча со сторонами многоугольника, если число пересечений четное, то точка лежит вне многоугольника;

  2. если луч проходит через вершину, то возможны следующие 4 варианта

  • (рис. 49 б) М1 и М2 – простые случаи, ребра, выходящие из вершины лежат либо по одну сторону от луча, либо по разные стороны. Это – экстремальные случаи, и четность числа пересечений инвертируется для М1 и сохраняется для М2;

  • (рис. 49 в) для точек М3 и М4 такой подход непосредственно не годится.

В общем случае получаем алгоритм:

  • все отрезки ломанной, кроме горизонтальных, проверяются на пересечение с горизонтальным лучом, выходящим из точки М,

  • при попадании луча в вершину пересечение засчитывается только с теми отрезками, выходящими из вершины, для которых она является верхней.

ЗАКРАСКА ОБЛАСТИ, ЗАДАННОЙ ЦВЕТОМ ГРАНИЦЫ



Рассмотрим область, ограниченную набором пикселей заданного цвета, и точку M(x,y), лежащую в этой области (см. рис. 50).

Задача заполнения заданным цветом,

если область не является выпуклой, может

оказаться сложной.

Существуют несколько алгоритмов закраски.

Алгоритм “растекания цвета”:

  1. организавать цикл закраски пикселей

до достижения границы области,

2) закрасить пиксель M(x,y) заданным цветом,

  1. закрасить соседние пиксели в смысле 4-х

или 8-связности. Рис. 50

Этот алгоритм не эффективен, т.к. для уже закрашенного пикселя функция закраски выполняется еще три раза.

Алгоритм «штриховка»:

  1. для заданной точки M(x,y) определить и закрасить максимальный горизонтальный отрезок внутри области,

  2. проверить отрезки выше и ниже в поисках незакрашенных пикселей,

  3. если такие пиксели найдены, то повторяется п.1.

Алгоритм работает эффективно для областей любой формы.

УДАЛЕНИЕ НЕЛИЦЕВЫХ ГРАНЕЙ


Рассмотрим многогранник ( рис. 51) и решим задачу

видимости граней аналогично задаче освещенности,

рассмотренной выше. n1 n2

Если вектор нормали какой-либо

грани n составляет с вектором L, задающим n3

направление проецирования, тупой угол,

то эта грань не видна и называется n4

нелицевой. L

Когда соответствующий угол является

острым, грань называется лицевой. Рис. 51

В случае параллельного проецирования имеем для лицевой грани

(n,L)  0

При центральном проецировании с центром в точке C вектор проецирования для произвольной точки P будет равен

L = C – P

Условие видимости для любой точки P грани то же

(n,L)  0

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

Для выпуклого многогранника удаление нелицевых граней решает задачу удаления невидимых ребер.

Рассмотрим подробнее алгоритмы.

УДАЛЕНИЕ НЕВИДИМЫХ ЛИНИЙ





  1. Алгоритм Робертса предназначен для фигур, у которых каждая грань – выпуклый многоугольник:

  1. отбрасываются все ребра, обе образующие грани которых являются нелицевыми;

  2. проверяется каждое из оставшихся ребер со всеми гранями многогранника на закрывание. При этом возможны три случая (см. рис.52):




а) б) в)






Рис. 52
а) грань не закрывает ребро (рис.52а);

б) грань полностью закрывает ребро, тогда ребро удаляется из списка видимых (рис.52а);

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

Можно сократить количество проверок, если картинную плоскость разбить на клетки, и для каждой клетки составить список тех граней, проекции которых имеют непустое пересечение с данной клеткой. Для проверки произвольного ребра сначала находим клетки, в которые попадает проекция этого ребра, и рассматриваются только те грани, которые содержатся в списках данных клеток.

  1. Алгоритм Аппеля применим для произвольного многогранника.

Введем понятие количественной невидимости точки – это количество лицевых граней, закрывающих ее.

Точка является видимой только в случае, если ее количественная невидимость равна нулю. A B

Контурная линия – это ломанная,

состоящая из ребер, для которых одна D C

из граней является лицевой, а другая – нелицевой.

Например, линия ABCC’D’DEE’A’A (см. рис.53). E

Количественная невидимость точек ребра A’ B’

изменяется на единицу при прохождении ребра

позади контурной линии. D’ C’




E’

Рис. 53
Алгоритм определения видимости ребер произвольного многогранника:

а) берется какая-либо его вершина и определяется ее количественная невидимость;

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

в) выполняется переход к следующей вершине и возврат к п.а);

г) если ребро выходит из вершины, принадлежащей контурной линии, проверяется, не закрывается ли это ребро одной из граней (например, линия DD’).

Так как у реальных многогранников количество ребер, входящих в контурную линию, намного меньше общего числа ребер, то алгоритм Аппеля более эффективен, чем алгоритм Робертса.

Удаление невидимых граней



Метод z-буфера (буфера глубины)

Каждому пикселю p(x,y) картинной плоскости, кроме цвета, хранящегося в видеопамяти, сопоставляется расстояние его от картинной плоскости вдоль направления проецирования z (его глубина). Вначале массив глубин инициализируется со значением +.

Для вывода на картинную плоскость произвольной грани она переводится в растровое представление и для каждого пикселя находится его глубина. В случае, если эта глубина меньше глубины, хранящейся в z-буфере, пиксель рисуется и его глубина заносится в z-буфер. Заметим, что для вычисления глубины соседних пикселей при растровом разложении грани можно использовать вариант целочисленного алгоритма Брезенхейма.

АЛГОРИТМЫ УПОРЯДОЧЕНИЯ



Введем понятие сцены как комплекса изображений пространственных фигур на экране дисплея (или в кадре), т.е. на картинной плоскости.

Понятие сцены включает в себя в общем случае:

  1. предметы (пространственные объекты),

  2. освещение (цвет, число источников света и их характеристики),

  3. фон, т.е. плоские объекты, заполняющие пространство экрана, не заполненное предметами.

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

или нескольких граней на фрагменты, которые

можно упорядочить.




Рис.54

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

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

Иногда просто сортировка по расстоянию до картинной плоскости не обеспечивает правильного упорядочения граней. Поэтому после сортировки проводится проверка порядка вывода граней.

Рассмотрим алгоритм проверки для случая параллельного проецирования вдоль оси Оz.

Перед выводом грани P следует убедиться, что никакая другая грань Q, проекция которой на ось Оz пересекается с проекцией грани Р, не будет закрываться гранью Р.

Алгоритм состоит из проверок:

а) пересекаются ли проекции этих граней на ось Ox?

б) пересекаются ли их проекции на ось Oy?

в) находится ли грань P по другую сторону от плоскости, проходящей через грань Q, чем начало координат (наблюдатель)?

г) находится ли грань Q по ту же сторону от плоскости, проходящей через грань P, что и начало координат (наблюдатель)?

д) пересекаются ли проекции этих граней на картинную плоскость?

Если хотя бы на один из этих вопросов получен отрицательный ответ, то считаем, что эти грани P и Q упорядочены верно, и сравниваем P со следующей гранью; в противном случае считаем, что эти грани нужно поменять местами, для чего дополнительно проверяются тесты:

е) находится ли грань Q по другую сторону от плоскости, проходящей через грань P, чем начало координат?

ж) находится ли грань P по ту же сторону от плоскости. проходящей через грань Q, что и начало координат?

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

2.Метод двоичного разбиения пространства.

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

Очевидно, что ни одна из граней, лежащих в полупространстве, не содержащем наблюдателя, не может закрывать ни одну из граней, лежащих в том же полупространстве, что и наблюдатель. Таким образом сначала выводятся грани из дальнего кластера, а затем – из ближнего.

Многократно применяя ту же технику для упорядочения граней внутри каждого кластера (см. рис.55 – плоскости П, Ш, IV), добиваемся того, что в каждом кластере оказывается не более одной грани.

В качестве разбивающей плоскости часто используют плоскость, проходящую через одну из граней. При этом множество всех граней разбивается на 4 класса (лежащих на плоскости, пересекающих ее, лежащих в положительном полупространстве и лежащих в отрицательном полупространстве). Затем строится дерево разбиения пространства. Когда дерево построено, осуществляется построение изображения в зависимости от используемого проецирования (параллельного или центрального).




3. Метод построчного сканирования.

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

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


  1. Алгоритм Варнака.


Этот алгоритм основан на разбиении картинной плоскости на части, для каждой из которых задача видимости решается достаточно просто (см. рис.57).
Видимая часть картинной плоскости

делится на 4 части. Далее:

  1. если часть полностью закрыта проекцией

ближайшей грани или не содержит изображе-

ние ни одной грани, то решение очевидно;

  1. иначе часть делится на 4 более мелких

части и переходим к п.1;

  1. процесс разбиения продолжается с

точностью до пикселя. Рис.57

1   2   3   4   5   6   7   8   9

Похожие:

Компьютерная графика утверждено на заседании кафедры №304 icon Компьютерная графика
Компьютерная графика (также машинная графика) — область деятельности, в которой компьютеры используются как для синтеза изображений,...
Компьютерная графика утверждено на заседании кафедры №304 icon Рабочая программа по дисциплине ен. Р. 1/ ен. Р. 2 «Инженерная компьютерная графика»
«Электропривод и автоматика промышленных установок и технологических комплексов» (ЭП)
Компьютерная графика утверждено на заседании кафедры №304 icon Рабочая программа по дисциплине принята на заседании кафедры русской...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Компьютерная графика утверждено на заседании кафедры №304 icon Рабочая программа по дисциплине ен. В1/ЕН. Р1 «Инженерная компьютерная графика: Часть 1»
Электропривод и автоматика промышленных установок и технологических комплексов (ЭП)
Компьютерная графика утверждено на заседании кафедры №304 icon *Дизайн и компьютерная графика, полиграфия
Получить удаленную работу рерайтера, копирайтера, контент менеджера, администратора и наполнителя сайта, наборщика текстов
Компьютерная графика утверждено на заседании кафедры №304 icon Рабочая программа по дисциплине дс. Ф. 9 /ЕН. Р. 1/ЕН. Р. 1 Компьютерная графика
Омский институт водного транспорта (филиал) фбоу впо «Новосибирская государственная академия водного транспорта»
Компьютерная графика утверждено на заседании кафедры №304 icon Рабочая программа по дисциплине б вб. 2/С. 2В. 1/С. 2Вб. 2/Б в. 2 Компьютерная графика
Эксплуатация судового оборудования и средств автоматики (ЭМ/ЭМз) / Эксплуатация судовых энергетических установок (СМ/СМз)/ Кораблестроение,...
Компьютерная графика утверждено на заседании кафедры №304 icon Компьютерная графика. Цель курса
Цель курса: приобретение учащимися теоретических знаний и практических навыков, необходимых для дальнейшей практической деятельности....
Компьютерная графика утверждено на заседании кафедры №304 icon Методические указания по выполнению курсовой работы дисциплины
Методические указания по выполнению курсового работы составлены доцентом кафедры стс марковой Т. А. и обсуждены на заседании кафедры...
Компьютерная графика утверждено на заседании кафедры №304 icon Учебно-методический комплекс «теория менеджмента» Направление подготовки 080200 «Менеджмент»
Утверждено на заседании Учебно-методического совета Мурманского филиала ноу впо мосАП
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции