Карта сайта   Главная

Список задач (сортировка по темам)

  1. Для просмотра темы следует поставить мышь на первую задачу темы.
  2. Для просмотра решения следует ударить мышью по содержанию задачи.177
  3. В ряде задач в скобках указан раздел из пособия Программирование модификаторов 3ds Max.
ТемаЗадачаСодержание задачи
11Анимация положения текста в HTML-документе средствами JavaScript.
12Анимация цвета, положения и прочих свойств текста и содержащего его контейнера в HTML-документе средствами JavaScript.
18Вариант 1: расположенная в центре области буква динамически загораживается (открывается) 4-я областями. Вариант 2: расположенная в центре области буква исчезает (появляется) в результате изменения прозрачности области (JavaScript).
23Программирование движения сферы по сторонам прямоугольника.
24Создание и воспроизведение 3ds Max avi-файла в HTML.
2192Дружба. Начальная и конечная вершины соединяются по двум маршрутам разноцветными растущими цилиндрами.
При отображении вершин следовать фильму.
344Анимация вершин объектов Editable_Mesh, Editable_Poly, Editable_Patch и NURBSSurf (разд. 1.9). Для анимации Editable_Patch используется модификатор Morpher (разд. 2.10.3). Уточнение: mr = morpher autoload_Of_Targets:1; addModifier node mr
45Средствами MAXScript на оси Y помещаются N стандартных примитивов (N > 3). Затем N - 3 раз генерируется случайное положительное число, не превышающее число примитивов, и из коллекции Geometry после MessageBox-сообщения удаляется соответствующий примитив (m = random 1 geometry.Count; ...; delete geometry[m]). Решение оформляется в виде функции в двух вариантах: с if и case (разд. 1.1.16).
4172Перекаты. Воспроизвести, используя MAXScript, показанную сцену (фильм 0.1).
Анимационный интервал устанавливается равным 400 (вместо 100).
animationRange = interval 0f 400f
Число разбиений площадки 4 * 4. Параллелепипеды растут в каждой ячейке. При росте их боковая сторона уменьшается в 4 раза; при убывании восстанавливается.
Площадка задается как плоскость, например:
pln = plane length:120 width:120 pos:[0, 0, 1]
Высота и цвет генерируются случайным образом, например:
bx.wireColor = color (random 0 255) (random 0 255) (random 0 255)
bx.height = random 20 60
где bx - это идентификатор параллелепипеда.
Для оптимизации кода все параллелепипеды можно записать в массив:
delete $*
arrB = #()
for i = 0 to 3 do (
    x = 30 * i - 45
    for j = 0 to 3 do (
        y = 30 * j - 45
        arrB = append arrB (box pos:[x, y, 0] height:20 length:30 width:30 wireColor: (random [0, 0, 0] [255, 255, 255]))
    )
)
56Анимация перемещения объекта, меняющего форму, по окружности. Употребляются следующие выражения MAXScript: if, case, while, for, function, animate, at time, max и др. (разд. 1.1.16).
5134Программирование анимации сферы, перемещающейся в положительном направлении оси X и увеличивающей свой объем в 3 раза, а затем возвращающейся в исходную точку и уменьшающей площадь своей поверхности в 2 раза.
5199Противостояние. Частицы от двух источников летят на встречу друг другу по оси Х, тормозятся при встрече.
Затем после некоторой паузы зеленые частицы выталкивают синие в отрицательном направление оси Х, а затем синие частицы после некоторой паузы выталкивают зеленые в положительном направлении оси Х.
69Программирование анимации параметрических модификаторов Bend, Taper (2 варианта), Twist, Noise, Stretch (2 варианта) и Squeeze (разд. 2.1). Для демонстрации создается форма с кнопками Bend, Taper и так далее. Анимация запускается после нажатия на соответствующую кнопку.
610Программирование анимации параметрических модификаторов Push, Relax, Ripple, Wave, Skew, Slice и Spherify (разд. 2.1). Для демонстрации создается форма с кнопками Push, Relax и так далее. Анимация запускается после нажатия на соответствующую кнопку.
611Программирование анимации параметрических модификаторов Affect Region, Mirror, Displace под управлением Gizmo, Displace под управлением Image, XForm и Shell (разд. 2.1). Для демонстрации создается форма с кнопками Affect Region, Mirror и так далее. Запуск анимации после нажатия на соответствующую кнопку.
614Программирование (без анимации) параметрических модификаторов Lattice, Substitute и Preserve (разд. 2.1). Для демонстрации создается форма.
7111Программирование rollout-секции c радиокнопками выбора фигуры (куб, сфера, цилиндр, конус) и кнопкой вывода фигуры в заданной точке пространства (разд. 1.12.1).
912Перемещение мышкой произвольного блока на странице с двумя или более блоками (JavaScript).
913Перемещение мышкой движущегося блока с его возвратом после освобождения мышки в позицию, предшествующую началу перемещения (JavaScript).
915Цвет div-блока меняется в зависимости от положения мышки, перемещаемой по блоку. Форма курсора - Pointer (JavaScript).
918Построение таблицы с произвольным числом строк и столбцов и с обработчиком onClick, изменяющим цвет ячейки (JavaScript).
1043Разрушение Editable_Poly-плоскости по ребрам (фильм 18.11). Использовать следующие polyop-методы: getEdgesUsingVert, getVertsUsingEdge, getElementsUsingFace, deleteEdges и detachFaces.
1063Создание 3d-поверхности по известному растровому образу с употреблением аффинных преобразований и операций Extrude Faces (разд. 2.16.1), Bevel Faces (разд. 2.6.3) и Connect (разд. 2.16.3), а также модификатора TurboSmooth (разд. 2.8.3).
1117Формирование (программирование) 3d-поверхности вращения на основе плоского сплайна (разд. 2.7.7, модификатор Lathe).
1219Поиск и отображение пути в таблице с препятствиями между двумя ячейками посредством лучевого или волнового алгоритма (JavaScript).
12201Лучевой алгоритм. Код для начала задачи 182.
arrClss = #('Sphere', 'Teapot', 'Cylinder', 'Cone', 'Tube', 'Torus', 'Box', 'Pyramid')
arrCnt = #()
for clss in arrClss do (
    cnt = 0
    for obj in geometry do if classOf obj == clss do cnt += 1
    append arrCnt cnt
)
mx = amax arrCnt
indMX = 0
for k = 1 to arrClss.count do (
    if arrCnt[k] == mx do (
        indMX = k;
        exit
    )
)
clssMx = arrClss[indMX]
for obj in geometry do if classOf obj != clssMx do delete obj
1320Создание кода, выводящего координаты вершины 3D-модели объекта (Editable_Mesh, Editable_Poly, Editable_Patch, NURBSSurf, Editable_Spline, NURBSPointCurve) в разных системах координат (разд. 1.9, 2.10.8 и 2.10.10).
1445Анимация перемещающегося пропеллера (разд. 1.13).
1449Нарисовать дугу (примитив Arc) между двумя случайно выбранными вершинами сферы (угол между векторами v1 и v2 вернет выражение acos(dot (normalize v1) (normalize v2))).
1455Программирование анимации размещения букв на сторонах куба.
14152Вычислить площадь треугольника по известным координатам его вершин.
14195Полетаем. Использовать Link, Group (для лопастей) ProBoolean.
Анимация создается для одного пропеллера. Прочие получаются копированием.
14205Воспроизвести показанный в фильме рисунок. Замерить, а затем вычислить длину отрезка, соединяющего точку Po окружности радиуса R с точкой Pe окружности радиуса R + ho при заданном угле между отрезком и осью x. Вычисления выполнить в декартовой системе координат с началом в точке Po. Центры обеих окружностей расположены в точке Pc указанной на рисунке системы координат. Пояснение: известны R, ho, координаты точек Pc и Po в указанной на рисунке системе координат и угол α.
Сравнить замеренную и вычисленную величины.
При построении принять α = 30°.
157На распутье. Объект перемещается по траектории до распутья, где нужно выбрать одну из трех траекторий. Длина анимационного интервала - 200f, а время, потраченное на выбор, равно 60f. В это время объект увеличивает свой объем, а затем приобретает исходную форму. Выбор осуществляется случайным образом. Выбранный участок подсвечивается, и объект возобновляет движение по выбранному участку.
1521Программирование анимации с ограничением Path_Constraint при выборе в качестве пути сплайна, а затем NURBS-кривой (см. стр. 62, 88, 150 и 236 пособия. Программное добавление ключей. Пример кода: pc = path_Constraint(); ... addNewKey pc 30; pc.Percent.Keys[2].Value = 60
1553Программирование разнонаправленного движения меняющей цвет сферы по меняющему размер эллипсу (разд. 2.1.18, пример кода см. в задаче № 21).
1576Kiss. Две сферы разнонаправлено перемещаются по окружности, а третья сфера - по прямой, проходящей через центр окружности и начальную позицию двух первых сфер. После встречи движение сфер приостанавливается и после небольшой паузы две первые сферы взрываются, а третья возвращается назад.
15121Программирование разнонаправленного движения объекта по эллиптической траектории с использованием ограничения Path_Constraint (разд. 2.1.18, пример кода см. в задаче № 21).
15142Встреча. Два растущих объекта (применяется модификатор PathDeform WSM, разд. 2.10.10), встречаются и после нескольких попыток разойтись, возвращаются к своим исходным размерам.
15146С промежутком в 50f в начале пути (окружности) появляются сферы разного цвета. Каждая сфера проходит путь за 50f и останавливается. В конце пути сферы располагаются на окружности с некоторым интервалом.
15148Пошептались. По пути, похожему на синусоиду, навстречу друг другу перемещаются 2 сферы. Первая использует карту Checker, а вторая - Marble (tiling-параметры карт равны 4). Изначально сфера с картой Checker вращается, а с картой Marble - нет. После встречи сферы на некоторое время замирают, а затем начинают движение вспять. При этом вращается сфера Marble, а сфера с картой Checker перемещается без вращения. Базовая точка каждой сферы (свойство pivot) помещается вне сферы недалеко от случайно выбранной вершины сферы.
1756Подобрать материал, обеспечивающий интерполяционную заливку полигона (см. рис. 8 на http://100byte.ru/mxscrptxmpls/ntrpltn/ntrpltn.html).
1788Создание анимации телевизионной заставки с использованием динамической bitmap-карты, направленного источника света с динамической projectorMap-картой и объемного света.
1789Программирование анимации телевизионной заставки с использованием динамической bitmap-карты, направленного источника света с динамической projectorMap-картой и объемного света.
17135Заливка невыпуклого многоугольника (см. http://100byte.ru/mxscrptxmpls/zbffr/zbffr.html#p4)
17157Подарок. На сторонах куба поочередно воспроизводятся разные материалы (употребляется карта bitmapTexture).
17161Истина. Треугольники, залитые разными материалами, перемещаются на периферию и открывается скрытый ими образ.
17162Чайник.
17163Большой чайник.
17164Шахматы.
17165Бокал.
17166Бокал "Красное и белое".
17167Бокал "Красное и белое" с вином.
17168Бокал на черном.
17169Бокал "Загадка".
1822Анимация мячика, прыгающего по ступенькам.
1823Движение игрушечного автомобиля по дороге с кочками (для задания неровностей применяется модификатор Wave, разд. 2.1.10).
1825Задача №16, или 22, или Применение модификатора reactor (одежда и мягкое тело, разд. 2.16.1 - 2.16.3).
1891Анимация дрожащего листа средствами reactor с употреблением ограничения Point_Point (разд. 2.16).
1893Программирование анимации колокола средствами reactor с употреблением ограничения Rope (разд. 2.16).
1926Создать плоскость с числом сегментов 5х5 и с размерами 100х100. Увеличить Z-координату каждой вершины плоскости, номер которой кратен 4, на величину, случайно выбранную из диапазона 30 - 40 единиц. Уменьшить Z-координату каждой вершины плоскости, номер которой кратен 5, на 30 единиц. Удалить вершину с наименьшим положительным смещением. К полигонам с номерами 4 и 5 применить модификатор Twist. Результат анимируется (разд. 1.9).
1927В форме имеется таблица с M * N ячейками и три кнопки разного цвета. После нажатия на кнопку часть ячеек таблицы (не более 10 %) закрашивается цветом нажатой кнопки. Положение закрашиваемых ячеек определяется случайным образом. Процесс может продолжаться, пока имеются нераскрашенные ячейки (JavaScript).
1928Перемещение. В сцене случайным образом размещаются N сфер со случайно выбранным цветом. Радиус сфер случайным образом берется из диапазона 15 - 18 единиц. Поместить группы пересекающихся сфер и оставшиеся одиночные сферы в вершинах правильного M-угольника, где M - это число групп пересекающихся и одиночных сфер. Результат анимируется.
1929Три объекта перемещаются по пути в виде чередования спусков и подъемов. Обеспечить ускорение движения объекта при прохождении спуска и замедление при подъеме.
1930В сцену вводятся три сферы. Используется стандартный материал с диффузионной картой Checker. Базовая точка каждой сферы перемещается в случайно выбранную вершину полигональной модели объекта. Обеспечить поворот каждой сферы на угол, случайно выбранный из диапазона 360 - 720 градусов, вокруг ее базовой точки и одновременное перемещение сфер по незамкнутому сплайн-пути. В момент t = 0 сферы равномерно распределены по пути следования.
1931В сцену вводятся 8 примитивов Box с достаточно большим числом полигонов. Цвет примитива выбирается случайным образом из значений [135, 110, 8] и [6, 135, 113]. Применить к нижней половине примитива первого цвета модификатор Bend, а к верхней половине примитивов другого цвета - модификатор Twist. Результат анимировать, меняя во времени параметры модификаторов и положение их габаритного контейнера Gizmo.
1932По пути, созданному в виде NURBS-сплайна, перемещаются 3 объекта, меняя свой цвет в следующих последовательностях: "красный - синий - зеленый - красный", "синий - зеленый - красный - синий" и "зеленый - красный - синий - зеленый" соответственно для первого, второго и третьего объектов.
1933Создать из четырех сфер модель системы Звезда - Планета - Спутник Планеты - Спутник Спутника. В модели Звезда вращается вокруг своей оси. Для Звезды используется стандартный материал с диффузионной картой Checker. Планета вращается вокруг Звезды по эллиптической траектории. Спутники перемещаются по окружностям. Наблюдение ведется из камеры, расположенной на положительной части оси Z, вращающейся вокруг этой оси и направленной в центр Звезды.
1934Создать образ "дышащего" куба, применив к видимым сторонам примитива Box модификаторы Displace. Результат анимировать, меняя во времени позицию Gizmo модификаторов. Для выбора граней употребить нужное число раз модификатор Mesh_Select и метод SetFaceSelection.
1935Сформировать на базе цилиндра посредством модификатора Taper стрелу с коническим наконечником. К части наконечника применить модификатор Spherify. Для выбора части наконечника применить модификатор Mesh_Select. Результат анимировать, меняя во времени параметры Amount и Percent соответственно модификаторов Taper и Spherify. Также обеспечить при анимации вращение объекта воруг оси Y. Для выбора граней употребить нужное число раз модификатор Mesh_Select и метод SetFaceSelection.
1936Применить к одной половине примитива Plane модификатор Affect Region, а ко второй - модификатор Displace с планарной картой. Результат анимировать, меняя во времени для модификатора Affect Region положение подобъекта Points и значение параметра Falloff , а для модификатора Displace позицию его Gizmo и значения параметров Length, Width и Strength. Для выбора граней употребить нужное число раз модификатор Mesh_Select и метод SetFaceSelection.
1937Сфера перемещается по пути в виде NURBS-сплайна. При этом геометрия пути и координаты его базовой точки меняются (в начале анимации путь - это прямая линия, в конце анимации - это линия, напоминающая синусоиду. Также во время анимации меняется цвет сферы и ее значение ее радиуса.
1938В таблице с числом ячеек 10х10 случайным образом размещаются N (N > 30) шаров красного, синего и зеленого цветов. Выстроить все шары в три линии, размещая в каждой из них шары одного цвета. Позиция выбранного шара в линии задается мышкой. Ячейка с выбранным шаром меняет цвет и восстанавливает его после перемещения шара в указанную позицию (JavaScript).
1939В сцене случайным образом размещаются N цилиндров с цветом, случайно выбранным из трех цветов. Радиус и высота цилиндров случайным образом берутся соответственно из диапазонов 5 - 8 и 30 - 60 единиц. Расположить цилиндры одного цвета в вершинах синусоидальной линии произвольного цвета. Число вершин в линии равно числу располагаемых на ней цилиндров. Применить к цилиндрам первой линии модификатор Bend, к верхней части цилиндров второй линии - модификатор Spherify, а к нижней половине цилиндров третьей линии - модификатор Push. Результат анимируется.
1940Конусы. В сцену вводится куб и случайным образом N конусов (N > 4), радиусы оснований и высота которых случайным образом выбираются соответственно из диапазонов 5 - 8 и 30 - 60 единиц. Расположить 4 конуса с наименьшими высотами в вершинах верхней стороны куба, направив высоту каждого конуса к центру куба. Прочие конусы разместить в вершинах расположенной перед кубом линией, упорядочив конусы по высоте. Число вершин линии равно числу размещенных на ней конусов. Результат анимируется. (Фильм 17.14 или 7.13 конкурса MAXScript-анимация).
Сортировка массива конусов выполняется функцией qsort, использующей, например, функцию cmpH (см. ниже).
Пример быстрой сортировки конусов по высоте:
-- Вспомогательная функция - параметр функции qsort
fn cmpH v1 v2 = (
    dH = v1.Height - v2.Height
    case of (
        (dH < 0.): -1
        (dH > 0.): 1
        default: 0)
)
delete $*
-- Создаем массив из 10 конусов с различной высотой
arrCn = #()
for k = 1 to 10 do append arrCn (cone radius1:10 radius2:0 height:(random 30 60) pos:(random [-80, -80, 0] [80, 80, 0]))
-- Сортируем, используя функцию cmpH, массив конусов по их возрастанию высоты
qsort arrCn cmpH
-- Печатаем высоту конусов отсортированного массива
for k = 1 to 10 do print arrCn[k].height
2041Освоение интерактивных методов анимации свойств и координат объектов: анимация радиуса сферы; анимация позиции, угла поворота и коэффициента масштабирования; ограничение Path_Constraint (разд. 1.16.1, 2.1.18, 2.10.10); анимация цвета; анимация MeshBomb; анимация свободной и направленной камер; пример из Dynamics.
2042Программирование анимаций, показанных в фильме 2 (разд. 1.11, 1.14 и 1.16).
2052Программирование анимации часов.
20176Выстрел. Сфера выдвигается в отрицательном направлении оси Х из открывающегося куба и взрывается на 75-м кадре (всего в сцене 100 кадров).
20178Время. Маятник в крайних положениях генерирует частицы. В конце анимационного интервала маятник разрушается. (Использовать связывание объектов.)
20179Постригли и нагнули. В вершинах плоскости устанавливаются конусы. Далее верхушка конуса усекается, а конус наклоняется. Усечение и наклон конуса анимируются. Плоскость имеет 36 вершин.
Для усечения конуса употребить модификатор Slice, а для наклона - Bend.
2148Программирование анимации вертолета, поражающего цель (разд. 1.13 и 1.16). Модель вертолета создается интерактивно без программирования. Пример кода для mesh-бомбы: bm = bomb strength:0.05 gravity:-0.1 detonation:35 minFragmentSize:1 maxFragmentSize:10 spin:15 pos:bx.Pos chaos:5; bindSpaceWarp bx bm, где bx - идентификатор разрушаемого объекта.
2161Программирование анимации роста superSpray-кактусов с употреблением составного объекта Mesher и модификатора Bend (разд. 1.7 и 2.1.1.
2167Создание анимаций вихря (Super Spray и Vortex), кольца частиц вокруг сферы (Super Spray, BlobMesh и Scatter) и лучей частиц (Super Spray, Mesher и Scatter на сфере).
2170Программирование shapeMerge-анимации звезды на сфере с употреблением источника света, линзы и атмосферного эффекта Volume Light.
21198Оружие пролетариата. Использовать SuperSpray, Mesher, преобразование в EditablePoly, Spherify (для части объекта), Bomb, свойство opacity создаваемых материалов, модификатор Noise и пр.
2254Программирование анимации разрушения чайника одновременно средствами MeshBomb и PArray совместно с PBomb (фильм 4.5). Замечание. В обоих случаях установить время взрыва на 25-м кадре и использовать Spin.
2257Программирование анимации разрушения чайника при его соударении с плоскостью и программирование последующей анимации сборки чайника из полученных при его разрушении фрагментов. Пример кода для реверсирования ключей анимации: frPC = frM.Pos.Controller; supportsTimeOperations frPC; reverseTime frPC animationRange #incLeft #incRight. Замечание. В текущем семестре программируется только разрушение чайника; сборка добавляется интерактивно.
2259Программирование анимации заполнения емкости (куба) blizzard-частицами с использованием отражателей.
22159Пусть сильнее грянет кризис. Средствами PArray и Mesher банкнота делится на фрагменты и выполняется их анимация.
22196Равновесие. Использовать SuperSpray и Mesher.
Все действия выполнить для одной пары объектов (Mesher и Cylinder); прочие добавить копированием.
Для согласования положений частиц и нависающего цилиндра в его в анимационную кривую можно добавлять дополнительные ключи, например:
z_posCntrl = $.pos.controller.z_position.controller
addNewKey z_posCntrl 12
а также управлять касательными в ключевых точках, например:
$.pos.controller.z_position.controller.keys[1].outTangentType = #linear
$.pos.controller.z_position.controller.keys[1].outTangentType = #fast
2360Воспроизведение огня средствами системы частиц PArray и VideoPost (событие Image Filter c фильтром Lenz Effects Glow).
2424Анимация тумана: туман сгущается, а затем исчезает.
2468Создание анимации объемного тумана (Volume Fog) и света (Volume Light).
2469Создание shapeMerge-анимации с употреблением источника света, снабженного линзой (Star Lens Effects, дома програмируется анимация сплайна и линзы Star).
2471Создание анимации огня, взрыва и дыма с употреблением атмосферного эффекта Fire Effect и сферического помощника SphereGizmo. При создании дыма применяется система частиц Particle Flow с оператором Script_Operator, в котором частицы заменяются SphereGizmo.
2479Анимация объемного света, освещающего надпись на плоской поверхности.
24113Программирование анимации дыма. При создании дыма применяется система частиц Particle Flow с оператором Script_Operator, в котором частицы заменяются SphereGizmo.
2572Моделирование движения гусеницы технического средства при помощи решателя Spline IK Solver.
25149Snake. Модель змеи создается средствами Spline IK Solver и Skin, а также при помощи spacePathDeform.
2673Моделирование стеклянных изделий средствами стандартного материала и карты Falloff.
Прозрачность обеспечивается следующим материалом:
flF = falloff color1:black color2:white type:2
flF2 = falloff color1:black color2:[185, 185, 185] type:1
std = standard diffuseMap:flF opacity:30 opacityMap:flF2 specularLevel:90 glossiness:30 soften:0.1 showInViewport:true diffuseMapEnable:true opacityMapEnable:true.
Для создания тени вводится источник света, в котором свойство castShadows имеет значение true.
2678Программирование анимации ландшафта местности средствами материала Multimaterial (разд. 2.9.1) и карты Gradient Ramp.
2684Программирование прозрачного изделия средствами стандартного материала и карты Falloff с употреблением источника света, создающего тень.
26115Анимация диффузионной компоненты материала Multimaterial (Multi/Sub-Object) с ID = 1 (выполняется на примере сферы, всего Multimaterial содержит 2 материала).
26186Красный квадрат. Полосы разного цвета последовательно приобретают красный цвет. Использовать Multimaterial (Multi/Sub-Object).
26197Бездействует графин хрустальный. Использовать Lathe, Multimaterial (Multi/Sub-Object), ID материала, копирование объектов.
Для обеспечения прозрачности можно употребить приведенный в задаче 73 код.
2774Воспроизведение сферы с различными наборами групп сглаживания (разд. 2.6.6).
27114Воспроизведение сферы с модифицированными нормалями.
2875Моделирование колебаний мембраны динамика средствами управляющего элемента Audio Position.
2880Анимация полета бабочек средствами управляющего элемента Noise Float и системы частиц Blizzard.
2881Анимация мигающих лампочек при помщи управляющего элемента Float Expression.
2882На круге. Лампочки, расположенные на окружности, с некоторым интервалом зажигаются, а затем гаснут в обратном порядке.
2883Программирование с использованием Float Script анимации значения свойства Radius сферы как функции от значения свойства Percent пути, по которому перемещается примитив Box.
28102Связывание параметров (Wire Parameters) конуса и сферы (разд. 2. 3): R = 0.5 * H; Z_Position = 1.5 * H (R - радиус сферы, H - высота конуса, Z_Position - Z-координата центра сферы).
28112В каждом углу квадрата расположена сфера. Каждая сфера дискретно в точках 25f, 50f и 75f меняет число сегментов, радиус и прозрачность. При этом сферы 1 и 3 в каждой точке увеличивают значение параметра в 2 раза, а сферы 2 и 4 уменьшают. Минимальные значения параметров: Segs = 4; Radius = 5, Opacity = 0.12. В точке 100f сферы восстанавливают начальные значения измененных свойств.
28138Красный квадрат. Первоначально полигоны плоскости имеют черный цвет, затем в процессе анимации они в случайно выбранном кадре меняют цвет и сохраняют его в течение 10 кадров. Далее полигон принимает красный цвет. (Применяется контроллер point3_expression, управляющий свойством diffuse компонента материала multimaterial.)
30104Прыгающий на плоскости мячик с контроллером Scale_Reactor, обеспечивающим сжатие мячика при его соударении с плоскостью.
30105Связь объектов посредством контроллера Position_Reactor, обеспечиающая движение второго объекта по сторонам прямоугольника при движении первого объекта по прямой.
3177Построение модели лодки средствами составного объекта Loft (Get Path, Make Symmetrical отключен, деформация Fit по Y, деформация Fit по X, Get Shape в Path = 0, TurboSmooth и Relax).
3185Создание средствами Loft подушки (используется деформация Fit) и анимации объема подушки.
3186Создание средствами Loft ложки (используется деформация Fit).
3187Создание вазы и лодки. Употребить:
1. FFDCyl (только для вазы) с использованием преобразования Scale и составного объекта Boolean (разд. 2.1.12, фильм 10.4).
2. FFDCyl (только для вазы) с преобразованием в Editable Mesh и удалением вершин на верхушке.
3. Loft (для вазы и лодки).
Завершить модель добавлением Shell и TurboSmooth.
3146Создание пуговицы средствами ProBoolean.
31194Надавили. Использовать Loft.
3290Анимация шторы средствами модификатора Cloth (разд. 2.15).
32120Анимация скатерти и флага средствами модификатора Cloth.
32155Десерт на полусфере. Результат обеспечивается модификатором Cloth.
32173Мячик падает на полотно из хлопка.
3394Соединение анимаций двух Biped средствами Motion Flow и Mixer.
3395Употребление модификатора Skin; в качестве костей берутся компоненты Biped (разд. 2.10.1). Biped с целью упрощения помещается в созданную из цилиндров оболочку.
3396Программирование Footstep-анимации Biped (разд. 2.10.1, Biped шагает, затем бежит и вслед прыгает).
33191Анимация Biped в режиме Footstep.
33171Анимация Biped с помощью Dummy.
3547Комета. Имитируется хвост кометы. Используется система частиц PF_Source с material_Dynamic со стандартным материалом, имеющим карту particle_Age.
3550Монету, лежащую на плоскости, накрывает песок. Употребляются Find_Target, particleInteger, Shape_Facing.
3551Песочные часы.
3562Расщепление. Движущиеся вниз черные кубические частицы, генерируемые из одной точки, после достижения плоскости z = 0, расщепляются на 4 потока, направленных вдоль положительных и отрицательных направлений осей x и y. При этом в каждом потоке частицы имеют разную форму: либо форму сферы, либо конуса, либо чайника, либо цилиндра. Кроме того, в каждом потоке частицы приобретают "свой" цвет, а чайники - вращение (фильм 19.8, для задания цвета частиц использовать материал multimaterial, канал useMtlIndex и метод setParticleMtlIndex).
Часть кода Script Operator:
on ChannelsUsed pCont do (
pCont.usePosition = true
pCont.useSpeed = true
pCont.useShape = true
pCont.useMtlIndex = true)
...
pCont.particleSpeed = [0.05, 0, 0]
pCont.particleShape = tp.mesh
pCont.particleSpin = (angleAxis 0.1 [0, 0, 1])
pCont.setParticleMtlIndex i 2
где tp = teapot radius:5
В событие добавляются операторы Script Operator и Material Static, которому назначается созданный в программе материал multimaterial.
Код, порождающий расщепление в примере с двумя событиями, см. в задаче 185.
3564Кольцо заполняется частицами, вылетающими из чашки (используются тесты Age_Test и Find_Target, фильм 18.12).
3565Передвинули. Разветвляющийся на 3 потока BlobMesh-PFSource перемещает стоящее на пути препятствие.
3592Одномоментно рождаются и двигаются вниз с некоторым спином 50 красных частиц разной формы (цилиндр, конус, сфера и чайник). При достижении порогового возраста цилиндрические, конические и сферические частицы останавливаются, частицы с формой чайника приобретают зеленый цвет и разлетаются, сохраняя спин, в разные стороны (использовать в первом событии script_Test, а во втором - keep_Apart).
35103Воспроизведение текста в виде растущих частиц цилиндрической формы. Решаются два варианта: а) частицы на ребрах текста (с одним событием); б) частицы равномерно распределяются по тексту (сетка частиц, два события). (В текущем семестре решается только вариант "а".)
35106Имитация дыма на основе системы частиц Particle Flow с употреблением сил Gravity, Wind и Drag.
35107Интерактивное создание снежинки на основе системы частиц Particle Flow.
35108Интерактивное создание снеговика на основе системы частиц Particle Flow.
35133Частицы, влетающие в отверстие коробки.
35136Первоначально черные кубические частицы генерируются со случайно заданным спином по периметру квадрата и в его углах. В момент времени T частицы, расположенные в углах квадрата, приобретают форму сферы и меняют цвет на синий. Далее эти частицы порождают вертикально движущиеся частицы зеленого цвета.
35137Одномоментно генерируется 10 частиц. Частицы перенимают форму сферы радиуса 12 и равномерно размещаются по окружности радиуса 60. Применить material_Frequency с тремя материалами в multimaterial с картами checker, marble и bricks. Для наглядности обеспечить вращение частиц вокруг оси z. Управление частицами выполнить средствами script_Operator, а их рождение - средствами birth_Script.
35139Красная звезда. На плоскости поочередно появляются звезды. Первоначально каждая звезда имеет зеленый цвет, затем приобретает желтый, а вслед красный цвет, а затем исчезает. В конце в центре сцены остается одна красная звезда.
35140Туман. Из тумана на сторонах квадрата появляются цилиндры. Когда туман рассеивается, цилиндры начинают перемещаться к центру квадрата и заканчивают движение на окружности, центр которой совпадает с центром квадрата, а радиус существенно меньше длины стороны квадрата.
35141Буква О. Вращающиеся сферические частицы падают вниз, располагаясь в конечном счете на траектории в виде буквы О. Достигнув траектории, они меняют свой цвет, приобретая форму буквы О.
35143Время. В системе Daylight на плоскости воспроизводятся часы, показывающие время системы Daylight (Daylight вводится в сцену интерактивно, прочие элементы сцены и анимация создаются программно). Для отображения времени используется система частиц PF Source. Для получения времени можно употребить функцию timeFromSolarTime (см. справку по 3ds MAXScript).
35144Рыба, работая хвостом, удаляется от начальной точки вдоль отрицательного направления оси Х, а затем возвращается в начальную точку (и так 2 раза). В точке с наименьшей Х-координатой рыба пускает 2 пузыря (рыбий рот закрыт), а при возвращении в начальную позицию рыба приоткрывает рот (для генерации пузырей применить систему частиц PF Source, для придания толщины модели головы рыбы можно употребить модификатор Shell, полость рта закрасить розовым цветом, а границу полости рта - белым).
35145Вращение. В центре сцены размещен куб. С интервалом в 30f на окружности генерируются 6 кубических вращающихся частиц. Затем с тем же интервалом они поочередно замещаются пирамидальными частями куба и небольшими сферами. В конце сцены части куба с тем же интервалом возвращаются на свои начальные позиции, а частицам возвращается их начальная форма (применяется система частиц PF Source).
35147Возвращение. Кубические частицы красного цвета покидают исходную территорию, двигаясь в положительном направлении оси Х. Достигнув другой территории, они останавливаются и меняют цвет на желтый. После паузы они становятся зелеными и начинают движение в обратном направлении. Добравшись до исходной территории, они вновь останавливаютя и приобретают исходный цвет.
35150Имитация печати конуса.
35154Игрушка. Пирамида создается из разноцветных частичек (употребить Find_Target и Material_Frequency).
35156Time. Маятник, покидая крайнюю позицию, инициирует появление частиц. Для имитации маятника можно употребить Bones.
35158Энтропия. Из фрагментов собираются конус и сфера, стоящая на вершине конуса.
35160И пир веселый им не в пир. Сцена реализуется системами частиц, операторами SpeedByIcon и составными объектами BlobMesh. Как вариант: Script_Operator содержит код для распределения частиц по окружности и изменения их формы.
35174Алфавит. Генерируются 26 частиц, принимающих форму букв английского алфавита.
Траектория частиц формируется по действием вихря Vortex.
Для создания буквы можно употребить следующий код (на примере буквы "A"):
txt = text text:"A" size:30
addModifier txt (extrude amount:5)
Для генерации алфавита можно употребить bit.intAsChar.
35177Полетели. Из опускающихся верхней и двух передних граней куба вылетают частицы.
Отделение грани выполняется после преобразования в Editable Poly, например:
bx = Box width:25 length:25 height:25
bx = convertToPoly(bx)
bx.EditablePoly.SetSelection #Face #{6}
bx.EditablePoly.detachToElement #Face keepOriginal:off
move bx.selectedFaces [-40, 0, 0]
Частицы создаются источником Super Spray и отклоняются ветром Wind.
35180Возвращение. Частицы в форме тора летят вниз.
Достигнув плоского препятствия, они приобретают форму куба и разлетаются по плоскости препятствия, но через некоторое время они приобретают форму сферы и начинают двигаться вверх.
35181Проникновение. Частицы генерируются на сторонах окружности. Задерживаются на 30 кадров на первом препятствии. Затем летят ко второму, где и останавливаются. По ходу движения частицы меняют форму и цвет.
35182 Приводимый ниже код создает объекты разных классов ('Sphere', 'Teapot', 'Cylinder', 'Cone', 'Tube', 'Torus', 'Box' и 'Pyramid').
Написать программу, которая
  • Выводит число созданных объектов каждого класса.
  • Оставляет в сцене объекты одного класса, число которых не меньше числа объектов любого иного класса.
  • Сортирует оставшиеся объекты
    • в случае сферы, чайника и цилиндра по radius;
    • в случае тора, трубы и конуса по radius1;
    • в прочих случаях по высоте.
  • Размещает их без пересечений на оси X, начиная с позиции [-40, 0, 0].
Использовать коллекцию geometry, метод classOf, фунцию amax, быструю сортировку qsort.
Пример употребления qsort см. в задаче 40.

-- Создает объекты разных классов
fn crtSP n knd = (
    for k = 1 to n do (
        ps = random [-50, -50, -50] [50, 50, 50]
        r = random 3 7
        h = random 4 8
        case knd of (
            1:(sphere radius:r pos:ps)
            2:(teapot radius:r pos:ps)
            3:(cylinder radius:r pos:ps height:h)
            4:(cone radius1:r radius2:0 height:h pos:ps)
            5:(tube radius1:r radius2:(r + 2) height:h pos:ps)
            6:(torus radius1:(r + 7) radius2:r pos:ps)
            7:(box length:h width:h height:h pos:ps)
            8:(pyramid width:h depth:h height:h pos:ps)
        )
    )
)
delete $*
arrN = for k = 1 to (random 7 8) collect random (-3 + k) 9
-- nSp, nTp, nCyl, nCn, nTb, nTr, nBx, nPr
for k = 1 to arrN.count do crtSP arrN[k] k
35183Чаша полна. Частицы, сдуваемые ветром, покидают источник и заполняют чашу.
Используются сила Wind и тест Find Target.
35185Встреча. Два луча из частиц после встречи порождают 8 лучей с формами Hedra и Torus_Knot.
Можно употребить Collision и Script Operator.
Пример Script Operator, направляющего частицы по осям X и Y и меняющего их форму:
on ChannelsUsed pCont do
(
     pCont.useTime = true
     pCont.useSpeed = true
     pCont.useShape = true
)
on Init pCont do
(
    if spM == undefined do (
        sp = sphere radius:3
        global spM = sp.mesh
    )
    if tpM == undefined do (
        tp = teapot radius:3
        global tpM = tp.mesh
    )
    if clM == undefined do (
        cl = cylinder radius:3 height:6
        global clM = cl.mesh
    )
    if cnM == undefined do (
        cn = cone radius1:3 radius2:0 height:6
        global cnM = cn.mesh
    )
)
on Proceed pCont do
(
    count = pCont.NumParticles()
    for i in 1 to count do
    (
        pCont.particleIndex = i
        k = mod i 4
        pCont.particleSpeed = case k of (
            0:[0.01, 0, 0]
            1:[-0.01, 0, 0]
            2:[0, 0.01, 0]
            3:[0, -0.01, 0]
        )
        pCont.particleShape = case k of (
            0:(spM)
            1:(tpM)
            2:(clM)
            3:(cnM)
        )
    )
)
35188Я протаял гляделку в морозном узоре. Площадка заносится частицами. Затем в ее центре образуется незанятая частицами область. (Без программирования.)
3797Использование делегатов (Delegates) в Crowd с моделями поведения Seek, SurfaceArrive, PathFollow и Avoid. Приводятся 3 варианта решения: а - Seek и Avoid; б - Seek, SurfaceArrive и Avoid; в - PathFollow и Avoid. В каждом варианте делегаты ассоциируются с геометрическими объектами, например, с цилиндрами.
3798Использование Biped (двуногий) в Crowd с моделями Wander, PathFollow и Avoid. Приводятся 2 варианта решения: а - Wander и Avoid; б - PathFollow и Avoid.
37153Песочница. Вращающиеся кубики не могут выбраться за пределы песочницы. Используются объекты (помощники) Crowd, Delegate и Grid; поведение wallRepel, а также ассоциация делегатов с кубиками.
3899Анимация элементов системы Ring Array с использованием в качестве дочерних элементов иных объектов 3ds Max (Sphere, Teapot и др.).
38100Анимация в системе Sunlight управляющих элементов Solar_Time и Solar_Date в сцене с цилиндром, стоящим на плоскости (для каждого элемента создается самостоятельное решение).
38101Анимация в системе Daylight управляющих элементов Solar_Time и Solar_Date в сцене с цилиндром, стоящим на плоскости (для каждого элемента создается самостоятельное решение).
39109Программирование контроллеров Biped (реализация простого движения двуногого, пограммирование AxeKick, BackKick и бегущего Biped).
40110Разбиение объекта по атомам с применением системы частиц Particle Cloud для формирования атомов.
41116Применение различных стилей формирования UVW-координат средствами модификатора Unwrap UVW для сферы и ее верхушки.
41117Создание плоской, нормальной и раскрывающей разверток (Flatten, Normal и Unfold Mapping) сферы средствами модификатора Unwrap UVW.
41118Анимация UVW-координат областей UVW-карт, созданных средствами модификатора Unwrap UVW.
41119Создание с использованием MAXScript плоской развертки (Flatten Mapping) сферы средствами модификатора Unwrap UVW.
42122Синусоида. Источник частиц движется по синусоидальной траектории, оставляя такой же след, но иного цвета, на неподвижной плоскости. Используется система частиц PF Source с двумя событиями и отражателем POmniFlect в тесте Collision первого события. Во втором событии частицы меняют цвет и форму.
42123Наждак. Имитация заточки шила. (Используется система частиц PF Source с одним событием, содержащим в том числе оператор Script_Operator, добавляющий в сцену частицы при приближении шила к наждаку.)
42124Сизифов труд. Сферический камень закатывается на возвышенность, но каждая попытка завершается неудачей из-за столкновения с внезапно возникающим препятствием.
42125На кубе. Частицы появляются на ребрах куба, удаляются от его центра, возвращаются на прежние позиции и исчезают. (Используется система частиц PF Source с тремя событиями. В первом событии частицы рождаются на ребрах куба и разлетаются под действие бомбы. Частицы покидают первое событие, когда возраст первой частицы достигает указанного значения. Это обеспечивается тестом Script_Test. Во втором событии вектор скорости частиц меняет направление на противоположное, кроме того, частицы меняют форму и цвет. Частицы покидают второе событие, когда возраст первой частицы достигает указанного значения. Это также обеспечивается тестом Script_Test. В третьем событии частицы меняют форму, цвет и удаляются по мере достижения заданного возраста. Последнее обеспечивается оператором Script_Operator.)
42126Рулетка. Шарики покидают цилиндрическую нишу под действием вращающейся крестовины. (Используются средства reactor. Для получение бокового отверстия употреблена булевская операция вычитания. Вращение обеспечивается мотором, а фиксация оси вращения - ограничением PointToPoint).
42127Притяжение. Бабочки выбирают красный цветок. (Бабочка создается из цилиндра и двух эллипсов, преобразованных в Mesh. Колебательные движения крыльев обеспечиваются контроллером Noise Float: nFlt = noise_float seed:k frequency:0.1 fractal:true noise_strength:2; llps.Rotation.Controller.Z_Rotation.Controller = nFlt, где llps - это ссылка на Mesh, отображающее крыло. Сцена обеспечивается средствами Crowd с поведениями Wander и Surface Arrive. Количество делегатов (бабочек) не менее 10. Наблюдение ведется анимированной направленной камерой.)
42128Проникновение. Движущиеся части объекта постепенно проникают сквозь находящееся на их пути препятствие, но тормозятся на втором. (Используются система частиц PArray, три бомбы с различным временем детонации и несколько отражателей с различными значениями параметра TimeOff.)
42129На NURBS. Окружность радиуса R преобразовывается в NURBSCurveshape. Каждая контрольная точка кривой смещается на величину [random 0 R, random 0 R, random 0 R]. В сцену вводятся сфера и цилиндр. Сфера помещается на кривую в вершину, наиболее удаленную от начала координат. Цилиндр также помещается на кривую в вершину, наименее удаленную от начала координат. В процессе анимации сфера и цилиндр, двигаясь по кривой, меняются местами.
42130Задело. Два связанных эластичной веревкой предмета (сфера и короб) двигаются вниз. На пути веревки находится препятствие в виде бруса. Предметы повисают на веревке, охватившей брус. Более тяжелая сфера тянет короб вверх, пока он не упрется в брус. (Используются средства reactor. В качестве решателя коллекции твердых тел выбирается метод Runge-Kutta).
42131Затащили. Два связанных эластичной веревкой предмета (две сфера) перемещаются под действием сил гравитации и ветра. Большая сфера, двигаясь по синусоидальной траектории, затягивает на плоскость сферу меньшего радиуса. Движение прекращается на краю плоскости. (Используются средства reactor. В качестве решателя коллекции твердиых тел выбирается метод Runge-Kutta. Движение сферы по синусоидальной траектории обеспечивается ветром и ограничением PointToPath.)
42132Теперь не столь опасен. Первоначально в вершинах усеченной сферы появляются иголки красного цвета, затем они замещаются оранжевыми штырями. (Используется система частиц PF Source с двумя событиями. В первом событии иголки размещаются в вершинах усеченной сферы и ориентируются по их нормалям. Координаты нормали к вершине Mesh возвращаются методом GetNormal. Для размещения и ориентации иголок в операторе Script_Operator первого события употребляется свойство ParticleTM. Матрица преобразований координат получается в результате поворота единичной матрицы вокруг осей Y и X (методы rotateY и rotateX), а четвертая строк матрицы определяется значением позиции вершины: m3.Row4 = v.Pos, где v = sph.Verts[k], k - номер вершины, а sph - это ссылка на Mesh усеченной сферы. Частицы покидают первое событие после достижения указанного возраста (применен тест Age_Test). Во втором событии меняется форма частиц и цвет их отображения в видовом порте.)
43184Растровые алгоритмы. Принадлежность точки невыпуклой фигуре, вывод линии, заливка многоугольника.
44151Сделан из фракталов. Используется СИФ-фрактал Fir-2 (см. http://www.100byte.ru/mxscrptxmpls/ifs/ifs.html). Полученное bmp-изображение используется в качестве текстуры.
44193Реализация СИФ-фрактала средствами C#. СИФ берется из http://100byte.ru/mxscrptxmpls/ifs/ifs.html по номеру из списка групп на 100byte.ru.
Использовать System.Windows.Forms.PictureBox; пример употребления см. на http://100byte.ru/100btwrks/tsp/tsp.html.
4616Улыбка. Создается как сплайн-анимация (можно употребить модификатор xForm или Linked_XForm).
4758Программирование 1С географической схемы (http://100byte.ru/stdntswrks/1cgeo/1cgeo.html).
47170Конфигурации Студенты имеет справочники Группы и Студенты, документы Прием, Перевод и Прием большой, регистр сведений Списки групп и отчет Список группы.
Реализовать объекты, обеспечивающие фиксацию экзаменационных оценок, а также создать отчет, показывающий экзаменационные оценки по указанной дисциплине.
50190Воспроизвести граф по его xml-описанию. Параметры glOrtho определить, анализируя координаты вершин графа. Добавить в форму кнопки, обеспечивающие вертикальное и горизонтальное перемещение графа.
<?xml version="1.0" encoding="utf-8" ?>
<graph>
 <graphVertex vName = "v1">
  <x>110</x>
  <y>200</y>
 </graphVertex>
 <graphVertex vName = "v2">
  <x>50</x>
  <y>100</y>
 </graphVertex>
 <graphVertex vName = "v3">
  <x>150</x>
  <y>100</y>
 </graphVertex>
 <edge>
  <start>v1</start>
  <end>v2</end>
 </edge>
 <edge>
  <start>v1</start>
  <end>v3</end>
 </edge>
 <edge>
  <start>v2</start>
  <end>v3</end>
 </edge>
</graph>
4866Вычислить координаты точки пересечения прямой, проходящей через центр проецирования и точку (x, y, z), с плоскостью XY. См. рис. 2.12 в
Компьютерная графика полигональных моделей (http://100byte.ru/100btwrks/cg/cg.html#P2_7_1).
50200Создать средствами C# и OpenGL полигональную модель из разноцветных граней одной из указанных ниже геометрических фигур (студентом выбирается фигура по его номеру в журнале группы).
Повернуть объект вокруг осей Y и X соответственно на 45° и 30°.
Организовать перемещение объекта по наклонной прямой с одновременным вращением вокруг оси Y.
Список геометрических фигур:
  1. Сфера.
  2. Эллипсоид.
  3. Цилиндр.
  4. Эллиптический цилиндр.
  5. Половина гиперболического цилиндра с крышками.
  6. Параболический цилиндра с крышками.
  7. Конус.
  8. Пирамида.
  9. Октаэдр.
  10. Икосаэдр.
  11. Додекаэдр.
  12. Призма.
  13. Полусфера.
  14. Усеченный конус.
  15. Усеченная пирамида.
  16. Эллиптический параболоид с крышкой.
  17. Половина однополостного гиперболоида с крышками.
  18. Половина двуполостного гиперболоида с крышкой.
  19. Призма, усеченная наклонной плоскостью.
  20. Цилиндр, усеченный наклонной плоскостью.
Пример см. в http://100byte.ru/100btwrks/cg/cg.html#P2_6 (разд. 2.6. Реализация аффинных преобразований в OpenGL).
50202Воспроизвести, используя OpenTK, код, приведенный на http://100byte.ru/100btwrks/cg/cg.html#P2_6.
Задача принимается, если даны ответы на следующие вопросы:
1. Преобразование координат в системах компьютерной графики.
2. Назначение матриц Modelview и Projection.
3. Назначение GL.LoadIdentity(), GL.Ortho(...) и GL.Viewport(...).
(Прежде в этой задаче рассматривались свойства грани OpenGL.)
50203Воспроизвести, используя OpenTK, четырехугольник, употребляя GL_POINT, GL_LINE и GL_FILL. При GL_FILL применить GL_SMOOTH и GL_FLAT (для вершин задаются разные цвета).
Замечания.
1. По умолчанию грань выводится лицевой стороной, если вершины обходятся против часовой стрелки.
2. Для демонстрации нелицевой стороны выполнить поворот грани на 180° вокруг оси Y.
502042D-примитивы. Свойства примитива "Линия". Этап проецирования.
50206Вывести на прямоугольную грань следующие текстуры:
  1. Checker черно-белая.
  2. Checker цветная.
  3. Из файла.
Текстуру выводить с различным числом повторов, манипулируя ее координатами.
Показать текстуру на обеих сторонах грани, поворачивая ее на 180° вокруг оси Y.
Пример генерации Checker и загрузки текстуры из файла см. на http://100byte.ru/100btwrks/cg/cg.html#P10.
51189Форматирование курсовой работы в Microsoft Word.
51187Разработать конфигурацию "Сессия", позволяющую отображать итоги экзаменационной сессии студентов в разрезе учебных групп. Создать отчет, выводящий итоги указанного экзамена для выбранной группы.
Рейтинг@Mail.ru