Цифровая модель автомобиля (адаптация урока, написанного для книги "3ds max. Трюки и эффекты") Часть первая




НазваниеЦифровая модель автомобиля (адаптация урока, написанного для книги "3ds max. Трюки и эффекты") Часть первая
страница8/9
Дата28.01.2013
Размер1.16 Mb.
ТипУрок
1   2   3   4   5   6   7   8   9
Часть пятнадцатая

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

Моделирование дверных ручек

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

  1. Строю геометрию методом редактирования поверхности до сглаживания.

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

Каждый из этих способов имеет свои достоинства и недостатки, поэтому рассмотрим их оба на примере построения ручки двери и крышки бака.

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

рис.141

Сейчас можно построить еще одну серию разрезов по периметру ручки (рис. 142).

ВНИМАНИЕ

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

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

В данном случае для нас является важным фактором сохранение первоначальной формы поверхности двери при увеличении плотность сетки полигонов.

рис.142

Построение ручки должно быть основано на создании самостоятельного элемента, как мы это делали уже неоднократно, поэтому прежде всего необходимо создать область отделения. Для этого выделите ребра, расположенные по периметру ручки и примените к ним инструмент Chamfer (Фаска) с небольшой величиной Chamfer Amount (Величина фаски), а затем выделите область, расположенную внутри построенной фаски и выделите ее в отдельный элемент (рис. 143 слева). Этот элемент можно спрятать для того, чтобы он не мешал дальнейшему редактированию.

Далее перейдите на уровень редактирования Border (Граница) и выделите ребра, образующие внутреннюю границу полученного отверстия. Примените к выделению выдавливание (Extrude) с небольшим значением Extrusion Height (Высота выдавливания) (в моем случае это -5).

С правой стороны углы, образующие форму ручки, имеют меньший радиус заклугления, чем тот, который получается при сглаживании. Сразу же приходит мысль о построении дополнительных разрезов, но есть более прострой способ — изменение веса вершин. Выделите две угловые вершины: одну расположенную в правом верхнем углу, вторую в правом нижнем углу отверстия и установите для них значение параметра Weight (Вес) из свитка Edit Vertices (Редактирование вершин) равное 1.5. В результате, при сглаживании (рис. 143 справа), радиус скруглений уменьшится до необходимого радиуса.

рис.143

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

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

рис.144

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

Прежде всего необходимо сказать о том, что наиболее ровными получаются окружности, построенные с использованием восьми ребер, расположенных по периметру будущего отверстия или объекта. В данном случае я предварительно построил вспомогательный объект NGon ( N -угольник) с количеством сторон (Sides) равным восьми и в окне проекции Left (Слева) разместил его на месте будущего замка. Затем, с использованием привязок к вершинам, я построил разрезы, точно проходящие по линии восьмиугольника. И, наконец, построил разрезы, соединяющие вершины этого восьмиугольника с ближайшими углами или ребрами (рис. 145 слева). Для ребер, описывающих внешнюю границу углубления необходимо сделать фаску, которая позволит создать необходимую кривизну при сглаживании. Выделив на уровне редактирования полигонов внутреннее пространство ручки, я применил выдавливание со смещением внутрь (рис. 145 справа) для образования углубления в ее средней части.

рис.145

До завершения моделирования ручки осталось совсем немного: создать толщину и выполнить элемент, расположенный в верхней части. Если с толщиной все должно быть понятно, то для построения верхнего элемента можно воспользоваться новым объектом (например, Plane (Плоскость)) или выполнить копирование расположенных ниже полигонов. Я воспользовался вторым способом и построил копию внутренних полигонов со смещением наружу, а затем выполнил их редактирование с целью создания толщины и фаски по краям (рис. 146). В результате у меня получилась законченная модель дверной ручки.

ПРИМЕЧАНИЕ

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

рис.146

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

Построение деталей переднего бампера

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

  1. В окне фронтальной проекции постройте параллелепипед с размерами будущей горизонтальной перемычки. В моем случае это 850х40х20 (длинна, ширина и высота). Количество сегментов по высоте должно быть равно двум, а по длине — шесть. Таким образом мы сможем не только изогнуть параллелепипед, но и выполнить небольшое заострение перемычки в ее передней части (рис. 147 вверху).

  2. Выполните конвертирование построенного объекта в Editable Poly (Редактируемая полигональная поверхность).

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

  4. Выделите горизонтальный ряд ребер, расположенный в середине фронтальной стороны и сместите их немного вперед. Сразу же увеличьте значение счетчика Crease (Складка) для выделенных ребер до 0.6-0.8 — это позволит создать заострение в передней части объекта.

  5. Активизируйте флажок Use NURMS Subdivision (Использовать NURMS разбиения) и установите количество итераций (Iteration) равное 2.

  6. Примените к редактируемому объекту модификатор изгиба: Modifiers>Parametric Deformers>Bend (Модификаторы>Параметрические деформации>Изгиб) и подберите такое значение параметра Angle (Угол) (у меня это значение равно 32), чтобы перемычка повторяла изгиб бампера.

  7. Постройте две копии объекта и разместите их так, чтобы равномерно распределить свободное пространство между тремя построенными элементами.

Выполнение трех вертикальных элементов решетки происходит аналогичным образом, а позади решетки строится плоскость (Plane), которая закрывает отверстие. Для этой плоскости я создал материал прозрачности (Opacity) в виде повторяющихся ромбов.

рис.147

Далее рассмотрим построение противотуманных фар, расположенных по бокам переднего бампера.

Построение противотуманных фар

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

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

  • Конвертируйте построенный объект в Editable Poly (Редактируемая полигональная поверхность).

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

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

СОВЕТ

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

  1. Угол, образованный четырьмя вершинами (три внешних, одна внутренняя) — минимальный радиус закругления. Чаще всего применяется при построении геометрии дверных швов, капота, толщины элементов и т.д.

  2. Угол, образованный тремя вершинами (две внешних, одна внутренняя) — средний радиус закругления. Применяется в случаях, когда угол не имеет ярко выраженного очертания.

  3. Угол, образованный двумя вершинами (одна внешняя, одна внутренняя)— большой радиус закругления. При этом величина радиуса закругления зависит от расстояния до ближайших внешних вершин, расположенных по обе стороны от угла.

  • Постройте два дополнительных разреза, расположенных на расстоянии 2/3 от правого нижнего угла: один в горизонтальной плоскости, другой в вертикальной (рис. 148). Кроме регулирования степени скругления угла, эти разрезы позволят изменить форму поверхности, согласовав ее с изгибом бампера.

ВНИМАНИЕ

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

рис.148

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

  • Завершающим этапом моделирования поверхности стекла противотуманной фары является создание толщины с использованием инструмента Extrude (Выдавливание).

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

рис.149

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

На рисунке 150 показан автомобиль с законченной моделью бампера и номерного знака.

рис.150


Часть шестнадцатая

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

Моделирование решетки воздухозаборника

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

рис.151

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

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

рис.152

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

СОВЕТ

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

рис.153

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

СОВЕТ

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

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

Окончательный вид решетки воздухозаборника представлен на рисунке 154.

рис.154

Следующим шагом будет создание формы стеклоочистителей.

Моделирование стеклоочистителей

Стандартные стеклоочистители состоят из нескольких самостоятельных деталей, моделированием которых мы сейчас и займемся.

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

  1. В окне проекции вида сверху постройте цилиндр с радиусом в 14 мм., высотой 25, количеством сегментов по высоте — 5 и количеством сторон — 8.

  2. Выполните его конвертирование в Editable Poly (Редактируемая полигональная поверхность).

  3. Перейдите на уровень редактирования полигонов и выделите четыре ряда полигонов по высоте и четыре со стороны. В сумме у вас должно быть выделено 16 полигонов, которые располагаются со стороны серединной линии модели автомобиля.

  4. Выполните их выдавливание на небольшую высоту. Затем выдавливание высотой равное радиусу построенного цилиндра с небольшим уменьшением, для чего воспользуйтесь кнопкой Bevel (Скос) и локальной ( Local ) системой координат, а затем сразу же выполните команду Make Planar (Привести к плоскости).

  5. Выполните еще два выдавливания и в конце сместите вершины для получения скругления объекта (рис. 155.)

рис.155

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

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

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

рис.156

Моделирование стеклоочистителей.

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

Первым делом нам необходимо определиться с длинной щетки, так как относительно ее пропорций будут строиться оставшиеся детали. Для этой цели в окне проекции Top (Сверху) я построил вспомогательный объект формы — линию ( Line ) длинной 470 мм. и выполнил ее копию со смещением вправо чтобы убедиться что на поверхности лобового стекла поместится две таких щетки (рис. 157).

СОВЕТ

Выполняя построение линии, щелкните в окне проекции сверху кнопкой мыши для создания первой вершины, а затем, удерживая нажатой клавишу Shift , переместите курсор вправо на 470 мм . (длину строящегося сплайна можно увидеть внизу в окне информации) и щелкните еще раз для завершения построения сплайна. Таким образом будет построена прямая горизонтальная линия, длину которой можно будет потом скорректировать с использованием плавающего окна диалога Measure (Линейка), вызываемого из вкладки Utilities (Сервис) командной панели.

 

рис.157

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

На рисунке 158 представлены три параллелепипеда, верхний из которых имеет размеры 240х10х8 (длинна–ширина–высота) и значение Angle (Угол) модификатора Bend (Изгиб), равным 15 по оси X . Для нижних параллелепипедов эти размеры составляют 220х8х7, при тех же параметрах модификатора изгиба (я просто выполнил его копирование).

рис.158

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

ПРИМЕЧАНИЕ

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

Верхняя деталь требует больших затрат на редактирования, ввиду ее более сложной формы (рис. 159). В данном случае, я прежде всего конвертировал параллелепипед в Editable Poly (Редактируемая полигональная поверхность) и удалил правую половину объекта — деталь симметричная и правильным решением будет моделирование лишь одной половинки. После этого я выполнил построение сквозного отверстия на месте полигонов, примыкающих к оси симметрии. Для этого мне понадобилось лишь выделить два верхних полигона с правой стороны, и последовательно применить инструменты: Inset (Смещение внутрь), Extrude (Выдавливание) с смещением внутрь и удалить выделение. Далее я выполнил выделение двух верхних полигонов, расположенных на торцевой стороне выполненного отверстия со стороны оси симметрии и выдавливание их вверх для образования выступающих частей в месте крепления держателя. После этого осталось лишь применить модификатор Symmetry (Симметрия) и, при желании, добавить мелкие детали (уступы для заклепок и сами заклепки).

рис.159

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

ПРИМЕЧАНИЕ

Хочется напомнить, что для создания лофт-объектов является важным тот факт, в каком окне проекции были построены формы пути и профиля, иначе говоря, их взаимное положение относительно друг друга при построении.

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

СОВЕТ

При взаимном расположении отдельных частей стеклоочистителя могут возникнуть трудности с их позиционированием. В этом случае на помощь могут прийти привязки ( Snaps ), а так же использование локальной ( Local ) системы координат при перемещении или масштабировании. Для размещения заклепок на поверхности отдельных деталей можно воспользоваться инструментом Normal Align (Выровнять по нормали) из меню Tools (Сервис).

На рисунке 160 представлена визуализация фрагмента передней части автомобиля вместе с выполненными стеклоочистителями.

рис.160

Совсем немного отредактировав форму переднего стеклоочистителя можно построить стеклоочиститель, расположенный со стороны багажника. У него более короткая нижняя часть держателя, а так же место крепления к двери багажника «обозначено» чашеобразным переходником, который легко выполнить, построив из сплайна форму половины поперечного сечения и применив модификатор Lathe (Вращение) (рис. 161).

рис.161


1   2   3   4   5   6   7   8   9

Похожие:

Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая icon3ds Max 2009 выходит в двух версиях. Версия 3ds Max 2009 ориентирована на разработчиков игр, а версия 3ds Max 2009 Design на тех, кто занимается архитектурной
Зато в 3ds Max 2009 Design есть система для анализа освещения в сценах Lightning Analysis, который отсутствует в 3ds Max 2009. Если...
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconОбразования Российской Федерации томский государственный университет факультет информатики Кафедра теоретических основ информатики
Алгоритм построения совокупной модели пересечения трехмерных объектов, 3ds формат, dll, плагин для 3ds max
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconПрограмма
Сборник методических материалов по курсу «Обработка графических изображений. Трюки и эффекты». – М.: Импэ им. А. С. Грибоедова, 2006....
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconБюллетень новых поступлений за 2007 год
Волкова Т. О., Шевченко Н. Е. 3ds Max за 21 день. Спб: Питер, 2007. 240с.: ил
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconОсновы трехмерного моделирования в графической системе 3ds Max 2009. Дмк пресс
Начертательная геометрия и инженерная графика. Наглядные изображения: область применения и правила построения
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconПрограмма курсов повышения квалификации профессорско-преподавательского состава по приоритетному направлению «Информационная компетентность в профессиональной деятельности преподавателя вуза. Компьютерные технологии промышленного дизайна»
Основы базовых возможностей систем трехмерного моделирования Autodesk 3ds max и Autodesk Inventor
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая icon1. Цифровая обработка сигналов (цос)
Программная модель реализации алгоритмов цос учитывает требования стандарта eXpresdsp, внедряемого фирмой ti. Модель предполагает...
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconПлан-конспект урока первая помощь при растяжении связок, вывихах суставов, переломах костей
Цель урока: Какие возможны повреждения скелета и в чём заключается первая помощь?
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconУрока- изучение нового материала Метод обучения
Метод обучения- параллельный подход к изложению учебного материала ( часть урока – изучение теоретического материала, часть урока-...
Цифровая модель автомобиля (адаптация урока, написанного для книги \"3ds max. Трюки и эффекты\") Часть первая iconУпражнение «четыре вопроса» 15 о книге 19 план-содержание книги 20 часть первая 23
Грамотность в области цифровых технологий: информационная смекалка, свободное владение средствами информации и технологиями 77
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница