Создание изображения гексагональной и кубической плотнейших шаровых упаковок с использованием пакета 3Ds max
Построение плотнейшей кубической упаковки:
Текст программы:
for i=-5 to 5 do
(for k=-5 to 5 by 2 do
(for j=-5 to 5 by 2 do
(b=sphere ()
b.pos.x=i
b.pos.y=j*0.866
b.pos.z=k*0.817
b.radius=0.5 )
for j=-6 to 4 by 2 do
(b=sphere ()
b.pos.x=i+0.5
b.pos.y=j*0.866
b.pos.z=k*0.817
b.radius=0.5 )))
for i=-5 to 5 do
(for k=-4 to 6 by 2 do
(for j=-5 to 5 by 2 do
(b=sphere ()
b.pos.x=i+0.5
b.pos.y=j*0.866+0.289
b.pos.z=k*0.817
b.radius=0.5 )
for j=-6 to 4 by 2 do
(b=sphere ()
b.pos.x=i
b.pos.y=j*0.866+0.289
b.pos.z=k*0.817
b.radius=0.5 )))
Выполнение программы: создается два цикла с чередованием слоев для структуры плотнейшей кубической упаковки (.1-2-1-2..). Оператором «by 2» задаем шаг слоев. Рассматривая каждый слой в отдельности видим, что разница координат по сравнению с предыдущим слоем будет составлять для х-0,5, для у-0,866. Для чередующихся слоев наблюдается также увеличение значения координаты z – на 0,817. Таким образом, программа представляет собой два цикла в цикле. Все координаты и индексы при них получены из простейших теорем геометрии.
Построение плотнейшей гексагональной упаковки:
Текст программы:
for i=-5 to 5 do
(for k=-5 to 5 by 3 do
(for j=-5 to 5 by 2 do
(b=sphere ()
b.pos.x=i
b.pos.y=j*0.866
b.pos.z=k*0.817
b.radius=0.5 )
for j=-6 to 4 by 2 do
(b=sphere ()
b.pos.x=i+0.5
b.pos.y=j*0.866
b.pos.z=k*0.817
b.radius=0.5 )))
for i=-5 to 5 do
(for k=-4 to 6 by 3 do
(for j=-5 to 5 by 2 do
(b=sphere ()
b.pos.x=i
b.pos.y=j*0.866+0.577
b.pos.z=k*0.817
b.radius=0.5 )
for j=-6 to 4 by 2 do
(b=sphere ()
b.pos.x=i+0.5
b.pos.y=j*0.866+0.577
b.pos.z=k*0.817
b.radius=0.5 )))
for i=-5 to 5 do
(for k=-3 to 7 by 3 do
(for j=-5 to 5 by 2 do
(b=sphere ()
b.pos.x=i+0.5
b.pos.y=j*0.866+0.289
b.pos.z=k*0.817
b.radius=0.5 )
for j=-6 to 4 by 2 do
(b=sphere ()
b.pos.x=i
b.pos.y=j*0.866+0.289
b.pos.z=k*0.817
b.radius=0.5 )))
Данная программа аналогична предыдущей, разница состоит лишь в том, что количество слоев равно трем. Имеем три цикла – для каждого из слоев, при этом шаг повторяющегося слоя отражается оператором «by 3», и для каждого слоя создается цикл в цикле, отражающий чередование рядов. Все значения коэффициентов при координатах получены геометрическим путем.
ВЫВОД
В результате выполнения данного РГЗ мы ознакомились с основами моделирования объектов, с помощью языка скриптов. Создали модели двух видов плотнейших упаковок.